У меня есть этот сценарий impersonat, написанный на VBS, он постоянно запрашивает имя компьютера, как мне заставить его извлекать имя компьютера из списка txt? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть этот олицетворенный сценарий, написанный на 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

Мне нужно, чтобы можно было вставлять имя компьютера в текстовом файле и повторять для каждого имени компьютера.

1 Ответ

0 голосов
/ 19 мая 2019

похоже, что Ансгар был прав, я не знаю, о чем я думал !!! Я попробовал приведенный ниже код, и это сработало. спасибо!

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
end if
next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...