Mostrando postagens com marcador script. Mostrar todas as postagens
Mostrando postagens com marcador script. Mostrar todas as postagens

segunda-feira, 8 de novembro de 2010

Bloqueando sites de Forma simples Utilizando GPO

Olá a todos! Faz tempo que não posto não é mesmo? A minha legião (...) de fãs já estavam desesperados aguardando alguma novidade.

Desde que mudamos o nosso escritório, coloquei o VoIP do Skype tanto para fazer como para receber chamadas. O custo das ligações caiu de R$ 650,00 por mês para meros R$ 170,00.

Porém de um tempo pra cá as ligações começaram a ficar ruins. Tivemos muita reclamação, principalmente que a pessoa do outro lado da linha não nos ouvia corretamente, sempre com a voz cortada ou com muito atraso, e algumas vezes que deste lado demorávamos para ouvir a pessoa.

Com a implantação do Skype, tive que habilitar as placas de som dos computadores. E aos pouquinhos nossos queridos ABOMINÁVEIS dos usuários passaram a usar Rádio UOL, Sonora do Terra e outros streamings. Pedi uma vez, pedi duas. E a PORCARIA do usuário continuava usando.

DEPOIS RECLAMA QUE O SKYPE ESTAVA LENTO! 80% da nossa banda de CINCO MEGA estava sendo utilizada para streamings de midia, NENHUM SKYPE QUE SE PREZA iria funcionar.

Como ainda não sei montar um ISA Server (temporariamente), achei uma solução muito mais simples, barata e rápida para evitar que os abomináveis continuassem abusando da nossa boa vontade.

Primeiramente proibi o acesso ao Windows Media Player através de GPO. Para tal, acesse USER CONFIGURATION | ADMINISTRATIVE TEMPLATES | SYSTEM | Dont Run Specified Windows Application.

Veja Imagem Abaixo.



Feito isso, os seus usuários não poderão mais acessar o Windows Media Player. Claro se algum espertinho mudar o nome do executável, ele terá acesso, mas aí, basta você não dar acesso de administrador para ele na máquina local. E mesmo assim se ele fizer isto, é caso de demissão certo?

Depois você precisará descobrir os nomes dos sites que voce não quer que o usuário acesse mais. Por exemplo sonora.terra.com.br ou radio.uol.com.br e assim por diante

Ou entäo voce poderá usar o Grande Google que tudo sabe e pesquisar listas de endereços dos sites indesejados, INCLUINDO PROXIES CONHECIDOS QUE BURLAM ESSE TIPO DE COISA.

Feito isto, crie um script: simples, que pode ser .BAT ou .CMD (procure usar CMD para arquivos grandes pois executa mais rápido) para editar o arquivo HOSTS da máquina. e adicione todos os endereços, conforme abaixo:

@echo off

echo 127.0.0.1 sonora.terra.com.br >> c:\windows\system32\drivers\etc\hosts
echo 127.0.0.1 sonora.com.br >> c:\windows\system32\drivers\etc\hosts
echo 127.0.0.1 radio.uol.com.br >> c:\windows\system32\drivers\etc\hosts

ipconfig /flushdns


ARQUIVO HOSTS

Este arquivo é utilizado quando o windows precisa resolver nomes. Quando ele não localiza no DNS em seguida ele vai procurar por outras fontes, e uma delas é o arquivo HOSTS, localizado na pasta %windir%\system32\drivers\etc


IPCONFIG /FLUSHDNS

Esta opção do IPCONFIG vai limpar o cache DNS da máquina, evitando assim que o usuário acesse o site através do que já tem guardado no cache. 

Criado o script, basta adicioná-lo como script de logoff em sua GPO em COMPUTER SETTINGS | WINDOWS SETTINGS | SCRIPTS | LOGOFF.

É batata.. Após ter feito isso, acabou o lag do Skype e voltou a funcionar perfeitamente. Esta solução foi testada e funciona em Windows XP, Windows 2003 e Windows 7.

Agora só escuto; A internet tá com problema? Não consigo acessar alguns sites, diz página não encontrada..... haha eu só falo:

Deve ser problema da internet....

CHUPPPPA ABOMINÁAAAVEEEEELLL

PS: Ah não esqueça de de proibir o acesso à pasta ETC por usuário normal. Assim nenhum mais espertinho vai tentar modificar o arquivo hosts.

ATUALIZADO EM 30/11/2010

