問題タブ [powershell-hosting]
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.
.net - PowerShell ホスティングについて
PowerShell をホストする作業をいくつか行い、多くの資料を読みましたが、奇妙な動作が見られ、自分が思っていたようにホストを理解していないのではないかと思います。
RunspaceFactory で実行空間を作成しています:
ホストの実行中に同じ実行空間を利用しています。ホストを初めて起動するときに、Import-Module コマンドを呼び出します。
「ディレクトリ」は、デフォルトのモジュール ディレクトリではないディレクトリです。PowerShell コマンド ウィンドウでまったく同じ構文で同じ import-module コマンドを使用でき、正常に動作します。カスタム ホスト内でコマンドが正常に完了したように見えます。実行の後半で、モジュール内でコマンドレットを呼び出そうとします。
しかし、呼び出し時に、「Get-Stuff」がコマンドレットではないという例外が発生します..など。
私の理解では、実行空間はこのタイプの状態を維持します。そうではありませんか?別のプロジェクト内でホストを正常に作成しました。2 つの主な違いは、そのホストが既定のモジュール ディレクトリ (Documents\Modules\) を利用していることと、次のように CreateRunspace() メソッドを呼び出していることです。
var runspace = Runspace.CreateRunspace(customHost);
状態を維持できるようにするには、PSHost を定義する必要がありますか?
asp.net - メンテナンスを実行するためにasp.net mvcでcliのようなpowershellをホストする
asp.net mvc アプリケーションでメンテナンス タスクとステータス タスクを実行するには、CLI が必要です。
powershell は CLI を提供するように設計されていると思います。しかし、名前以外は何も知りません。
カスタムタスク用の CLI を提供するために、iis で実行されている asp.net mvc で powershell をホストするにはどうすればよいですか?
c# - WebアプリケーションでのPowerShellランスペースのホスティング
PowerShellスクリプト(Active Directory、ディレクトリ管理など)を実行するWebサービスを作成しています。
現在、RunspaceインスタンスはWebリクエストごとに作成されます。Runspaceの初期化は時間のかかる操作であるため、さらに、ActiveDirectoryなどのモジュールをインポートする必要があります。これも遅い操作です。
このブログ投稿「C#を使用したExchange 2007受信者の管理」では、Runspaceインスタンスは静的フィールドに保持されています。
Runspaceインスタンスを静的フィールドに保持すると、スレッドセーフになりますか?たぶん、この方法でそれを行うことの他の欠点がありますか?
ありがとう
powershell - Powershellコマンドウィンドウを使用してPowershellホスティングアプリと対話できますか?
Powershellを埋め込むアプリケーションに取り組んでいます。別のPowershellコマンドウィンドウを起動し、このPowershellウィンドウを介してアプリケーションと対話する方法があるかどうか疑問に思っていますか?誰かがいくつかの参照を指摘できますか?どうもありがとう。
.net - カスタムコマンドレットを使用して制限付きのPowershellをホストする
私はアプリ内でPowerShellをホストしており、制限付きのrunspacepoolを設定しました。これは基本的に空です(私の知る限り)。
明らかに、私がこのコードを実行すると...
使用可能な「Import-Module」コマンドレットがないため、失敗します。だから、私の質問は、「Import-Module」コマンドレットを使用せずにモジュールをインポートするにはどうすればよいですか?
これは私が受け取っているエラーメッセージです...
「Import-Module」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認して、再試行してください。
powershell - ホスティング PowerShell: PowerShell vs. Runspace vs. RunspacePool vs. Pipeline
アプリケーションにかなり制限された PowerShell サポートを追加しようとしています。ユーザー定義の PowerShell スクリプトを定期的に実行して出力を表示し、(最終的には) 進行状況の通知とユーザー プロンプトの要求を処理できるようにしたいと考えています。私がホストするシェル内からユーザースクリプトがそれ自体を実行しない限り、コマンドラインスタイルのインタラクティブなサポート、または(私が思うに)リモートアクセスまたは複数の同時スクリプトを実行する機能は必要ありません。最終的には、スクリプトを非同期またはバックグラウンド スレッドで実行し、シェルにいくつかの初期変数とコマンドレットをシードする可能性がありますが、それはこの機能が得られる可能性が高いのと同じくらい「派手」です。
ホスト アプリケーション コードの記述に関する MSDNのドキュメントを読んでいますが、オブジェクト、、、、、、またはを作成する方法は喜んで説明されていますが、これらのアプローチのいずれかを選択する理由については示されていません。PowerShell
Runspace
RunspacePool
Pipeline
私はこれら 2 つのうちの 1 つにかかっていると思いますが、どちらのアプローチを取るのが良いかについてのフィードバックが欲しいです:
また:
(必須のPSHost
派生クラス メソッドの 1 つは ですEnterNestedPrompt()
。私が実行するユーザー定義スクリプトによってそれが呼び出される可能性があるかどうかはわかりません。可能であれば、「新しいネストされたメソッドを開始する責任があります。入力ループ」(ここのように)...それが上記のパスに影響する場合は、それも知っておくとよいでしょう。)
ありがとう!
powershell-hosting - PowerShell ホストが 64 ビット マシンで 32 ビットとして実行されているのはなぜですか?
現在、C# (.NET 4.5) コンソール プロジェクトにある VS 2012 で PowerShell ホストを構築しています。プロジェクトは任意の CPU 用に構成されており、[32 ビットを優先] はチェックされていません。追加して、System.Management.Automation への参照を手動で追加しました。
.csproj ファイル内の他の参照を含む ItemGroup に。レジストリからの読み取りで奇妙な動作 (キーの欠落など) が発生し、x86 部分を見ていることに気付きました。そこで、ホストで次のスクリプトを実行しました。
そして戻ってきた
これは、動作を考えると驚きではありませんでしたが、構成を考えると驚きでした。誰でもアイデアはありますか?ホストされた PowerShell について x86 でなければならないものはありますか?
c# - 静的メンバーを操作するための PowerShell 変数を作成するにはどうすればよいですか?
パワーシェル 4.0
私のアプリケーションでは、Application
クラスに一連の重要なプロパティ、メソッド、およびイベントがあります。app
PowerShell 変数 (クラスのエイリアスのようなもの)を介してそのメンバーを操作したいと考えています。ただし、Runspace.SessionStateProxy.SetVariable
2 番目のパラメーターでクラスのインスタンスが必要です。
どうすればいいですか?