5 scripts do Windows VB úteis para automatizar o uso do seu computador

5 scripts do Windows VB úteis para automatizar o uso do seu computador

Quer você seja um analista de TI ou um usuário regular de computador, existem muitas tarefas que você pode precisar realizar com frequência em seu PC. Os scripts VB são programas Visual Basic reduzidos que servem como scripts do Windows que podem fazer qualquer coisa, desde obter informações importantes sobre o hardware do seu computador até interromper e iniciar serviços ou redefinir a placa de rede.





É possível aprender a fazer todas essas coisas individuais da maneira normal ou usando arquivos em lote. Mas Scripts VB são melhores do que scripts em lote porque eles são mais flexíveis. Se você armazenar os scripts a seguir em um local comum, de fácil acesso quando necessário, poderá realizar essas tarefas em uma fração do tempo. Basta clicar duas vezes no script, responder a um prompt e a tarefa estará concluída.





Dê uma olhada nos seguintes scripts VB do Windows e se você ver algum que gostaria de usar, apenas copie e cole o script em Bloco de notas ou outra ferramenta de notas de codificação e salve-o como um arquivo WSF.





Prepare seus scripts do Windows

Cada um dos scripts detalhados abaixo será executado com apenas um clique duplo, desde que você tenha nomeado o arquivo com a extensão .WSF e também tenha colocado o código no início com:


E feche o código com:



WScript.Quit

Isso garante que o Windows reconheça o idioma em que seu script está escrito e o processe corretamente.

1. Use scripts do Windows para informações do computador

O Windows oferece algo chamado WMI, ou Windows Management Instrumentation, que fornece ao seu script uma interface para acessar os componentes do sistema operacional. Você pode realmente executar consultas no WMI para obter informações atuais sobre o seu sistema. A Microsoft oferece uma lista completa de todos os categorias de consultas você pode fazer contra o sistema.





Abordamos como usar o VBA para inserir informações do computador no Excel, mas você pode fazer a mesma coisa usando um script VB simples fora do Excel.

Neste exemplo, vamos consultar o sistema para obter informações do processador (família, fabricante e número de núcleos), informações da bateria (descrição e status) e informações do disco lógico (nome, espaço livre restante e tamanho geral). Em seguida, enviaremos todas essas informações para um arquivo CSV para facilitar a visualização.





A primeira etapa é configurar o FileSystemObject que você usará para gerar o arquivo CSV e criar o arquivo:

Set oFSO = CreateObject('Scripting.FileSystemObject')
sFile1 = 'MyComputerInfo.csv'
Set oFile1 = oFSO.CreateTextFile(sFile1, 1)

A próxima etapa é configurar a consulta WMI e executá-la:

como verificar a capacidade da bateria android
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Por fim, classifique os resultados e envie as informações para o arquivo CSV. Se você quiser ser sofisticado, comece com algumas linhas para ajudar a deixar o arquivo de saída com uma aparência melhor:

oFile1.WriteLine 'Processor Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Family:,'+CStr(objResult.Family)
oFile1.WriteLine strResults
strResults = 'Manufacturer:,'+CStr(objResult.Manufacturer)
oFile1.WriteLine strResults
strResults = 'Number of Cores:,'+CStr(objResult.NumberOfCores)
oFile1.WriteLine strResults
Next

Se você executar seu código agora, sua saída será semelhante a esta:

Para as próximas duas seções de seu código, você apenas repetirá e alterará a consulta para procurar informações adicionais. Aqui está a consulta de informações da bateria:

oFile1.WriteLine ''
strQuery = 'SELECT Description,Status FROM Win32_Battery'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Battery Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Status:,'+CStr(objResult.Description)
oFile1.WriteLine strResults
strResults = 'Description:,'+CStr(objResult.Status)
oFile1.WriteLine strResults
Next

E aqui está a próxima seção para a consulta do disco lógico:

oFile1.WriteLine ''
strQuery = 'Select Name, FreeSpace, Size from Win32_LogicalDisk'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Disk Information'
oFile1.WriteLine '------'
'Identify the Logical Disk Space
For Each objResult In colResults
strResults = 'Name:,'+CStr(objResult.Name)
oFile1.WriteLine strResults
strResults = 'Free Space:,'+CStr(objResult.FreeSpace)
oFile1.WriteLine strResults
strResults = 'Disk Size:,'+CStr(objResult.Size)
oFile1.WriteLine strResults
Next

