从另一个调用多个参数不起作用的远程脚本

时间:2017-02-17 19:51:24

标签: powershell powershell-remoting

我正在尝试创建一个将接受输入的脚本(现在是硬编码值)并调用安装PS脚本并在多个服务器上运行它。我正在使用PSSession和Invoke-Command(见下文)。以下运行,但什么都不做。它似乎没有调用其他脚本。除了实际安装之外,我还需要知道它是否成功。我是Powershell的新手,所以任何提示/帮助/建议都会很棒。以下内容包含在ForEach中,以使用$ Computer

循环服务器
     Try
     {
        $session = New-PSSession -ComputerName App02 -Credential $cred

        $sourceInstall = $sourceFolder + 'Install\Install.ps1'
        Invoke-Command -Session $session -ScriptBlock{param($serviceName, $installFolder, $sourceFolder, $Action, $username, $password) $sourceInstall} -ArgumentList ($ServiceName, $installFolder, $sourceFolder, $Action, $username, $password)
     }
 Catch
     {
     $Filename = "Error.txt"
         Write-Output "ERROR: Partial Service Deployment. See error log file(s)"
         Add-Content $Filename $_.Exception.Message
     }
     Get-PSSession | Remove-PSSession

1 个答案:

答案 0 :(得分:0)

您可以在任何版本的PowerShell中使用它而不使用$ Using语句。但也可以将其作为参数传递。

例如: -

Invoke-Command -ScriptBlock
   param($Name)
   & $Command $Name
} -ArgumentList 'Get-Process','Notepad'

但是在使用调用运算符'&'

时,你必须传递参数位置
Get-Help About_Parameters

https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_parameters

此致

Kvprasoon