Option Explicit
Const SCRIPT_NAME = «GetSP.vbs»
Main
? BEGIN COMMENT
? Выдать сообщение об использовании сценария
? END COMMENT
Sub Usage
WScript.Echo «Retrieves a computer?s description, operating system,» _
& «and service pack.» & vbNewLine & vbNewLine & «Usage: « & _
SCRIPT_NAME & « []» & vbNewLine & vbNewLine _
& «If the computer name is not specified, uses the current computer.»
WScript.Quit
End Sub
? BEGIN COMMENT
? Завершить работу сценария с сообщением об ошибке.
? END COMMENT
Sub Die(ByVal strMessage, ByVal lngExitCode)
WScript.Echo strMessage
WScript.Quit lngExitCode
End Sub
? BEGIN CALLOUT A
Sub Main
Dim strComputer, objSystems, objSystem
? BEGIN COMMENT
? The Если в командной строке указана опция /?, показать сообщение об использовании
? Имя компьютера, если указано, является первым неспецифицированным аргументом в командной строке.
? END COMMENT
With WScript.Arguments
If.Named.Exists(«?») Then Usage
If.Unnamed.Count > 0 Then
strComputer =.Unnamed(0)
Else
? BEGIN COMMENT
? WMI использует в качестве имени локального компьютера символ точки.
? END COMMENT
strComputer = «.»
End If
End With
On Error Resume Next
? BEGIN COMMENT
? Получить коллекцию объектов класса Win32_OperatingSystem.
? END COMMENT
Set objSystems = GetObject(«WinMgmts:{impersonationlevel=impersonate}!//» _
& strComputer & «/root/CIMV2»).InstancesOf(«Win32_OperatingSystem»)
If Err Then Die «Unable to connect to computer (« & CStr(Err) & «)», Err
On Error GoTo 0
For Each objSystem In objSystems
WScript.Echo «Computer Name: « & objSystem.CSName & vbNewLine _
& «Description: « & objSystem.Description & vbNewLine _
& «OS: « & objSystem.Caption & vbNewLine _
& «Service Pack: « & CStr(objSystem.ServicePackMajorVersion)
Next
End Sub
? END CALLOUT A