問題タブ [start-job]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - ジョブ内の Powershell 引用符付き変数パラメーター
私はこのエラーが発生します:
開始ジョブでパラメーターを受け入れるように tfsbuild を取得できないようです...ジョブなしで tfsbuild 部分を実行するだけで、実際には正常に動作します。
その値を渡す方法はありますか? TX
powershell - ジョブの開始時に timeout と引数リストに変数を渡す
次のスクリプトを使用して、CSV に保存されているコンピューターのリストを ping しようとしています。望ましい結果は、タイムアウト条件を確認できることです。
このスクリプトはエラーになります:
「-」演算子の右側に値式を指定する必要があります。」
引数リストをここに移動すると:
というエラーが表示されます
パラメータ 'ComputerName' の引数を検証できませんでした。引数が null または空です。
スクリプトブロックに変数を渡すことに関する記事や質問を見たことがありますが、それらは for でInvoke-Command
あり notStart-Job
であり、翻訳で機能させるにはまだ必要です。それが機能した場合、期待している出力が表示されないという印象を受けていWrite-Host
ます。
powershell - リストから多くの URL を非同期で呼び出すにはどうすればよいですか
呼び出す必要がある URL が数十万あります。これらは、それらを処理し、ステータス コードをテーブルに書き込むアプリケーション サーバーへの呼び出しです。応答 (成功/失敗) を待つ必要はありません。サーバーが要求を受け取っただけです。また、Tomcat が処理できる同時要求の数を調べていないため、一度に実行できる同時ジョブの数を指定できるようにしたいと考えています。
これは私がこれまでに得たものであり、基本的には、URL呼び出しではなく、他の誰かが同様のことを試みたものです。テキスト ファイルには、それぞれの行に各 URL が含まれています。URL は次のようになります。
そしてコード:
私が抱えている問題は、「ジョブ」ごとに 2 つのエラーが発生することであり、その理由がわかりません。URL 配列 $content をダンプすると問題なく表示され、Invoke-WebRequest を 1 つずつ実行するとエラーなく動作します。
ヘルプまたは代替の実装をいただければ幸いです。私はPowerShellを使用しないことにオープンですが、Windows 7デスクトップまたはWindows 2008 R2サーバーに限定されており、ネットワークの遅延を削減するために、URLでlocalhostを使用してサーバー自体で最終スクリプトを実行することになるでしょう。
powershell - Get-ADPrincipalGroupMembership をジョブとして使用する
ADグループメンバーシップを仕事として取得したい. 使っているだけ
AD グループのリストを適切に返します。ただし、これを仕事として試すと:
エラーが発生します:
パラメータ 'Identity' の引数を検証できません。引数が null または空です。null または空でない引数を指定して、コマンドを再試行してください。+ CategoryInfo : InvalidData: (:) [Get-ADPrincipalGroupMembership], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.Get ADPrincipalGroupMembership + PSComputerName : localhost 何が間違っていますか?
powershell - 子ジョブの子ジョブの出力を取得する
ジョブ (A) を開始し、このジョブが別のジョブ (B) を開始した場合、そのようなものを使用して (B) の出力をフェッチすることは可能ですか?
オブジェクトに再帰的にドリルダウンできることを望んでいましたが、奇妙なことに、(Get-Job -Name A).ChildJobs[0]
常に空の ChildJobs コレクションがあります。これは、雇用の創出方法に関する私の誤解に過ぎないかもしれません。
これに対する 1 つの回避策は、ジョブ B が終了するまで待機し、その出力を取得して変数に格納し、変数に対して Write-Output を実行して、親スクリプトが処理できるようにすることです。動作しますが、ジョブ B が完了するまで待つ必要があり、10 ~ 40 分かかる場合があります。
おそらく (ジョブ B で) フラット ファイルまたは SQLite データベースに発生した出力をすぐに書き込むことができますが、スクリプトの最上位のスコープからフェッチできることを望んでいました。
ここに例があります
start-job - Start-Job がロードされたモジュールを認識しない
私の質問は PowerCLI の特定のモジュールに関するものですが、PS Jobs のより一般的な問題に関するものであることを願っています。ジョブ スクリプト ブロック内のコマンドに必要なモジュールをロードしていますが、モジュールがロードされていないかのように、それらのコマンドが認識されません。
次のように、start-job の前に VMware powerCLI モデルをロードしていますが、スクリプト ブロックのコードはモジュールがロードされていることを認識しないため、get-vm コマンドが認識されません。
import-module VMWare.VimAutomation.core Connect-VIServer -server VIServer01 $NewJob = start-job -scriptblock {Get-VM -server VIServer01 | 名前を選択、@{N="Cluster";E={Get-Cluster -VM $ }}、@{N="ESXHost";E={Get-VMHost -VM $ }}}
スクリプトからジョブ スクリプト ブロックにパラメーターを渡す必要性とその方法についてはよく知っていますが、モジュールが読み込まれていることを認識させるにはどうすればよいですか? また、スクリプト ブロック内からモジュールをロードすると、スタック オーバーフロー エラーが発生します。これは、モジュールのループ ロードが繰り返されるためだと思います。
powershell - foreach からスクリプトを呼び出す
助けが必要なのか、私がやろうとしていることについてより良い方法をアドバイスするかもしれません。
私はいくつかのものをコピーしようとしているので、
これは私のスクリプトブロックを呼び出しません。
$test1 ブロックを呼び出すにはどうすればよいですか?
前もって感謝します。
powershell - ScriptBlock のパラメータが正しく展開されない
これから変更。編集:わかりやすくするために不要なコードを削除しました。
MyCommandlet
使用される前にチェックされる変数 (ここ-Lhost $temp
では ) が必要です (null または空であってはなりません)。
上記のスクリプトを実行しようとすると、次のエラー メッセージが表示されます。
Invoke-Shellcode : パラメーター 'Lhost' の引数を検証できません。引数が null または空です。null または空でない引数を指定して、コマンドを再試行してください。
編集:Invoke-Shellcode
私が参照している元のコマンドレットですMyCommandlet
。セキュリティ上の理由から、完全なコードを含めたくありませんでした (スクリプトを自分で実行する場合に備えて)。詳細については、こちらのコードを参照して
ください https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke--Shellcode.ps1
元の ScriptBlock は次のようになります ($temp 変数を参照)
MyCommandlet
基本的に、変数は適切に渡されませんがWrite-Host $temp
、同じコンテキストで null 以外の値 (これは正しい) を返します。特に新しいジョブで実行される場合、変数が他の ScriptBlock に渡されないことは理解していますがWrite-Host
、ジョブ内で値を適切に読み取ることができるため、他に見逃しているものがあります。
いくつかの投稿で示唆されているように、次の代替案を試しました。
...} -ArgumentList $temp
(ScriptBlock の後) http://powershell.org/wp/forums/topic/passing-parameter-to-start-job/{param($temp) ...}
(ScriptBlock の先頭)Start-Job -ScriptBlock {...}
ScriptBlock の変数の代わりに直接 使用します。[scriptblock]::Create(...)
ScriptBlock を宣言する- を使用
Invoke-Command
する代わりに、Start-Job
それが機能しないだけでなく(動作が少し異なりますが)、Start-Job
可能であればそのまま使用したいと思います。 - Powershell V3.0
$using:variable
の機能は使用したくありません。さらに、試した構成では機能しませんでした。
それらのどれも私のために働いていませんでした。
powershell - カスタム コマンドレットを含む Start-Job が奇妙なエラーで終了する
SharePoint システムへのさまざまなインポート タスクに役立つカスタムコマンドレットをいくつか開発しました。現在、これらのコマンドレットはすべて、1 つの PowerShell スクリプトでシリアルに実行されています。これを変更して、各コマンドレットが個別のタスク (ジョブ) で実行されるようにします。
メイン スクリプトはStart-Job
、コマンドレットの呼び出しを含む別のスクリプトに関連する新しいジョブを開始します。スクリプトが開始され、コマンドレットが実行されます。実行されるコマンドレットのコードもデバッグしました。ここまでは順調。
しかし、約 15 ~ 20 秒後に、次のエラー メッセージが表示されてジョブが終了します。
このようなエラーを処理する方法に関する情報が見つかりません。ここで何が問題なのかわかりません。
ジョブで処理できるように、カスタム コマンドレットにさらに機能を追加する必要がありますか?
ここにスクリプトがあります。
主要:
インポート項目: