如何将参数传递给 Powershell 脚本并在远程计算机上 运行
how to pass parameters to Powershell script and run it on a remote computer
我正在尝试将 2 个参数传递给 PS 脚本,该脚本将修补远程计算机上的 SQL 服务器。这是我使用的代码:
$Patcher = "\remoteShareLocation\SQLpatcher.ps1"
$ver = "SQL2012"
$inst = "NEWINST"
Invoke-Command -ComputerName RMTMACHINE -credential dmn\usrname -ScriptBlock {$Patcher $ver $inst}
这会要求提供凭据,但不会 运行 并且还会显示任何输出。语法有什么问题吗?请使用任何备用 cmdlet?
尝试
$cred = Get-Credential
Invoke-Command -ComputerName RMTMACHINE -credential $cred -ScriptBlock {$Patcher $ver $inst}
或者像这样创建一个凭证对象:
$username = "username"
$password = "password" | ConvertTo-SecureString -asPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
您需要传递凭据对象而不是 Domain\username。
和 运行 远程脚本文件请查看
如果你有 powershell V3 或更高版本,你可以使用 using
前缀来 "transmit" 本地变量到远程主机:
Invoke-Command -ComputerName RMTMACHINE -credential $cred -ScriptBlock {$using:Patcher $using:ver $using:inst}
对于旧版本,请查看 invoke-command
的 -argumentlist
参数
我正在尝试将 2 个参数传递给 PS 脚本,该脚本将修补远程计算机上的 SQL 服务器。这是我使用的代码:
$Patcher = "\remoteShareLocation\SQLpatcher.ps1"
$ver = "SQL2012"
$inst = "NEWINST"
Invoke-Command -ComputerName RMTMACHINE -credential dmn\usrname -ScriptBlock {$Patcher $ver $inst}
这会要求提供凭据,但不会 运行 并且还会显示任何输出。语法有什么问题吗?请使用任何备用 cmdlet?
尝试
$cred = Get-Credential
Invoke-Command -ComputerName RMTMACHINE -credential $cred -ScriptBlock {$Patcher $ver $inst}
或者像这样创建一个凭证对象:
$username = "username"
$password = "password" | ConvertTo-SecureString -asPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
您需要传递凭据对象而不是 Domain\username。
和 运行 远程脚本文件请查看
如果你有 powershell V3 或更高版本,你可以使用 using
前缀来 "transmit" 本地变量到远程主机:
Invoke-Command -ComputerName RMTMACHINE -credential $cred -ScriptBlock {$using:Patcher $using:ver $using:inst}
对于旧版本,请查看 invoke-command
的-argumentlist
参数