2

こんにちは、ビルド マシン A (cttfs) から MSI を実行し、その MSI をマシン B (c2devint) にインストールしようとしていました。出力はマシン B の Web サイトです。

MSIインストーラーを使用してマシンAにあるpowershellスクリプトを修正するのを手伝ってください。このスクリプトはマシンAから実行されます

$cred = Get-Credential username
$session = new-PSSession -name c2devint -credential $cred
Invoke-Command -ScriptBlock {Invoke-Command -Session $session -ScriptBlock {Start-Process "msiexec.exe" -ArgumentList "/i C:\DailyBuild\DirectMSI.msi INSTALLLOCATION=D:\Websites\DirectDevInt ENVPROPERTY=DEV /qb" -Wait} -ComputerName c2devint}
Remove-PSSession $session

ここにエラーがあります

 Invoke-Command : Parameter set cannot be resolved using the specified named parameters.
    At line:3 char:44
    + Invoke-Command -ScriptBlock {Invoke-Command <<<<  -Session $session -ScriptBlock {Start-Process "msiexec.exe" -ArgumentList "/i C:\DailyBuild\DirectMSI.msi INSTALLLOCATION=D:\Websites\DirectDevInt ENVPROPERTY=DEV /qb" -Wait} -ComputerName c2devint}
        + CategoryInfo          : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
        + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.InvokeCommandCommand

また、ユーザー名とパスワードをこのスクリプトに渡す方法を教えてください

4

1 に答える 1

1

PSSession を作成したので、-ComputerNameパラメーター on を使用しますNew-PSSession

Parameter Set: ComputerName
New-PSSession [[-ComputerName] <String[]> ] [-ApplicationName <String> ] [-Authentication <AuthenticationMechanism> ] [-CertificateThumbprint <String> ] [-ConfigurationName <String> ] [-Credential <PSCredential> ] [-EnableNetworkAccess] [-Name <String[]> ] [-Port <Int32> ] [-SessionOption <PSSessionOption> ] [-ThrottleLimit <Int32> ] [-UseSSL] [ <CommonParameters>]

-SessionパラメータをInvoke-Commandスクリプトブロックの外に移動します。

Invoke-Command -Session $session -ScriptBlock `
    {Start-Process "msiexec.exe" -ArgumentList "/i C:\DailyBuild\DirectMSI.msi INSTALLLOCATION=D:\Websites\DirectDevInt ENVPROPERTY=DEV /qb" -Wait}

次に、パラメータ セットを使用しているため、-ComputerNameパラメータ オンを削除します。Invoke-CommandSession

Parameter Set: Session
Invoke-Command [[-Session] <PSSession[]> ] [-ScriptBlock] <ScriptBlock> [-ArgumentList <Object[]> ] [-AsJob] [-HideComputerName] [-InputObject <PSObject> ] [-JobName <String> ] [-ThrottleLimit <Int32> ] [ <CommonParameters>]
于 2013-05-22T06:07:36.943 に答える