我正在尝试在远程计算机上运行power shell脚本,但它无法运行。尝试下面两个选项失败。
Invoke-Command -Session $Session -FilePath "c:\ConfigureRemotingForAnsible.ps1 -CertValidityDays 3650 -EnableCredSSP -Verbose"
方法2:
$script = [scriptblock]::Create("c:\ConfigureRemotingForAnsible.ps1 -CertValidityDays 3650 -EnableCredSSP -Verbose")
$result =Invoke-Command -Session $Session -script $script
如何在远程计算机上运行此脚本?
由于 SR
答案 0 :(得分:0)
function Send-RemoteCommand
{
[CmdletBinding()]
Param
(
[Parameter(Position = 0, Mandatory = $true,ValueFromPipeline=$True,HelpMessage="Computer Name to run command on.")]
[String]$ComputerName,
[Parameter(Position = 1, Mandatory = $true,ValueFromPipeline=$false,HelpMessage="Command to be ran on remote computer.")]
[String]$Command
)
Invoke-Command -ComputerName $ComputerName -ScriptBlock {param($Arg) Invoke-Expression -Command $Arg} -ArgumentList "$Command"
}
Send-RemoteCommand -ComputerName "ComputerNameHere" -Command "YourPowerShellCommandsHere"
这是我通常用来向我们域上的用户计算机发送远程命令的功能。写了所以我不必记住如何正确地执行Invoke-Command语法:)我唯一的想法是,我不确定这是否适用于脚本,但它确实适用于一个内衬。如果你想放手一下,由你决定!祝你好运。
答案 1 :(得分:0)
从脚本中删除特殊字符后,代码工作正常。
$script = [scriptblock]::Create("c:\ConfigureRemotingForAnsible.ps1 -CertValidityDays 3650 -EnableCredSSP -Verbose")
$result =Invoke-Command -Session $Session -script $script