2017-03-20 9 views
0

EDIT:

この質問は.exeファイルが実際に返すものの完全に理解せずに頼まれました。コードスニペットは実際に想定されていたものを返しました。ワークフロー内のPowerShellからのSharePointの前提条件をインストールしようとすると

オリジナル質問:

コード:

workflow parallelPrereqInstall{ 
param ($serverNames, $outputFile, $installFilePath) 
Function Log-Write([string]$logString){ 
    $logTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss" 
    $s = "$logTime  $logString"; 
    Add-Content $Using:outputFile -Value $s 
    Write-Host $logString 
} 
foreach -parallel($server in $serverNames){ 
    $SPPrereqsInstalled = InlineScript { 
     $installSPPrereqs = { 
      $fullPath = "$args\prerequisiteinstaller.exe" 
      $prereqResult = Start-Process -FilePath $fullPath -ArgumentList "/unattended" -Verb RunAs -Wait -WindowStyle Maximized -PassThru 
      return $prereqResult.ExitCode 
     } 
     $user = "domain\admin" 
     $pass = "password" 
     $securePass = ConvertTo-SecureString $pass -AsPlainText -Force 
     $cred = New-Object System.Management.Automation.PSCredential $user, $securePass 
     Invoke-Command -ComputerName $Using:server -ScriptBlock $installSPPrereqs -ArgumentList $Using:installFilePath -Credential $cred -Authentication Credssp 
    } 
} 

I常に$prereqResultsから-1を取り戻すと、それを再度実行および/または与えるべきであるのに対し、それから、単にエラーを何かをインストールしているようです私は別の終了コード。私は正しい終了コードを得ているとは思わない。

私は終了コードのプロパティを指定しない場合、このようprereqResultsリターン:

@{Path=; Company=; CPU=0.0625; FileVersion=; ProductVersion=; Description=;  Product=; __NounName=Process; PSComputerName=localhost;  RunspaceId=a62e33ea-5f4c-4cae-85a4-d1426efacced;  PSShowComputerName=True;  PSSourceJobInstanceId=b2624e9f-5584-4874-a5b3-a9745f95bf42; ExitCode=-1; HasExited=True; ExitTime=03/20/2017 13:12:31;   Handle=2504;  SafeHandle=Microsoft.Win32.SafeHandles.SafeProcessHandle; Id=2980;  MachineName=.; PrivilegedProcessorTime=00:00:00.0625000;   StartInfo=System.Diagnostics.ProcessStartInfo; StartTime=03/20/2017 13:12:30;  SynchronizingObject=; Total 
ProcessorTime=00:00:00.0625000; UserProcessorTime=00:00:00;  EnableRaisingEvents=False; Site=; Container=} 

は、誰かが私が適切に終了コードを実行して返す方法を見つけ出す手助けすることはできますか?

答えて

0

Write-Output $ prereqResultを試し、プロパティ名が "ExitCode"と同じであるかどうかを確認して、$ prereqResult.PSSourceJobInstanceIdの書き込み出力を試みます。

それが正しく表示-pattern「終了コード」を選択し、文字列を変数にプッシュして、変数を返すか、使用している場合

はそれが

の作品ホープ
関連する問題