問題タブ [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 Online への予算超過エラー
Exchange Server で PowerShell コマンドをプログラムで呼び出すアプリケーションがあります。アプリを Exchange オンライン サーバー outlook.office365.com に正常に接続し、個々のコマンドを呼び出すことはできますが、短時間に複数のコマンドを連続して送信すると、サーバーが詰まり、次のメッセージが返されます。
runspace.Close と runspace.Dispose で試してみましたが、効果がありません。
次のメッセージから、60 秒間に最大 5 つの実行空間があることがわかりますが、私のコードでは実行空間を閉じて破棄していますが、その制限は問題になるべきではありません。もちろん、私が何か間違ったことをしている可能性は常にあります。
メッセージ (一部のテキストはドットでマスクされています):
簡略化したコードは次のとおりです (実際はもっと複雑ですが、基本的にはこれだけです)。
ご意見ありがとうございます。
ボリス
c# - カスタム PSHostUserInterface は Runspace によって無視されます
背景
PowerShell スクリプトをプログラムで実行するアプリケーションを作成しています。PSHost
このアプリケーションには、スクリプトがログ ステートメントを出力できるようにするためのカスタム実装があります。現在、私が見ている動作は、一部のリクエストがカスタムに適切に転送され、PSHost
他のリクエストは完全に無視されるというものです。
スクリプトで変数を調べ始めたとき、状況はさらに奇妙になりました$Host
。これは、私のカスタムが使用されていないことを示唆しているようですPSHost
。
コード
.NET アプリケーション内で PowerShell を実行するコードがいくつかあります。
の実装CustomPsHost
は非常に最小限で、転送に必要なものだけが含まれていPSHostUserInterface
ます。
CustomPsHostUI は、ロギングのラッパーとして使用されます。
私の PowerShell スクリプトでは、ホストに情報を書き込もうとしています。
で奇妙な動作が発生するのはなぜCustomPSHostUI
ですか?
c# - リモート Powershell セッションを閉じる必要がありますか?
とりわけ、Exchange サーバーでいくつかのリモート Powershell コマンドレットを呼び出す C# サーバー アプリケーションを作成しています。これは私のアプリケーションのメイン アクティビティではありませんが、これらの関数はときどき呼び出されます。彼らがそうするとき、私は次のことをします:
- 構成から WSManConnectionInfo オブジェクトを初期化します。
- を使用して新しい実行空間を作成します
RunspaceFactory.CreateRunspace
。 - 実行空間を開きます。
PowerShell
実行空間を新しいオブジェクトに割り当てます。- 私のコマンドを呼び出します。
PowerShell
およびオブジェクトを破棄しRunspace
ます。
では、通話ごとにこれらすべての手順を実行する必要は本当にあるのでしょうか? 1 分ごと、1 時間ごと、または 1 日に 1 回でも呼び出しが行われると仮定すると、パフォーマンスについて心配する必要はありません。しかし、私はきちんと整頓された解決策を探しており、Runspace オブジェクトを一度作成し、それを何度も呼び出す方がより洗練されているのではないかと考えています。
Runspace オブジェクトを再利用して開いたままにしておくことに問題はありますか? オブジェクトを生きたままにしておく必要がありますが、必要なときはいつでも呼び出す必要がありますかClose()
? Open()
または、時間の経過とともに安定していることに依存しないでください(そして、ここでの「時間の経過とともに」はサーバーアプリの寿命であり、数か月になる可能性があります(またそうあるべきです).
c# - 複数のメールアドレスを追加するにはどうすればよいですか?
以下は私が使用しているコードです。powershell Emailaddresses パラメータを使用して複数のアドレスを追加できません。1 つの電子メール アドレスを入力するだけでコードは正常に動作しますが、以下のコードに 2 つのアドレスを追加すると、無効な smtp アドレスを示す例外が返されます。
c# - Web プロキシ サーバーの IP アドレスとポートを指定して、リモート ランスペースを開きます
コマンドレットを実行するためにオンラインで Exchange のリモート Powershell 接続を開く必要がある C# で .Net コンポーネントを作成しています。ただし、ローカル マシンとインターネットの間には Web プロキシ サーバーがあります。IE でプロキシ サーバーの設定を提供していません。リモート ランスペースを開くときに、どうにかして Web プロキシ サーバーの IP アドレスとポート番号を提供する必要があります。
私は次のコードを使用しています:
Runspace オブジェクトの RunspaceconnectionInfo の ProxyAccessType、ProxyCredentials、ProxyAuthentication プロパティには何を指定すればよいですか。
IE でプロキシ設定を使用せずに Web プロキシ サーバー設定を提供することで、リモート ランタイム空間を開く方法はありますか。アプリケーションのユーザー インターフェイスを介して、プロキシ サーバーの IP とポートを API に渡したい
提案してください。
ありがとう、ガガン