2016-06-16 19 views
0

$PW変数のパスワードを既に入力して正しいPSCredentialsを作成した後、PowerShellが資格情報を要求してリモートコンピュータにアクセスするのはなぜですか?私が持っているもう一つの問題は、Start-Processが指定されたFilePath(Nullまたは空)を見つけることができないということです。foreachループでInvoke-Commandに引数を渡す

私は、これらの2つのエラーは同じエラーのためです。私の変数値がforeachループに渡されないためです。ご覧のとおり、-argumentlistパラメーターを試して解決策を試しましたが、機能しません。私は間違って何をしていますか?

function Install-Exe { 
    param(
     [string[]]$ComputerName, 
     [string]$UNCexepath, 
     [string[]]$exeargs 
    ) 
    $Admin = "domain\admin" 
    $PW = Read-Host "Enter Password" -AsSecureString 
    $cred = New-Object System.Management.Automation.PSCredential -argumentlist $Admin, $PW 
    foreach ($c in $ComputerName) { 
     Invoke-Command -ComputerName $c -Credential $cred -ArgumentList $cred,$UNCexepath { 
      Start-Process -Filepath $UNCexepath -Credential $cred -Verb RunAs 
     } 
    }} 

答えて

1

あなたがInvoke-Commandスクリプトブロック内のパラメータを宣言する必要があります:それを取得と同じくらい簡単に

foreach ($c in $ComputerName) { 
    Invoke-Command -ComputerName $c -Credential $cred -ArgumentList $cred,$UNCexepath { 
     param($cred,$UNCexepath) 
     Start-Process -Filepath $UNCexepath -Credential $cred -Verb RunAs 
    } 
}} 
+0

。私はそれを試みたと思った...私はそうしなかったようだ。ありがとう! – SimonS

関連する問題