スキップしてメイン コンテンツに移動

投稿

ラベル(PowerShell)が付いた投稿を表示しています

PowerShellのStart-Processで起動したプロセスのExitCodeを取得する方法

PowerShellのStart-Processで起動したプロセスのExitCodeの取得方法を下記に示します。 $p = Start-Process - NoNewWindow - PassThru - FilePath "some_exe" $dummy = $p . Handle # Cache the handle $p . WaitForExit ( ) Write-Host " $p .ExitCode" 「なんでこんな単純なことを記事にするの?」と思う人もいるかもしれませんが、上記の Cache the handle の行がないと正しいExitCodeは取得できません! -Wait とかをつけてもだめです。 詳細は下記のGitHubのissueを参考にしてください。 https://github.com/PowerShell/PowerShell/issues/20400#issuecomment-1740954070

PowerShellでStart-Processで起動したアプリケーションのログをファイルとコンソールの両方に出力

はじめに PowerShell上で Start-Process コマンドを使って起動したアプリケーションは -RedirectStandardOutput や RedirectStandardError オプションを指定することで、ログを ファイルに出力 できます(コンソールには出力できないので注意)。 このログを同時にコンソールにも表示させたかったのですが、思いのほか苦戦したので備忘録として共有します。 できた方法 結局出力されたログファイルを、別起動したプロセスでTailするという方法を採用しました。 下記はsomethig.logに書き込みつつ同時にコンソールにもログの内容を出力するPowerShellの例です。 try { $logJobObj = Start-Job - ScriptBlock { Get-Content - Path ".\something.log" - Wait } $mainProcessObj = Start-Process - PassThru - FilePath process . exe - ArgumentList "-something_argument... -RedirectStandardOutput " . \something . log " RedirectStandardError " . \something . log" / / アプリケーションが終了するまで待つ While ( ! $mainProcessObj . HasExited ) { / / ログをTailしているJobの出力を受け取る Receive-Job $logJobObj / / 適当な秒数待つ Start-Sleep - Seconds 1 } Receive-Job $logJobObj } finally { if ( $logJobObj ) { Receive-Job $logJobObj / / ログをTailしているJobを終了 Stop-Job $logJobObj Re

Windowsで言語パックを強制的に削除

Windows PowerShellを管理者権限で起動。 まずは、インストールされている言語パックの一覧を取得 Get-WinUserLanguageList 下記のコマンドで{language tag}の部分に削除したい言語タグ(例: en-US)を当てはめて実行すればOKです。 $LangList = Get-WinUserLanguageList $MarkedLang = $LangList | where LanguageTag -eq "{language tag}" $LangList.Remove($MarkedLang) Set-WinUserLanguageList $LangList -Force

自分のPCが所属しているActive DirectoryのWindows ドメインを調べる方法

Windows Power ShellかCommand Promptで下記のコマンドを実行すると自分のPCの所属しているActive DirectoryのWindowsドメインがわかります。 > systeminfo | findstr /B "Domain" Domain: WORKGROUP もしActive Directoryのドメインに参加していなければ、上記の例のように&quote;'Domain: WORKGROUP&quote;と表示されます。ドメインに参加していれば、&quote;WORKGROUP&quote;以外の文字列が表示されます。

Firebase Toolsコマンドが実行ポリシーの設定が原因で実行できない問題の解決法

Firebase ToolsをインストールしてWindows PowerShell上からfirebaseコマンドを実行したのですが、下記の実行ポリシー関連のエラーが発生して正常に実行できませんでした。 PS C:\\Users\\user > firebase firebase : File C:\\Users\\user\\AppData\\Roaming\\npm\\firebase.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID = 135170. At line:1 char:1 + firebase + ~~~~~~~~ + CategoryInfo : SecurityError: ( : ) [ ] , PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess このあたりを参考に https://tecadmin.net/powershell-running-scripts-is-disabled-system/ 、管理者(Administrator)権限でPowerShellを開き、下記のコマンドを実行して解決しました。 PS C:\\Users\\user > Set-ExecutionPolicy RemoteSigned