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