无法让 PSExec 与 Powershell 配合使用

无法让 PSExec 与 Powershell 配合使用

上周我开发了一个脚本,用于检查指定机器上是否启用了 psremoting。本周我开始编写一个脚本,用于在指定机器上启用 psremoting,但我无法让 psexec 在 powershell 中运行(另外,是的,我知道可以通过组策略启用 psremoting)。这是我的脚本:

$input = Read-Host @"
Select Option
(1)Manually enter computer(s)
(2)Retrieve computer(s) from file

Option
"@

If ($input -eq 1){
    $count = Read-Host "How many computers"
    $Computers = 1..$count
    $b=0;$c=1; ForEach ($Computer in $Computers) {$Computers[$b] = Read-Host "Computer" $c; $b++; $c++}
} ElseIF ($input-eq 2) {
    $Computers = Read-Host "File" 
    $Computers = Get-Content $Computers
} Else {
    write-host "Invalid Option"
    Exit
}

cls
$User = Read-Host "Enter username"
$Pass = Read-Host "Enter password"
cls

$PSExec = "C:\Windows\System32\PSExec\PSExec.exe"

ForEach ($Computer in $Computers){

# & $PSExec \\$Computer -u $User -p $Pass -h -c "C:\Temp\mybat.bat"
& $PSExec \\$Computer -u $User -p $Pass "ipconfig"

}

执行脚本时出现以下错误:

PSExec.exe:在 C:\MyStuff\EnablePSRemoting.ps1:34 char:1 + & $PSExec $Computer -u $User -p $Pass "ipconfig" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:String)[],RemoteException + FullyQualifiedErrorId:NativeCommandError

PsExec v2.11 - 远程执行进程版权所有 (C) 2001-2014 Mark Russinovich Sysinternals - www.sysinternals.com 系统找不到指定的文件。

然后我尝试直接从 powershell 运行 PSExec,但仍然没有成功。

答案1

Start-Process -Filepath "$PSExec" -ArgumentList "\\$computer -u $user -p $pass $command"完全满足我的需要。

答案2

在脚本中,需要在计算机名称前加上双反斜杠:
& \\$PSExec $Computer -u $User -p $Pass "ipconfig"

在 PowerShell 中直接尝试的列表中,如果这是实际密码,则双美元符号被解释为最后一条命令的最后一个标记。

答案3

我尝试使用它,它似乎在使用语法时有效

.\Psexe.exe \\$Computer

以前导点为准。

相关内容