我想使用Team City和PowerShell內嵌腳本遠程安裝Puppet Client for Windows。使用MsiExec和Powershell遠程安裝Puppet
Invoke-command –computername %Machine Host Name% –ScriptBlock {Param($options) Start-Process -FilePath "msiexec.exe $options" -ArgumentList "/i C:\Temp\puppet-3.0.0.msi PUPPET_MASTER_SERVER=%Puppet Master Server% /l*v C:\Temp\puppet-3.0.0.log /qn" -Wait –Passthru}
當我從我的本地機器執行它工作得很好,但似乎TeamCity有一些問題處理報價。
**[Step 2/2] Invoke-Command : A positional parameter cannot be found that accepts argument '
[09:08:08][Step 2/2] –ScriptBlock'.
[09:08:08][Step 2/2] At line:1 char:15
[09:08:08][Step 2/2] + Invoke-command <<<< –computername vavp-pmo-agt08 –ScriptBlock {Param($option
[09:08:08][Step 2/2] s) Start-Process -FilePath msiexec.exe $options -ArgumentList /i C:\Temp\puppet
[09:08:08][Step 2/2] -3.0.0.msi PUPPET_MASTER_SERVER=vavt-pmo-sbx23.company.com /l*v C:\Temp\puppet
[09:08:08][Step 2/2] -3.0.0.log /qn -Wait –Passthru}
[09:08:08][Step 2/2] + CategoryInfo : InvalidArgument: (:) [Invoke-Command], Parameter
[09:08:08][Step 2/2] BindingException
[09:08:08][Step 2/2] + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
[09:08:08][Step 2/2] .Commands.InvokeCommandCommand
[09:08:08][Step 2/2]
[09:08:08][Step 2/2] Process exited with code 1**
沒有好的腳本執行模式切換。
這一個救了我的一天。 Invoke-command -computername%puppet.client.host%-ScriptBlock {Param($ options)Start-Process -Wait -Passthru -FilePath msiexec.exe $ options「-ArgumentList」/ i C:\ Temp \ puppet-3.0 .0.msi PUPPET_MASTER_SERVER =%env.puppet.master%/ l * v C:\ Temp \ puppet-3.0.0.log/qn「} – Maverick