So-net無料ブログ作成
検索選択
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
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。
メッセージを送る
人気ブログランキングへ
 

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。