管理者権限で実行ポリシーを変更せずにコマンドレット(.PS1 ファイル)を
実行できるようにする JScript(.JS ファイル)。
(function()
{
var sh = new ActiveXObject( "WScript.Shell" );
if( sh == null )
{
WScript.Echo( "failed" );
return;
}
var nSlash = WScript.ScriptFullName.lastIndexOf( "\\" );
var strPath = WScript.ScriptFullName.substring( 0, nSlash );
var strCommand = "$env:path += '" + strPath + "'";
var strShell = "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\"";
sh.run( strShell + " -NoExit -ExecutionPolicy RemoteSigned -Command \"&{" + strCommand + "}\"" );
})()
PowerShell の終了コード取得(コマンドプロンプトで PowerShell コードを実行)
C:\Users\user1>PowerShell -ExecutionPolicy RemoteSigned -Command "&{ Write-Host 'Hello' ; Exit 93 }"
Hello
C:\Users\user1>ECHO %ERRORLEVEL%
93
C:\Users\user1>
PowerShell の終了コード取得(コマンドプロンプトで PowerShell ファイル(.PS1)を実行)
コマンドプロンプトで PowerShell ファイル(.PS1)を実行(以下の例では「test01.ps1」)
C:\\Users\\user1>PowerShell -ExecutionPolicy RemoteSigned -File test01.ps1
Hello
C:\\Users\\user1>ECHO %ERRORLEVEL%
93
C:\\Users\\user1>
test01.ps1
Write-Host 'Hello';
# Exit で終了することで終了コードを返します
Exit 93