Logoff do usuário atual

Olá,

um desconhecido (na verdade ele se chama Reginaldo Costa, mas eu não conheço) me perguntou por email como fazer para forçar o logoff do usuário via script. Encontrei este na Internet e resolvi postar aqui, dado que vários frequentadores deste site sugeriram que eu mesmo já modificasse alguns dos scripts que eu ensino.

A idéia básica é simples: há um script pronto no ScriptCenter que serve para desligar o computador, via WMI (logo, funciona tanto localmente quanto para reiniciar micros remotamente). Ele usa o método Win32Shutdown para fazer o serviço. O que pouca gente sabe é que esse método também pode ser usado para fazer o logoff do usuário. Basta trocar o valor da constante no início do script. Os valores possíveis podem ser encontrados aqui.

Não testei, mas deve funcionar.

Const LOGOFF = 4
strComputer = "127.0.0.1"  'aqui vai no nome do computador ou o IP
Set objWMIService = GetObject("winmgmts: {(Shutdown)}" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("SELECT * FROM Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Win32Shutdown(LOGOFF)
Next

Categorias dessa postagem:

Comentários

Unknown : Esta dando erro:

Linha 3
Caract 1

Você sabe o que pode ser?

Obrigado. [16/6/08 16:32 - link]

Anônimo : tche, que beleza de blog!

parabens, pelas excelentes dicas.

uma duvida que nao quer calar, baseado no script vbs, tem um script quando executado ele me aponte somente o gateway e dns configurado no micro, este conteudo faz 2 dias que procuro e nao acho, acredito que eu nao esteja procurando de forma correta. [26/4/11 10:17 - link]