問題タブ [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.
multithreading - Powershell: Receive-Job で予期しない結果が発生する
私は、powershell がジョブを処理する方法をよりよく理解しようとしています。
これらの記事の投稿はどちらも大いに役立ちました。
ただし、次のサンプル スクリプトでは、Receive-Job の呼び出し中に予期しない結果が得られます。各行に結果が表示されることを期待していますが、1 行に複数の結果が表示されたり、余分な空白のキャリッジ リターンが表示されることがあります。各ジョブのコンソールからストリーミングされる情報だけを書き出す方法について何か考えはありますか?
出力は...
または時々...
powershell - 開始ジョブで関数が認識されない
モジュールsysinfo.psm1に関数「Get-Uptime」を作成し、モジュールをインポートしました。
関数は Powershell 内で正常に機能しました。ただし、Start-job -scriptblock {Get-Uptime $servernae} で Get-Uptime 関数を使用すると、ジョブは次のエラーで失敗しました。
誰かが私が見逃したことを教えてもらえますか? ネットを検索したところ、関数を使用する代わりにスクリプトブロックにすべてのコードを記述するという提案が見つかりましたが、試してみたところ同様のエラーが発生しました。
ありがとうございました。
powershell - 永久に実行されるStart-jobscriptblockのトラブルシューティング方法は?
start-jobで使用されるscriptblockのトラブルシューティングに問題があります。
基本的に、サーバーのWMIプロパティを取得したかったのです。Powershellから次のコマンドを発行すると、機能します。
ただし、start-jobのscriptblockでコマンドを実行すると、ジョブは永久に実行されます。
どんな助けや提案も大歓迎です。
ありがとう
powershell - PowerShell で複数のコピージョブを並行して実行する
私は、powershell スクリプトを使用してコピージョブを高速化しようとしています。
サーバーのリストを繰り返し処理し、コピーごとにジョブを開始しようとします。
スクリプトは正常に実行されていますが、次のサーバーに到達するまでコピー中に停止します。新しいジョブがバックグラウンドで実行され、スクリプトが次のサーバーに反復されると思いました。
ループが robocopy-process で停止する理由は何ですか?
よろしくお願いします
ステファン
powershell - Start-Job スクリプト ブロック -- 引数を指定してコマンドレットを呼び出す方法
私はStart-Job
コマンドレットを初めて使用し、引数を取るコマンドレットを含むスクリプト ブロックを呼び出すのに問題があります。これが私がこれまでに持っているものです:
実行するreceive-job
と、-ComputerName
引数が null または空であり、-InputObj
引数が null または空であるというエラーが表示されます。いずれにしてもそうではありません。上記のスニペットは、2 つの foreach ループ内から呼び出されています。
-ArgumentList
スクリプトブロックを呼び出すときに を使用しようとしましたが、運もありません。私は何かが欠けていると確信していますか?
powershell - スクリプトからの引数を使用して2番目のスクリプトを呼び出す
2番目のPowerShellスクリプトの関数に引数として渡したい名前と値のペアのセットを生成する構成ファイルを読み取るスクリプトがあります。
設計時にこの構成ファイルに配置されるパラメーターがわからないため、この2番目のPowerShellスクリプトを呼び出す必要がある時点で、基本的に、この2番目のスクリプトへのパスを持つ変数が1つと、2番目の変数があります。パス変数で識別されるスクリプトに渡す引数の配列である変数。
したがって、2番目のスクリプト($scriptPath
)へのパスを含む変数は、次のような値を持つ可能性があります。
引数($argumentList
)を含む変数は次のようになります。
この状況から、$ argumentsListのすべての引数を使用してscript.ps1を実行するにはどうすればよいですか?
この2番目のスクリプトからのwrite-hostコマンドは、この最初のスクリプトが呼び出されるコンソールに表示されるようにしたいと思います。
ドットソーシング、Invoke-Command、Invoke-Expression、およびStart-Jobを試しましたが、エラーが発生しないアプローチは見つかりませんでした。
たとえば、最初の最も簡単なルートは、次のように呼び出されるStart-Jobを試すことだと思いました。
...しかし、これはこのエラーで失敗します:
...この場合、「ConfigFilename」は2番目のスクリプトで定義されたパラメーターリストの最初のパラメーターであり、私の呼び出しは明らかにその値を「-ConfigFilename」に設定しようとしています。これは明らかにパラメーターを名前で識別することを目的としています。 、その値を設定しません。
私は何が欠けていますか?
編集:
わかりました。これは、invoke.ps1という名前のファイルにある、呼び出されるスクリプトのモックアップです。
...これは、invoker.ps1という名前のファイルにある呼び出しスクリプトのモックアップです。
私がinvoker.ps1を実行すると、これはInvoke-Expressionの最初の呼び出しで現在発生しているエラーです。
2番目の呼び出しは問題なく機能しますが、1つの重要な違いは、最初のバージョンではパスにスペースが含まれる引数を使用し、2番目のバージョンでは使用しないことです。これらのパスのスペースの存在を誤って処理していますか?
powershell - PowerShellの「Start-Job」を低い優先度で設定できますか?
PowerShellスクリプトのStart-Jobで開始するジョブの優先度を下げたいと思います。これは可能ですか?
powershell - PowerShell ジョブ キュー
リスト内の各サーバーに対してジョブを実行します。一度に実行できるジョブは 5 つだけです。ジョブが完了すると、リストの次のサーバーで新しいジョブが開始されます。これが私がこれまでに持っているものですが、最初の5つのジョブが実行された後、新しいジョブを開始することはできません:
powershell - PowerShell バックグラウンド ジョブの同期
2 つのバックグラウンド ジョブが同じセッションから開始された場合、一方がもう一方が終了したことをどのように判断できますか? 最初に、次のようなことを試しました。
もちろん$j2
、シリアル化されたスナップショットしか取得しないため、機能しません$j1
(スナップショットのジョブステータスは決して変更されません)。さらに、各バックグラウンド ジョブには独自のジョブ リポジトリがあるため、$j
オブジェクトは のコンテキストでは偽物に見えます$j2
。
ジョブは、ミューテックス、ファイルシステム (同じマシン上にある場合)、または DB などを介して同期できますが、powershell がこれに対してリモート処理に適した機能を提供するかどうか疑問に思っています。
powershell - PowerShell: Start-Job、Receive-Job: 戻り値なし
わかりました、これが私のスクリプトです
私の問題は、行 $A|Out-GridView が意味のあるものを生成することを期待していることです。しかし、グリッドビューもポップアップしません。
したがって、このスクリプトを見下ろしても、私を睨みつけているものは何も見えませんが、新鮮な目でレビューできることを願っています...
このスクリプトの目的は、一連のサーバーのイベント ビューアですべてのアプリケーション ハング ID を見つけて、適切なグリッドビューに表示できるようにすることです...
ジョブの開始と受信のビジネスを切り取れば、グリッドビューを表示できますが、これをより高速かつ効率的に実行したいと考えています。
heeeeelp ;) よろしくお願いします!また、カスタム オブジェクトに Time プロパティを取得する方法もわかりませんでした。そのためのヒントがあれば、それも素晴らしいことです。
更新されたスクリプト: