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