Vi nas estatísticas a seguinte frase; "bloquear orkut no dns do windows server". A Solução acima apresentada também serve para bloquear orkut, e quaisquer outros sites, porém é uma forma simples, paliativa do problema. Se voce quiser realmente um super controle de acesso em sua rede, utilize o ISA Server ou o novo Forefront.



quarta-feira, 15 de setembro de 2010

Utilizando Gpupdate SEM a intervenção do Usuário

As vezes você se depara com algumas situações onde você precisa atualizar as policies de suas estações, mas não quer intervenção do usuário.

Por exemplo, você quer colocar como script de logoff, ou atualizar uma política que pode esperar a próxima vez que o usuário reinicie seu computador.

Existem duas formas, uma super simples e a outra mais complexa.

Primeiro a simples:

gpupdate /force /wait:0

Este comando vai forçar a aplicação da política e irá aguardar indefinidamente sua aplicação, ou seja, somente da próxima vez que o usuário reiniciar a máquina.

Só que as vezes pode não funcionar, no caso de voce precisar adicionar a condição /sync, a opção /wait é suprimida.

Nestes casos, você deverá utilizar a solução mais complexa, que é editando um script .VBS:

'====================
'Script para aplicar GPUPDATE /sync /force sem a intervenção do usuário
'Desenvolvido por Felipe Gustavo Fiad
'====================

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
strInputFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "input.txt"

Set objInputFile = objFSO.CreateTextFile(strInputFile, True)
objInputFile.WriteLine "n"
objInputFile.WriteLine "n"
objInputFile.Close
Set objInputFile = Nothing

strInputFile = objFSO.GetFile(strInputFile).ShortPath

' PARA TESTAR, USE /k and 1, APOS REALIZAR OS TESTES, USE /c e 0
strCommand = "cmd /k gpupdate /sync /force < " & strInputFile objShell.Run strCommand, 1, True objFSO.DeleteFile strInputFile, True Set objFSO = Nothing Set objShell = Nothing

' A linha abaixo pode ser suprimida após os testes para manter o script totalmente em silêncio.

MsgBox "Script finished."

'====================

Espero ter ajudado! Se gostou, comente!

sexta-feira, 3 de setembro de 2010

The Scripting Fiad - Apagando Temporários do Outlook e Temporary Internet Files

Olá Rapaziada! Atendendo aos milhões de pedidos (...) dos fãs do meu super hiper blog, vai aqui um script que apaga os temporários dos arquivos .PST do Outlook e também todos os Temporary Internet Files.

No meu caso tive que desenvolver este script pois como eu uso perfil móvel, alguns perfis estavam com 5 ou até 8 Giga. Quando fui ver tinha uns 10 arquivos .TMP com o tamanho dao arquivo de dados do Outlook. Não sei porque ele fez isso, mas tudo indica que é quando dava algum problema, ele passava o Reparador de pasta do outlook e criava esses temporários.

Coloquei tanto na inicialização como no encerramento do Windows, e nunca mais tive esse problema.

Abaixo, o script

'Script para apagar arquivos com extensão .TMP do diretório Outlook - Computadores com Windows XP
'Editado em 03 Setembro 2010 - Adicionado apagar todos os Arquivos temporários da internet
'Desenvolvido por Felipe Gustavo Fiad

On Error Resume Next

Dim sDocsAndSettings
Dim strComputer
Dim oFolder
Dim fso
Dim oFolder1
Dim oFolder2
Dim oFolder3
Dim oSubFolder1
Dim oSubFolder2
Dim oSubFolder3
Dim colSubfolders1
Dim colSubfolders2
Dim colSubfolders3
Dim oFile
Dim userProfile
Dim Windir

' Deleta todos os temporários do outlook para evitar demora ao ler perfil

Set DeleteTmp = CreateObject("Scripting.FileSystemObject")

Set objUsuario = CreateObject("Wscript.Network")
Usuario = objUsuario.Username


