2016-06-09 167 views
1

PowerShell的第5版构建10586PowerShell的 - 在C执行PowerShell脚本:远程服务器的驱动

我使用下面的代码远离我的本地PC连接到服务器

$cimSession = New-CimSession -ComputerName "SERVERNAME.DOMAIN.COM" 


    Invoke-Command -ComputerName SERVERNAME -ScriptBlock {Get-ChildItem “C:\Temp\ps”} 

    Invoke-Command -ComputerName SERVERNAME -FilePath "\\SERVERNAME\c$\Temp\ps\PS_SCRIPT_FILE.ps1" 


Remove-CimSession -CimSession $cimSession 

的第一个命令能够成功运行并在远程服务器上看到PowerShell文件。

第二个命令失败,出现错误:

Invoke-Command : Cannot find path '\\SERVERNAME\c$\Temp\ps\PS_SCRIPT_FILE.ps1' because it does not exist. 

有另一种方式来调用/远程服务器上的C驱动器运行PowerShell脚本?

  • 我已授予我的帐户对指定文件的完全访问权限。
  • 我也尝试共享指定的文件夹,并给我自己的文件夹的读/写访问权限。
  • 我已将文件路径更改为共享路径并获得相同的结果。
  • Invoke-Command -ComputerName SERVERNAME -FilePath "\\SERVERNAME\ps\PS_SCRIPT_FILE.ps1"
+0

请注意,您的'Invoke-Command'命令没有使用'$ cimSession',它们使用WinRM协议来调用这些命令,而不是WSMAN。这就是第一个命令起作用的原因。在上面的示例中,您甚至不需要建立CimSession。要么已经在可以使用WinRM的证书下运行;或者如果您未通过远程服务器的身份验证,则使用'-Credentials'选项传递凭据。 https://technet.microsoft.com/en-au/library/hh849719.aspx – lantrix

回答

2

试试这个:

Invoke-Command -ComputerName SERVERNAME -ScriptBlock { Invoke-Command -FilePath "C:\Temp\ps\PS_SCRIPT_FILE.ps1" }

在现有代码的-FilePath参数调用机器上加工。通过将其作为参数包含在ScriptBlock中,它应该在目标机器上处理。

相关问题