Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: palophp en 25 Octubre 2016, 20:31 pm



Título: ConnectServer Apagar equipos remotamente
Publicado por: 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
  1. Dim sUser, sPassword
  2. 'set remote credentials
  3. sUser = "adm"
  4. sPassword = "***"
  5.  
  6. 'Establecemos control de errores
  7. On Error Resume Next
  8.  
  9. 'get WMI locator
  10. Set oLocator = CreateObject("WbemScripting.SWbemLocator")
  11. 'Connect to remote WMI
  12. Set oConnection = oLocator.ConnectServer(StrEquipo, "\root\cimv2", sUser, sPassword)
  13.  
  14. Set objWMIService = GetObject("winmgmts:" _
  15. & "{impersonationLevel=impersonate,(Shutdown)}!\\" & StrEquipo  & oConnection)
  16.  
  17. Set colOperatingSystems = objWMIService.ExecQuery _
  18. ("Select * from Win32_OperatingSystem")
  19.    For Each objOperatingSystem in colOperatingSystems
  20. ObjOperatingSystem.Win32Shutdown(1)
  21.    Next
  22.  
  23.  


Título: Re: ConnectServer Apagar equipos remotamente
Publicado por: Miseryk en 27 Octubre 2016, 19:14 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
  1. Dim sUser, sPassword
  2. 'set remote credentials
  3. sUser = "adm"
  4. sPassword = "***"
  5.  
  6. 'Establecemos control de errores
  7. On Error Resume Next
  8.  
  9. 'get WMI locator
  10. Set oLocator = CreateObject("WbemScripting.SWbemLocator")
  11. 'Connect to remote WMI
  12. Set oConnection = oLocator.ConnectServer(StrEquipo, "\root\cimv2", sUser, sPassword)
  13.  
  14. Set objWMIService = GetObject("winmgmts:" _
  15. & "{impersonationLevel=impersonate,(Shutdown)}!\\" & StrEquipo  & oConnection)
  16.  
  17. Set colOperatingSystems = objWMIService.ExecQuery _
  18. ("Select * from Win32_OperatingSystem")
  19.    For Each objOperatingSystem in colOperatingSystems
  20. ObjOperatingSystem.Win32Shutdown(1)
  21.    Next
  22.  
  23.  

Fijate con el shutdown de windows, le podés pasar -m \\PC con user y pass


Título: Re: ConnectServer Apagar equipos remotamente
Publicado por: palophp en 27 Octubre 2016, 20:39 pm
Dices que ponga eso aquí?
Código
  1.  
  2. For Each objOperatingSystem in colOperatingSystems
  3. ObjOperatingSystem.Win32Shutdown(1)
  4. Next
  5.  


Título: Re:
Publicado por: DelKoS en 27 Octubre 2016, 21:43 pm
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