SSブログ
QLOOKアクセス解析

PowerShellのバックグラウンドジョブ [PowerShell]

unix系のシェルだと & (ampersand) で簡単に作れるバックグラウンドジョブですが、
PowerShell v1 ではそれに相当する機能はありません(よね?)

v2 からは実現可能になっています。CTP2 では runspace、CTP3 では PSSession を用いて、こんな感じで書けます。
$session01 = New-PSSession -ComputerName $ComputerName
$job = Invoke-Command `
-AsJob -ScriptBlock $blockTest01 `
-Session $session01
なんだか面倒ですよね。なぜなんでしょう。

さらにこの方法には CTP2 から CTP3 になって、できるようになるかと思っていたけどまだそのままの制限があります。

バックグラウンドジョブを実行しているセッションの中からはたとえば
Get-WmiObject -Class Win32_BIOS -ComputerName $OtherComputer
のように他のコンピュータにアクセスができないのです。

Enter-PSSessionn の二段重ねが出来ないのも同じ理由かもしれません。

認証とか権限とかの問題のような気がするので、クレデンシャルをうまく渡すとかhttpsでつなぐとかすればどうにかなるのかもしれませんが、winrm 周りの設定が複雑でよくわかりません。(^_^;

どうにかならないものですかねえ。。。

というフィードバックをしようと思いつつ英語で書くのが面倒で・・・


タグ:powershell
人気ブログランキングへ
 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。