Option Explicit
On Error Resume Next
Dim sComputerName, sInput, oWMIService, colComputers, colRunningServices, sArgument, oService,
oFSO, oFile, aComputers
BEGIN COMMENT LINE
?При отсутствии аргументов запустить сценарий на локальном компьютере.
END COMMENT LINE
If Wscript.Arguments.Count = 0 Then
sComputerName = «.»
Call ServStat
Wscript.Quit
End If
sInput = lcase(Wscript.Arguments(0))
Select Case sInput
Case «file»
BEGIN COMMENT LINE
??Присвоение значение константе INPUT_FILE_NAME и объявление о чтении файла.
END COMMENT LINE
Const INPUT_FILE_NAME = «C:ScriptsServers.txt»
Const FOR_READING = 1
BEGIN COMMENT LINE
??Создать объект для файла.
END COMMENT LINE
Set oFSO = CreateObject(«Scripting.FileSystemObject»)
BEGIN COMMENT LINE
??Открытие файла.
END COMMENT LINE
Set oFile = oFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
BEGIN COMMENT LINE
??Чтение из файла и запись данных в переменную sComputerName.
END COMMENT LINE
sComputerName = oFile.ReadAll
BEGIN COMMENT LINE
??Закрытие файла.
END COMMENT LINE
oFile.Close
aComputers = Split(sComputerName, vbCrLf)
For Each sComputerName in aComputers
WScript.Echo vcCrLf & «Results From»& vbTab & sComputerName & vbCrLf
Call ServStat
Next
Wscript.Quit
Case «all»
Wscript.Echo «Сценарий проверит все компьютеры с интерфейсом WMI».
?Set colComputers = GetObject(LDAP://CN=Computers, DC=labrynth, DC=com).
For Each oComputer in colComputers
sComputerName = oComputer.CN
Call ServStat
Next
Case «/?»
Wscript.Echo «Инструкции»
Wscript.Echo «Сценарий проверяет статус служб на выбранном компьютере (компьютерах)»
Wscript.Echo «Если они имеют интерфейс WMI».
Wscript.Echo «Чтобы проверить статус служб на всех серверах в Active Directory»
Wscript.Echo «введите ?all?».
Wscript.Echo «Чтобы прочитать имена серверов из файла, введите ?file?».
Wscript.Echo « Чтобы проверить статус на локальном компьютере, не нужно вводить аргументы».
Case Else
For Each sArgument in WScript.Arguments
sComputerName = sArgument
WScript.Echo vcCrLf & «Results From»& vbTab & sComputerName & vbCrLf
Call ServStat
Next
End Select
Sub ServStat
BEGIN COMMENT LINE
?Подключение к службе WMI на целевом компьютере.
END COMMENT LINE
Set oWMIService = GetObject («winmgmts:» _
& «{impersonationLevel=impersonate}!» & sComputerName& «
ootcimv2»)
BEGIN COMMENT LINE
??Получаем список наличных служб.
END COMMENT LINE
Set colRunningServices = oWMIService.ExecQuery _
(«Select * from Win32_Service»)
BEGIN COMMENT LINE
??Проход по списку и выдача имен и данных о состоянии служб.
END COMMENT LINE
For Each oService in colRunningServices
Wscript.Echo oService.DisplayName & VbTab & oService.State
Next
End Sub