У меня есть этот олицетворенный сценарий, написанный на VBS. В настоящее время он запрашивает имя компьютера. Как заставить его вытащить имя компьютера из текстового списка? Вместо того чтобы запрашивать имя компьютера, я хочу, чтобы он автоматически считывал каждое имя компьютера из текстового файла.
Я пробовал это, но это не сработало, независимо от того, как я это написал.
Const ForReading = 1
Const ForWriting = 2
Const TriStateUseDefault = -2
strList = "computers.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objList = objFSO.OpenTextFile(strList, ForReading, False, TriStateUseDefault)
arrComputers = Split(objList.ReadAll, vbCrLf)
objList.Close
For Each strComputer In arrComputers
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objProcess = objWMIService.Get("Win32_Process")
strCommand = "sc config lanmanserver start= demand"
strCommand2 = "Net start lanmanserver"
errReturn = objProcess.Create(strCommand, null, null, intProcessID)
If errReturn = 0 Then
WScript.Echo "Lanmanserver was changed to manual: " & intProcessID
Else
WScript.Echo "WinRM could not be started due to error: " & errReturn
End If
WScript.Sleep 5000 '5 seconds
errReturn = objProcess.Create(strCommand2, Null, Null, intProcessID)
If errReturn = 0 Then
WScript.Echo "The Server Service was started with a process ID: " & intProcessID
Else
WScript.Echo "The Server Service could not be started due to error: " & errReturn
Это оригинальный код:
Set objShell = WScript.CreateObject("WScript.Shell")
objcomputer = InputBox("Please Enter a Computer Name to Start the Server Service on.")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & objComputer & "\root\cimv2")
Set objProcess = objWMIService.Get("Win32_Process")
strCommand = "sc config lanmanserver start= demand"
strCommand2 = "Net start lanmanserver"
errReturn = objProcess.Create(strCommand, Null, Null, intProcessID)
If errReturn = 0 Then
WScript.Echo "Lanmanserver was changed to manual: " & intProcessID
Else
WScript.Echo "WinRM could not be started due to error: " & errReturn
End If
WScript.Sleep 5000 '5 seconds
errReturn = objProcess.Create(strCommand2, null, null, intProcessID)
If errReturn = 0 Then
WScript.Echo "The Server Service was started with a process ID: " & intProcessID
Else
WScript.Echo "The Server Service could not be started due to error: " & errReturn
End If
Мне нужно, чтобы можно было вставлять имя компьютера в текстовом файле и повторять для каждого имени компьютера.