如何在远程Windows上运行Powershell获取远程Windows结果而不是本地结果

时间:2018-08-09 09:57:29

标签: powershell

我的本​​地计算机名称是LOCAL-MACHINE, 远程计算机名称是REMOTE-MACHINE。

我希望在本地计算机上发出powershell cmdlet, 通过Enter-PSSession连接到远程计算机, 并在远程计算机的pssession上执行hostname.exe, 然后退出。

我在本地计算机Powershell ISE上发出这些命令。

$password = ConvertTo-SecureString "Mypassword" -AsPlainText -Force

$cred=new-object System.Management.Automation.PSCredential("domain\user",$password)

Enter-PSSession -ComputerName REMOTE-MACHINE -Port 5986  -Credential  $cred -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)

hostname.exe

Exit-PSSession

我希望得到结果:

REMOTE-MACHINE

但是我得到这个结果(本地计算机名称):

 LOCAL-MACHINE

我该怎么办?

1 个答案:

答案 0 :(得分:0)

这是因为Enter-PSSession在脚本中不起作用。请改用Invoke-Command

$password = ConvertTo-SecureString "Mypassword" -AsPlainText -Force
$cred=new-object System.Management.Automation.PSCredential("domain\user",$password)

Invoke-Command -ComputerName REMOTE-MACHINE -Port 5986  -Credential  $cred -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -scriptblock {

    hostname.exe
}