我正在尝试将本地函数传递给具有多个参数的远程服务器。我计划为许多服务器运行它,因此参数列表将针对每种服务器类型进行更改。这是我试图用我正在使用的命令调用的函数的片段。远程计算机接受第一个参数,但似乎永远不会得到第二个参数。
Function Backup-Server{
[CmdletBinding()]
param
(
[Parameter(Mandatory=$true)]
[string]$BackupTarget,
[Parameter(Mandatory=$false)]
[switch]$BareMetal,
[Parameter(Mandatory=$false)]
[switch]$SystemState,
[Parameter(Mandatory=$false)]
[string[]]$Volume,
[Parameter(Mandatory=$false)]
[switch]$CriticalVolumes,
[Parameter(Mandatory=$false)]
[string[]]$File
)
Do stuff...
}
Invoke-Command -ComputerName dc-01.test.com -ScriptBlock ${Function:Backup-Server} -ArgumentList @("$BackupTarget","$SystemState") -AsJob
有什么想法?我感谢任何帮助!
答案 0 :(得分:0)
我建议您将所有内容都包含在计算机本地的脚本文件中(例如c:\ script.ps1),然后在本地运行时调用目标计算机上的文件:
Invoke-Command -FilePath c:\script.ps1 -ComputerName server1,server2