DeleteTmp.DeleteFile("C:\Documents and Settings\" & Usuario & "\Outlook\*.tmp")

DeleteTmp.DeleteFile("\\srvadm\profiles$\" & Usuario & "\Outlook\*.tmp")


' Deleta todos os arquivos temporários da internet

strComputer = "."
Set fso = createobject("Scripting.FileSystemObject")

'USER PROFILES
sDocsAndSettings = "C:\Documents and Settings\" ' Probably there is an environment variable or other variable

Set colFolders = fso.GetFolder(sDocsAndSettings) 'Collection of all profiles

For Each oFolder In colFolders.SubFolders
Select Case LCase(oFolder.Name)
Case "admin", "administrator", "newuser", "all users", "default user.original", "localservice", "networkservice"
'DO NOTHING
Case Else
'Set up environment
Set WSHShell = CreateObject("WScript.Shell")
Set fso = createobject("Scripting.FileSystemObject")
userProfile = WSHShell.ExpandEnvironmentStrings("%userprofile%")
Windir = WSHShell.ExpandEnvironmentStrings("%windir%")

'start deleting files
Set oFolder1 = fso.GetFolder(userProfile & "\Local Settings\Temp\")
For Each oFile In oFolder1.files
oFile.Delete True
Next

'Delete folders and subfolders
Set colSubfolders1 = oFolder1.Subfolders
On Error Resume Next
For Each oSubfolder in colSubfolders1
fso.DeleteFolder(oSubFolder), True
Next
Set oFolder2 = fso.GetFolder(userProfile & "\Local Settings\Temporary Internet Files\")
For Each oFile In oFolder2.files
oFile.Delete True
Next
Set colSubfolders2 = oFolder2.SubFolders
For Each oSubfolder in colSubfolders2
fso.DeleteFolder(oSubFolder)
Next
Set oFolder3 = fso.GetFolder(Windir & "\Temp\")
For Each oFile In oFolder3.files
oFile.Delete True
Next
Set colSubfolders3 = oFolder1.Subfolders
For Each oSubfolder in colSubfolders3
fso.DeleteFolder(oSubFolder)
Next

End Select
Next

'Clear memory
Set fso = Nothing
Set oFolder1 = Nothing
Set oFolder2 = Nothing
Set oFolder3 = Nothing
Set oSubFolder1 = Nothing
Set oSubFolder2 = Nothing
Set oSubFolder3 = Nothing
Set colSubfolders1 = Nothing
Set colSubfolders2 = Nothing
Set colSubfolders3 = Nothing
Set oFile = Nothing
Set userProfile = Nothing
Set Windir = Nothing

WScript.Quit

Tá Prontinho! É só recortar e colar. Apenas atente ao perfil do Outlook, pode ser que em sua empresa ele esteja em outra pasta. Espero ter ajudado!!

terça-feira, 4 de maio de 2010

The Scripting Fiad

Bom dia!! Tô gostando de postar as peripécias aqui no blog... E acabei de fazer mais uma.

E é SCRIPT VBS!! hehehe

Aqui no escritório implantei a seguinte estrutura de pastas

FINANCEIRO
|_ (Pasta do Cliente)

COBRANCA
|_ (Pasta do Cliente)

CADASTRO
|_ (Pasta do Cliente)

GERENCIA
|_(Pasta do Cliente)

Esta estrutura é nova e os usuários ainda não se acostumaram. Nossa diretora (Minha sócia e minha mamae.. ai que meigo) criou uma pasta na raiz do compartilhamento com o nome do novo cliente e jogou um monte de coisas lá.

Traduzindo, mais trabalho pra mim. Tive que criar a pasta do cliente em cada sub-diretório da nova estrutura e separar a documentação e jogar cada um na sua respectiva pasta.

Para evitar isto, bloqueei a criação de pastas na raiz do compartilhamento e no lugar deixei um atalho para um script VBS que cria automaticamente a pasta desejada dentro de cada subdiretório corretamente. O script segue abaixo.


'Script para Criação de novo diretório quando empresa adquire novo cliente
'Criado Por Felipe Gustavo Fiad


On Error Resume Next

' Cria objetos padrão
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Caixa de entrada para o usuário digitar a nova pasta
strPasta = InputBox("Digite o nome da Nova Pasta" & VbCrLf & "", ,"" )


' Cria pasta na Gerência
strGerencia = "\\SRVADM\DEPARTAMENTAL\GERENCIA\" & strPasta
Set objFolder = objFSO.CreateFolder(strGerencia)

' Cria pasta no Financeiro
strFinanceiro = "\\SRVADM\DEPARTAMENTAL\FINANCEIRO\" & strPasta
Set objFolder = objFSO.CreateFolder(strFinanceiro)

' Cria pasta na Cobranca
strCobranca = "\\SRVADM\DEPARTAMENTAL\COBRANCA\" & strPasta
Set objFolder = objFSO.CreateFolder(strCobranca)

' Cria pasta no Cadastro
strCadastro = "\\SRVADM\Departamental\Cadastro\" & strPasta
Set objFolder = objFSO.CreateFolder(strCadastro)