IIS7 CLI ユーティリティ appcmd が、invoke-command を使用して呼び出されたときに、この奇妙な動作を確認しました。
これは、実行しようとしている小さなコマンドです。
PS C:\>appcmd list config /section:applicationPools | Select-String -SimpleMatch "SomeAppPool" -context 0,4 | Out-String -Stream | Select-String " pingingEnabled=""true"""
コマンドは完全に正常に実行されます [すべての %PATH% 変数が設定されている IIS7 マシンで実行されます]。次のような出力が得られます
<processModel pingingEnabled="true" />
リモート マシンから invoke-command を介して同じことを行います。
リモートバージョン-I
PS C:\>invoke-command -computername iismachine -credential $creds -scriptblock {
appcmd list config /section:applicationPools | Select-String -SimpleMatch "SomeAppPool" -context 0,4 | Out-String -Stream | Select-String " pingingEnabled=""true"""
}
出力はありませんが、空行は 3 行だけです!!!
リモートpowershellセッションを作成してやると、うまくいきます..
リモート版Ⅱ
PS C:\>enter-pssession -computername iismachine -credential $creds;
[iismachine]: PS C:\Users\onewildgamer\Documents>invoke-command -scriptblock {
appcmd list config /section:applicationPools | Select-String -SimpleMatch "SomeAppPool" -context 0,4 | Out-String -Stream | Select-String " pingingEnabled=""true"""
}
動作に違いがあるため、ユーザー権限の問題は疑わしくありません。
何か間違ったことをしている場合はお知らせください。なぜこれが機能しないのか、私の人生では理解できません。