11 agosto 2006

Script para sacar el Numero de Serie de una maquina

Para eso teneis que guardar el script en un fichero llamado NumSerie.vbs y ejecutarlo desde una ventana MS-DOS con el comando cscript NumSerie.vbs NOMBREMAQUINA

SCRIPT:

' ***************************************************************************************
' Nombre: NumSerie
' Fecha Creación: jueves, 29 de septiembre de 2005
' Comentario: Script que devuelve el Numero de Serie del equipo que se le pasa como parametro
' Modificaciones
' -----------------------------------------------------------------------------------
' ***************************************************************************************
Dim LocalHost

Private Sub Ayuda()
  WScript.Echo "NumSerie.vbs"
  Wscript.Echo "--------------------"
  Wscript.Echo vbTab & "La sintaxis es: cscript NumSerie.vbs equipo [/?]"
  Wscript.Echo vbTab & "En donde equipo es el destino a sacar el Numero de Serie"
  Wscript.Echo vbTab & "[/?] Parametro opcional, muestra esta pantalla."
  Wscript.Echo ""
  Wscript.Echo vbTab & "Requisitos para ejecutar NumSerie.vbs:"
  Wscript.Echo vbTab & " - La maquina destino debe de estar arrancada"
  Wscript.Echo vbTab & " - El usuario que lo ejecute tiene que tener permisos en la otra maquina"
  Wscript.Echo vbTab & " - La maquina cliente debe de tener XP, Windows 2000 o Windows 2003 instalado"
  Wscript.Echo vbTab & " - No haya ningun Firewall bloqueando el servidor."
  Wscript.Echo ""
  Wscript.Echo ""
  Wscript.Echo "Creado por Carlos Campos"
  WScript.Quit(1)
End Sub


If WScript.Arguments.Count <> 1 then Call Ayuda()

If (WScript.Arguments.Item(0) = "/?" or WScript.Arguments.Item(0) = "-?") then Call Ayuda()

LocalHost = SistemaOperativo(".")

If Instr(LocalHost, "2000") = 0 and Instr(LocalHost, "XP") = 0 and Instr(LocalHost, "2003") = 0 then
  WScript.Echo "ERROR: No se cumple los requerimientos minimos"
  WScript.Echo ""
  Call Ayuda()
End If

If Not HacePing(WScript.Arguments.Item(0)) then
  WScript.Echo "ERROR: El equipo (" & WScript.Arguments.Item(0) & ") no esta conectado a la red"
  WScript.Echo ""
  Call Ayuda()
End If

WScript.Echo "NumSerie: " & NumSerie(WScript.Arguments.Item(0))

Private Function NumSerie(sServidor)
  Dim objWMIService, colItems, objItem
  NumSerie = ""
  Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!" & sServidor & "rootcimv2")
  Set colItems = objWMIService.ExecQuery("Select IdentifyingNumber from Win32_ComputerSystemProduct")
  For Each objItem in colItems
    NumSerie = objItem.IdentifyingNumber
  Next
  Set colItems = Nothing
  Set objWMIService = Nothing
End Function

Private Function SistemaOperativo(strComputer)
  Dim objSWbemServices, colOperatingSystems, objOperatingSystem ' Variables WMI

  SistemaOperativo = ""

  Set objSWbemServices = GetObject("winmgmts:" & strComputer)
  Set colOperatingSystems = objSWbemServices.InstancesOf("Win32_OperatingSystem")

  For Each objOperatingSystem In colOperatingSystems
    SistemaOperativo = SistemaOperativo & ObjOperatingSystem.Caption & " S.P:" & objOperatingSystem.ServicePackMajorVersion & "." & objOperatingSystem.ServicePackMinorVersion
  Next
  Set colOperatingSystems = Nothing
  Set objSWbemServices = Nothing
End Function

Function HacePing(strComputer)
  HacePing = False
  Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & strComputer & "'")
  For Each objStatus in objPing
    If IsNull(objStatus.StatusCode) Or objStatus.StatusCode<> 0 Then
      HacePing = False
    Else
      HacePing = True
    End If
  Next
End Function

11:35 Anotado en VBScript | Permalink | Comentarios (0)

Los comentarios son cerrados