問題タブ [runspace]
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.
c# - リモート PowerShell 接続スクリプトは Exchange PS では機能しますが、Windows PS では機能しません
Exchange Shell とリモートで対話する関数を作成しました。今度は通常の Windows PS に使用したいと思います。そこで、シェル Uri を に変更しましWSManConnectionInfo
たhttp://schemas.microsoft.com/powershell/Microsoft.PowerShell
。
関数は次のようになります。
この関数を実行すると、次のエラーが表示されます。
WS-Management サービスは要求を処理できません。リソース URI ( http://schemas.microsoft.com/powershell/Microsoft.PowerShell ) が WS-Management カタログに見つかりませんでした。カタログには、リソースまたは論理エンドポイントを説明するメタデータが含まれています。
この関数は、SO、CodeProject、および MSDN の同種の他の関数とほとんど同じように見えます。ShellUri も正しいです。
次に、別の形式を試しましたWSManConnectionInfo
悲しいことに、これもうまくいきませんでした。
両方のファイアウォールを (クライアントとメンバー サーバーから) オフにし、考えられるすべての関連サービス (RPC、IIS、WS-Management) を再起動しました。いずれにせよ、スクリプトは Exchange PS とのやり取りで機能するため、これは問題になりません。
もっと何かを定義する必要がある可能性はありますか、それとも他のものが必要PSCredentials
ですか?
共有された考えを前もって感謝します。
powershell - foreach-parallel を使用した実行空間での Add-PSsnapin
関数foreach-parallelを使用して、runspace のような多くのスクリプト ブロックを実行し、最初のロード スナップインを正しく実行しますが、次はすべて 2 エラーを返します
私のエラーは:
add-PSSnapin : 同じキーを持つアイテムが既に追加されています
get-qadUser : 関数が存在しません
csv - RunSpacePool ハッシュ テーブル ルックアップ
RunSpacePools を使用して、1)ServerName、2)SCCM Maintenance Window、3)PingCheck、4)LastRebootTimestamp を含む CSV ファイルを出力する PowerShell スクリプトをまとめています。
この素晴らしい回答を使用して何かが機能していますが、私の CSV ファイルには空白行があり、SCCM メンテナンス ウィンドウを CSV に入れることに行き詰まっています。
SCCM メンテナンス ウィンドウのルックアップを完了し、それを の出力に追加する方法がわかり$Job.Result
ません。または、それを に追加して$ScriptBlock
、RunSpacePool がルックアップを非常に迅速に完了できるようにすることもできます。
空白の CSV 行が,,
あり、一部の行には余分な空白行がありません。
-編集、私の考えは、SCCMウィンドウルックアップを実行し、それを別のパラメーター/引数としてランスペースプールに渡すだけです。
csv - RunSpacePool 出力の CSV に空白行が含まれている
私はこの驚くべき答えを使用しており、RunSpacePools を使用して CSV ファイルを出力しましたが、私の CSV ファイルには空白行があり、空白行がどこから来ているのかわかりません。
空白行はメモ帳に次のように表示されます,,,
powershell - 独立して実行されている Powershell スクリプト間で情報を渡す
給料前でごめんなさい。もう一度やり直します:
状況は複雑すぎて説明できませんが、基本的に問題は次のとおりです。
- あるスクリプトから同じマシンで実行されている別のスクリプトに文字列 (最大 20 文字) を渡す方法。
- 2 つのスクリプトは、同じマシンの同じユーザー コンテキストでバックグラウンドで継続的に実行されますが、組み合わせることはできません。
- あるスクリプトを別のスクリプトにドットソースすることはできません。
私は、あるスクリプトに文字列を含むファイルを、他のスクリプトによって監視されているディレクトリに作成させることでそれを行いました。したがって、それが表示されると、他のスクリプトが情報を読み取ります。動作しますが、「汚い」と感じます。:)
スクリプト間で情報を渡すための「ベストプラクティス」があるかどうか、または少なくともよりエレガントな方法があるかどうか疑問に思っていました。
ありがとう。
performance - PowerShell スクリプトを実行空間に変換する
あるユーザー リスト (TEMP.txt) に含まれるユーザーのうち、別のユーザー リスト (TEMP2.txt) にも含まれているユーザーの割合を見つけるための簡単なスクリプトを作成しました。これは、私のユーザー リストが 100,000 を超えるまでの間、うまく機能しました。 ...遅すぎます。実行空間に変換して高速化したいのですが、惨めに失敗しています。元のスクリプトは次のとおりです。
申し訳ありませんが、私はまだpowershellに慣れていません。
powershell - reCallする前にpowershell実行空間を停止する方法
PowerShell GUI にアイテムのリストがあり、1 つをクリックすると、同じ実行空間が呼び出されます$runspace.BeginInvoke()
しかし、すばやくクリックすると、最初のインスタンスが 2 番目のアイテムに対して進行中です。私はそれを止めて ($runspace.stop()
そして$runspace.dispose()
) 実行空間を思い出してください。
Stop()
しかし、ときどき GUI が と の間で失敗しdispose()
ます。この方法は良くないとしか思えない
c# - 実行空間で PS コマンドを実行するコードにロックは必要ですか?
Java の専門家が、既存の C# コードに飛び込んで、PowerShell でユーザー資格情報をチェックすることで、C# を学ぼうとしています。
私が理解しようとしている以下のコードは、パフォーマンスの問題の可能性があるコンテキストにあります。
以下のメソッドCheckCredentials()
は、かなり頻繁に呼び出され、60 秒以上の長時間スタックしているようです。もちろん、私の最初の容疑者はそのlock()
部分です。ロックが必要な場合、なぜロックが必要なのか理解できません。
ドキュメントによると、InitialSessionState.CreateDefault()
public RunspaceFactory.CreateRunspace()
static メソッドであるため、スレッドセーフです(関連セクションhereおよびhere)
メソッドで使用されるすべてのオブジェクトが新しく作成されます。唯一の共有変数は_lock
(なぜそこにあるのかまったくわかりません) とmodulePath
です。したがって、基本的に、modulePath
複数のスレッドからアクセスできるのは のみです。しかし、それは問題のようには見えません。これは単なるパスであり、コードは PS モジュールをインポートしています。
私の質問は次のとおりです。以下のコードは「ロック」する必要がありますか?