IIS에서 내 보낸 PFX 인증서를 Apache에서 더 잘 작동하는 인증서 형식으로 변환하는 PowerShell 스크립트를 만들었습니다. 이 스크립트는 openssl.exe의 인스턴스를 일련의 옵션과 함께 호출합니다. 완벽하게 작동합니다.Start-Job은 정상적으로 완료되지만 출력은 오류로보고됩니다.
저는 이제 사용자 친화적 인 출력과 오류 처리를 위해 노력하고 있습니다. 내가 말했듯이 그게 잘 작동했다, 처음에 호출-명령에서 프로세스를 실행 하였다 : OpenSSL을에서 간단한 성공 메시지를 반환
[string]$Command = " pkcs12 -in '$PFXFile' -nocerts -out '$key' -password pass:$importpw -passout pass:$pempw"
(Invoke-Command -ScriptBlock {param($arg)$arg|openssl.exe} -ArgumentList $Command)|Out-Null
(이 경우, "MAC 확인 확인"). 내 목표는 그 메시지를 완전히 억제하고 덜 간결한 것으로 대체하는 것입니다. 지금 플래그 것 같았다 제외하고,
[string]$Command = " pkcs12 -in '$PFXFile' -nocerts -out '$key' -password pass:$importpw -passout pass:$pempw"
Start-Job -ScriptBlock {param($arg)$arg|openssl.exe} -Name MakeCert -ArgumentList $Command
Get-Job|Wait-Job|Receive-Job
... 같은 성공 메시지가 나타 : thusly 히 시작-작업을 사용하여 동일한 프로세스를 실행하면 해당 나는 그것을 할 수있는 방법을 찾기 위해 아직하지만 난 찾았어요 오류 (빨간색 텍스트)과 같이
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 MakeCert BackgroundJob Running True localhost param($arg)$arg|openssl.exe
MAC verified OK
+ CategoryInfo : NotSpecified: (MAC verified OK:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
+ PSComputerName : localhost
나는 다음 '정지'로 시작 - 작업의 ErrorAction을 정의하고 그들 (캐치에 대한 System.Exception 사용) 시도/잡기에 전체를 포장했습니다. 그러나 같은 결과를 가져다주었습니다. 생각?
0 종료 코드를 전송하는 것으로 보입니다. 그냥 실행 중 '$ 명령 | openssl.exe; 호스트 쓰기 $ LastExitCode 반환 : 'OpenSSL> MAC 확인 OK; OpenSSL> 0 –
다음은 stderr에 작성해야합니다. Console.Error에 쓰지만 0을 반환하는 간단한 C# 콘솔 앱을 만들었습니다. Start-Job을 통해 실행할 때 같은 오류가 발생합니다. –