Para reiniciar um computador no Windows PowerShell, use uma ferramenta de linha de comando padrão ou uma classe WMI. Embora você esteja usando o Windows PowerShell somente para executar a ferramenta, aprender a alterar o estado de um computador nesse aplicativo ilustra alguns detalhes importantes do trabalho com ferramentas externas.

Bloqueando um computador

A única maneira de bloquear diretamente um computador com as ferramentas padrão disponíveis é chamando diretamente a funçãoLockWorkstation() em user32.dll:

rundll32.exe user32.dll,LockWorkStation

Esse comando bloqueará a estação de trabalho imediatamente. Ele usa rundll32.exe, que executa DLLs do Windows (e reduz o uso repetido das respectivas bibliotecas) para executar user32.dll, uma biblioteca de funções de gerenciamento do Windows.

Quando você bloquear uma estação de trabalho enquanto a Troca rápida do usuário estiver habilitada no Windows XP, o computador exibirá a tela de logon de usuário, em vez de iniciar o protetor de tela do usuário atual.

Para desligar sessões específicas em um Terminal Server, use a ferramenta de linha de comando tsshutdn.exe.

Efetuando logoff da sessão atual

Você pode usar várias técnicas diferentes para fazer logoff de uma sessão no sistema local. O modo mais simples é usar a ferramenta de linha de comando da Área de Trabalho Remota /Serviços de Terminal, logoff.exe (Para obter informações detalhadas, no prompt do Windows PowerShell, digite logoff /?). Para fazer logoff da sessão ativa atual, digite logoff sem argumentos.

Você também pode usar a ferramenta shutdown.exe com sua opção de logoff:

shutdown.exe -l

Uma terceira opção é usar o WMI. A classe Win32_OperatingSystem tem um método Win32Shutdown. Quando o método é chamado com o sinalizador 0, o logoff é iniciado:

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(0)

Para obter mais informações e para localizar outros recursos do método Win32Shutdown, consulte "Win32Shutdown Method of the Win32_OperatingSystem Class" (em inglês) no MSDN.

Desligando ou reiniciando um computador

O desligamento e a reinicialização de computadores geralmente são os mesmos tipos de tarefa. As ferramentas que desligam um computador geralmente são as que o reiniciam e vice-versa. Existem duas opções diretas para a reinicialização de um computador no Windows PowerShell. Use Tsshutdn.exe ou Shutdown.exe com os argumentos apropriados. Você pode obter informações de uso detalhadas em tsshutdn.exe /? ou shutdown.exe /?.

Você também pode executar as operações de desligamento e reinicialização usando Win32_OperatingSystem diretamente no Windows PowerShell.

Para desligar o computador, use o método Win32Shutdown com o sinalizador 1.

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(1)

Para reiniciar o sistema operacional, use o método Win32Shutdown com o sinalizador 2.

(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)




Sumário