ConnectServer Apagar equipos remotamente

Iniciado por palophp, 25 Octubre 2016, 20:31 PM

0 Miembros y 1 Visitante están viendo este tema.

palophp

Hola.
Estoy realizando un script para apagar los equipos de un dominio, pero no se me apagan ni metiendo las credenciales del administrador de cada equipo.
Utilizo la sentencia ConnectServer pero no hay tu tia.
Alguien me ayuda?

Este es el codigo, pero no me hace nada:
Código (vb) [Seleccionar]

Dim sUser, sPassword
'set remote credentials
sUser = "adm"
sPassword = "***"

'Establecemos control de errores
On Error Resume Next

'get WMI locator
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
'Connect to remote WMI
Set oConnection = oLocator.ConnectServer(StrEquipo, "\root\cimv2", sUser, sPassword)

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Shutdown)}!\\" & StrEquipo  & oConnection)
   
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
   For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Win32Shutdown(1)
   Next


Miseryk

Cita de: palophp en 25 Octubre 2016, 20:31 PM
Hola.
Estoy realizando un script para apagar los equipos de un dominio, pero no se me apagan ni metiendo las credenciales del administrador de cada equipo.
Utilizo la sentencia ConnectServer pero no hay tu tia.
Alguien me ayuda?

Este es el codigo, pero no me hace nada:
Código (vb) [Seleccionar]

Dim sUser, sPassword
'set remote credentials
sUser = "adm"
sPassword = "***"

'Establecemos control de errores
On Error Resume Next

'get WMI locator
Set oLocator = CreateObject("WbemScripting.SWbemLocator")
'Connect to remote WMI
Set oConnection = oLocator.ConnectServer(StrEquipo, "\root\cimv2", sUser, sPassword)

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Shutdown)}!\\" & StrEquipo  & oConnection)
   
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
   For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Win32Shutdown(1)
   Next



Fijate con el shutdown de windows, le podés pasar -m \\PC con user y pass
Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It's never too late to change our luck
So, don't let them steal your light
Don't let them break your stride
There is light on the other side
And you'll see all the raindrops falling behind
Make it out tonight
it's a revolution

CL!!!

palophp

Dices que ponga eso aquí?
Código (vb) [Seleccionar]
   
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Win32Shutdown(1)
Next

DelKoS

Hola.

Lo que te dice el compi es que shutdown es una intrucción propia del sistema operativo.

Abre una shell (simbolo de sistema) y ejecuta el comando con el parametro de ayuda para que veas lo que mejor te conviene, pero como él te ha dicho con el parametro /m \\equipo te vale, y con ella una cuenta que tenga permisos para realizar la acción, sea local o de dominio.

Juega primero con ella antes de implementarlo en tu script.


S2