Por fim, lembre-se de fechar o código fechando o arquivo e definindo os objetos como 'Nada':

oFile1.Close
Set oFile1 = Nothing
set colResults = Nothing
strResults = ''

Coloque todo esse código em seu novo arquivo .WSF, execute-o e veja como sua saída ficará:

Basta trocar as consultas acima por qualquer outro dispositivo de computador ou software sobre o qual deseja obter informações e você pode obter um relatório completo do sistema a qualquer momento com apenas um clique do mouse.

2. Pare e inicie os serviços

Haverá momentos em que determinados serviços apresentarão problemas e exigirão apenas uma reinicialização rápida para serem executados corretamente novamente. Isto é especialmente verdadeiro em TI quando você é forçado a executar um software de servidor que às vezes é um pouco problemático.

Se você quiser economizar um minuto ou mais do processo de reinicialização do serviço, basta armazenar o script a seguir em algum lugar conveniente. Ele solicitará que você digite o nome do serviço que deseja reiniciar e, em seguida, fará exatamente isso.

Visto que interromper e iniciar serviços requer privilégios administrativos, você precisa colocar o seguinte código no início de seu script para fornecer a ele privilégios elevados :

If Not WScript.Arguments.Named.Exists('elevate') Then
CreateObject('Shell.Application').ShellExecute WScript.FullName _
, '''' & WScript.ScriptFullName & ''' /elevate', '', 'runas', 1
WScript.Quit
End If

Feito isso, adicione o resto do código para executar a caixa de entrada para entrada do usuário, abra a janela de comando e envie os comandos 'net stop' e 'net start':

Set cmdShell = CreateObject('WScript.Shell')
strServiceName=Inputbox('Inter Service to Stop','Input Required')
cmdShell.Run 'cmd.exe'
WScript.Sleep 1000
cmdShell.SendKeys 'net stop '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'net start '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'Exit'
cmdShell.SendKeys '{Enter}'

Isso é tudo que há para fazer. Não há necessidade de procurar a ferramenta de serviços. Basta executar este script e parar e iniciar qualquer serviço em segundos.

3. Alterar configurações de registro, senha de administrador padrão

Com o seguinte script, vamos matar dois coelhos com uma cajadada só. Este script mostrará como edite o registro com um script VB. Ele também fornecerá um script que permitirá que você defina o nome de usuário e a senha padrão do Windows, editando essas configurações de registro.

É assim que funciona. Primeiro, como a edição do registro requer direitos de administrador, você precisará configurar privilégios elevados para o seu script:

If Not WScript.Arguments.Named.Exists('elevate') Then
CreateObject('Shell.Application').ShellExecute WScript.FullName _
, '''' & WScript.ScriptFullName & ''' /elevate', '', 'runas', 1
WScript.Quit
End If

Primeiro execute duas caixas de entrada para perguntar ao usuário qual nome de usuário e senha usar:

strUserName=Inputbox('Enter the default User Name','Input Required')
strPassword=Inputbox('Enter the default Password','Input Required')

Em seguida, configure o objeto shell e grave esses valores nas chaves de registro apropriadas:

Set wshShell = CreateObject( 'WScript.Shell' )
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultUserName', strUserName, 'REG_SZ'
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultPassword', strPassword, 'REG_SZ'
Set wshShell = Nothing

E isso é tudo que há para fazer. O método 'RegWrite' permite gravar qualquer valor em qualquer chave de registro usando um script VB do Windows. Tudo que você precisa saber é o caminho apropriado.

Execute o script e responda aos prompts.

Os valores que você inserir serão inseridos diretamente nas configurações de registro que você configurou no script.

Brinque com o script e ajuste-o ao seu gosto. Você pode editar qualquer chave de registro que desejar, então seja criativo!

4. Redefina sua conexão de rede

Redefinir sua conexão de rede usando script VB é algo que cobrimos antes aqui em MakeUseOf. A versão a seguir disso foi reduzida e muito mais simples de implementar. Em vez de solicitar placas de rede individuais, ele redefine todas as suas conexões ativas, o que pode resolver quaisquer problemas de rede que você possa ter.

