PsExec 將清單中的第二台遠端電腦視為程式名稱

PsExec 將清單中的第二台遠端電腦視為程式名稱

在特定伺服器上執行時 PsExec 的行為非常奇怪

在大多數情況下,當我使用 PsExec 在多台遠端電腦上執行程式時,它運作得很好。當我在一台特定電腦上執行相同的命令時,它會將逗號分隔清單中提供的第二個伺服器視為程式名稱。

這是我對遠端伺服器的呼叫:

psexec \\server11111,server11112 /accepteula -u "Domain\User" -p "password" -i 2 -d cmd.exe /c "wmic bios getsmbiosbiosversion"

這是輸出:

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

PsExec could not start server11112 on server11111:
The system cannot find the file specified

當我在我的開發機器上運行這個命令時,它工作得很好。但是,當我從運行 Windows 2012 的伺服器運行相同的命令時,它失敗並獲得上面的輸出。

答案1

擴展至派崔克回答\\computer[,computer2[,...],您可以使用文字檔案中的電腦列表,而不是使用以下格式列出伺服器。

psexec文件(通過psexec /?):

Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]

     @file      PsExec will execute the command on each of the computers listed
                in the file.

也就是說,您可以computers.txt在您正在工作的目錄中建立文字檔案(例如 ),並填入電腦名稱:

computer
computer2
computer3

然後你可以使用指令:

psexec @computers.txt /accepteula -u "Domain\User" -p "password" -i 2 -d cmd.exe /c "wmic bios getsmbiosbiosversion"

psexec然後將按照 中指定的順序在每台電腦上執行該命令computers.txt

答案2

不從命令列調用列表:

psexec @ListOfServers /accepteula -u "Domain\User" -p "password" -i 2 -d cmd.exe /c "wmic bios getsmbiosbiosversion"

答案3

也許逗號後面有一個不顯示的字元。我得到完全相同的

PsExec 無法在 <server1> 上啟動 <server2>:

如果逗號後面有空格,則會出錯。

相關內容