我正在嘗試使用 powershell 停止 GitlabRunner windows 服務。當我在提升的 powershell 提示符下執行命令時,我看到以下預期回應

現在,如果我以管理員身份在 powershell ISE 中運行相同的命令,它會顯示 RemoteException 錯誤。

請注意,即使回應顯示錯誤,服務實際上也會被停止。
我使用 girlab-runner 的其他命令(如registeror )得到相同型別的錯誤回應start。命令正在運行,但在回應中顯示錯誤并且僅在 ISE 中發生。
uj5u.com熱心網友回復:
這意味著您的gitlab-runner.exe呼叫將其輸出發送到stderr,而不是 stdout。
不幸的是,ISE 不恰當地將外部程式的 stderr 輸出呈現為PowerShell 錯誤,這就是您所看到的;
引發癥狀的一個簡單方法是跑步cmd /c 'echo to stderr >&2'
解決方法是:
.\gitlab-runner.exe 2>&1 | % ToString # % is short for ForEach-Object
2>&1是將 stderr 輸出合并到成功輸出流的重定向,PowerShell 的 stdout 等效項。將生成的行流轉換為字串(帶有)是必要的,因為 PowerShell 在實體
% ToString中包裝了 stderr 行。System.Management.Automation.ErrorRecord
但是,您可以通過從過時的 ISE 遷移來避免需要變通方法:
Windows PowerShell ISE不再積極開發,有理由不使用它(底部),特別是無法運行PowerShell (Core) 7 。
提供最佳 PowerShell 開發體驗的積極開發、跨平臺和跨版本的編輯器是帶有PowerShell 擴展的Visual Studio Code。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532932.html