Tal como acontece com outros scripts que precisam de direitos de administrador, você precisará adicionar a seção no início para privilégios elevados. Copie esse código do script acima.

Em seguida, crie o objeto WMI e consulte-o para obter uma lista de adaptadores de rede ativados em seu sistema:

strComputer = '.'
Set objWMIService = GetObject('winmgmts:\' & strComputer & 'ootCIMV2')
Set colItems = objWMIService.ExecQuery( _
'SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'')

Por fim, faça um loop por todos os adaptadores ativados e redefina-os:

For Each objItem in colItems
objItem.Disable
WScript.Sleep 1000
objItem.Enable
Next

Isso irá redefinir todos os seus adaptadores de rede ativos , que geralmente é a maneira mais rápida de resolver problemas de rede incômodos. Mantenha este script à mão e tente primeiro sempre que tiver uma rede lenta ou outros problemas de rede estranhos.

5. Fazer ping em dispositivos ou sites

Salvei meu script do Windows VB favorito para o final. Na verdade, eu configurei como uma tarefa agendada em meu computador doméstico e executei várias vezes ao dia apenas para verificar se meu site está ativo. Eu tenho o script me e-mail se o site estiver fora do ar. Você pode usar esse mesmo script para monitorar servidores ou computadores importantes em sua rede e enviar e-mail a si mesmo sempre que o script não puder fazer ping no dispositivo.

Primeiro, configure o script para o destino que deseja executar ping, crie o objeto shell e execute o comando ping.

strTarget = 'topsecretwriters.com'
Set WshShell = WScript.CreateObject('WScript.Shell')
Ping = WshShell.Run('ping -n 1 ' & strTarget, 0, True)

Use uma instrução Select Case para percorrer os resultados do Ping e responder de acordo. Se os resultados forem zero, você sabe que o site (ou servidor) está online e não precisa fazer nada. Se retornar um '1', o ping falhou e você precisa fazer algo. No meu caso, envio um e-mail usando o objeto CDO do Windows:

Select Case Ping
Case 0
Case 1
Set objMessage = CreateObject('CDO.Message')
Set objConfig = CreateObject('CDO.Configuration')
objConfig.Load -1
Set Flds = objConfig.Fields
With Flds
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate')=1
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusername')='xxxxxx@gmail.com'
.Item ('http://schemas.microsoft.com/cdo/configuration/sendpassword')='xxxxxxxxxxxxxxxxx'
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpserver')='smtp.gmail.com'
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusing')=2
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpserverport')=465
.Update
End With
With objMessage
Set .Configuration = objConfig
.Subject = 'Your site is offline'
.From = 'me@mycomputer.com'
.To = 'xxxxxx@gmail.com'
.TextBody = 'Hey, your website is offline.'
.Send
End With
End Select

Uma vez que o script é executado e não consegue fazer ping no dispositivo ou site, você recebe uma mensagem instantânea.

É rápido e fácil e muito eficiente!

Usando scripts VB do Windows para controlar seu computador

Estes são apenas alguns exemplos de algumas das coisas legais que você pode fazer com o script VB para agilizar o uso do computador. Há muitas outras coisas que você pode fazer, como backups automatizados com VB e Synctoy, automatizar comandos telnet ou até mesmo abrir e controlar janelas de aplicativos.

Quais são algumas das coisas que você automatizou em seu computador com um script do Windows? Você escreve o seu usando VB ou usa alguma outra ferramenta como PowerShell ?

Compartilhado Compartilhado Tweet O email Veja por que o FBI emitiu um aviso para Hive Ransomware

O FBI emitiu um alerta sobre uma cepa particularmente desagradável de ransomware. Veja por que você precisa ser especialmente cauteloso com o ransomware Hive.

Leia a seguir
Tópicos relacionados
  • Programação
  • Automação de Computadores
  • Scripting
Sobre o autor Ryan Dube(942 artigos publicados)

Ryan é bacharel em Engenharia Elétrica. Ele trabalhou 13 anos em engenharia de automação, 5 anos em TI e agora é engenheiro de aplicativos. Ex-editor-chefe da MakeUseOf, ele palestrou em conferências nacionais sobre visualização de dados e foi apresentado na TV e no rádio nacionais.

Mais de Ryan Dube

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever