問題タブ [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# - WebアプリケーションでのPowerShellランスペースのホスティング
PowerShellスクリプト(Active Directory、ディレクトリ管理など)を実行するWebサービスを作成しています。
現在、RunspaceインスタンスはWebリクエストごとに作成されます。Runspaceの初期化は時間のかかる操作であるため、さらに、ActiveDirectoryなどのモジュールをインポートする必要があります。これも遅い操作です。
このブログ投稿「C#を使用したExchange 2007受信者の管理」では、Runspaceインスタンスは静的フィールドに保持されています。
Runspaceインスタンスを静的フィールドに保持すると、スレッドセーフになりますか?たぶん、この方法でそれを行うことの他の欠点がありますか?
ありがとう
algorithm - 実行空間分析
+O、+Theta、+Omega などのアルゴリズムの実行空間分析で読める資料はありますか? 私が取っているデータ構造とアルゴリズムのクラスの助けが必要です。
c# - C# アプリケーションによって呼び出される Powershell スクリプト
このpowershellスクリプト(test1.ps1)が別のpowershellスクリプト(test2.ps1)を呼び出して仕事をしています。
両方のスクリプトファイルが同じフォルダーにあります
test1.ps1
test2.ps1
実行空間を作成し、コマンドをパイプラインに追加して呼び出すことによって C# で test1.ps1 を呼び出すと、 「'.\test2.ps1' という用語は、コマンドレット、関数、スクリプト ファイルの名前として認識されません」というエラー メッセージが表示されます。 、または操作可能なプログラムです。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから再試行してください。
powershell - PowerShell:RunSpace.SessionStateProxy.SetVariableが変数を設定していません
ConsoleApplication:
P.ps1
「Var1:Alex」がログファイルに書き込まれると思いますが、「Var1:」を取得します。
私は何を間違えましたか?
編集:
私の元の問題は次のサイトにあります:http://nugetter.codeplex.com/workitem/31555
powershell - PowerShell で実行空間を使用してリモート セッションを確立して開始する方法
C# コード内で、マシン A からリモート ホスト B とのセッションを確立しようとしています。そのために実行空間 API を使用しています。コードスニペットを以下に示します
このコードは、マシン TS-TEST-09 とのセッションに入り、そのマシンに存在するスクリプト helper.ps1 を呼び出すことが期待されます (現在、リモート ホストとのセッションに入ることができないため、その部分はコードでコメント アウトされています) )。
今問題は、-Session パラメータ (scripttext3 で強調表示) を使用してセッション $s に入ることができないことですが、-Computername パラメータを使用して入ることができます。
scripttext3 で -Session パラメータを使用すると発生するエラーは次のとおりです。
invokedSystem.Management.Automation.Internal.Host.InteralHost.GetIHostSupportsInteractiveSession() で
invokedSystem.Management.Automation で。Internal.Host.InteralHost.PushRunspace(実行空間実行空間)
Microsoft.Powershel.Commands.EnterPSSessionCommand.ProcessRecord() で
System.Management.Automation.Cmdlet.DoProcessRecord() で
System.Management.Automation.CommandProcessor.ProcessRecord() で
内部例外スタック トレースの終わり
カスタム PSHost を作成し、このパラメーターを使用して Enter-PSSession コマンドレットのサポートを追加する必要があるということですか?
このコマンドを機能させる代替手段はありますか?
どんな助けでも大歓迎です。
ありがとう、
マニッシュ
c# - 実行空間の偽装を使用した MVC コントローラー
偽装を使用して MVC 3 コントローラーから Powershell コマンドレットを実行しようとしていますが、「要求されたレジストリ アクセスは許可されていません」というメッセージが表示され続けます。Runspace.Open() 呼び出し時の例外
デバッグは、HKCU\Environment でレジストリ キーの読み取りが試行されたため、レジストリ エラーが発生したことを示しています。偽装なしで上記を実行すると、正常に機能します。
注: 偽装クラスは次の場所にあります: http://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/
なぜこれが起こっているのか、それを解決するために何ができるのかについてのアイデアはありますか?
アップデート:
少し睡眠を取った後、Runspace.Open() を偽装行の上に移動すると、実行空間が必要なレジストリ データ (環境変数) にアクセスできるようになり、これが実際に役立ちました。
これで、コードは組み込みのコマンドレットで正常に動作しますが、「Microsoft.Exchange.Management.PowerShell.Admin」をロードして Exchange コマンドレットのいずれかを試すと、アプリケーションがクラッシュします。
c# - Powershell RunspaceEnter-PSSession
リモートマシンでプログラムを実行するプログラムを書いています。Windows SDKをインストールし、ビットを含むファイルを正常にアップロードしました。リモートで変更ディレクトリを実行し、PowerShellを使用してコマンドを実行したいと思います。
プログラムはコンパイルされて実行されますが、回答変数には「メソッドまたは操作は実装されていません。\ r\n」と表示されます。
パイプラインで別のコマンドを使用しようとしましたが、失敗しましたが、エラーは出力されませんでした。
c# - PowerShellは「%」と「New-Object」が見つからないと言います。インポートがありませんか?WinRM、またはExchangeロールのアクセス許可?
「フル」のリモート実行スペースを許可するようにIISを既に構成しているとすると、Powershellが「%」が見つからないという例外を解決するにはどうすればよいですか。
次に、問題のあるステートメントをコメントアウトするfor..each
と、New-Objectが見つかりませんと表示されます。
インポートがありませんか?コメントに基づいて、WinRMの構成、またはExchange2010の役割のアクセス許可が欠落している可能性があります。
c# - C#ランスペース内の別のリモートサーバーでリモートPowershellスクリプトを実行する
リモートマシン上にあるPS1スクリプトを、C#ランスペースを介して別のリモートマシンに対して実行できるようにする必要があります。
これが何を意味するのかを明確にするために:私が作成しているサービスはサーバーAにあります。それは以下の方法を使用してサーバーBへのリモートランスペースを作成します。ランスペースを介して、サーバーCにあるスクリプトをサーバーBに対して呼び出そうとしています。それが役立つ場合は、現在サーバーAはサーバーCですが、常にそうであるとは限りません。
リモート呼び出しを行うために使用しているメソッドは次のとおりです。
「remoteScript」は、実行したいPowershellスクリプトに設定されています。例えば:
スクリプトを実行するリモートマシンを使用している場合は、PowerShellコンソールで次のコマンドを実行できます。
ただし、c#ランスペースを介して実行しようとすると、これは単に機能しません。
「remoteScript」へのパラメータとして以下を送信すると、次のようになります。
次のエラーが発生します。
'\ remoteserverC \ PathToScript \ Install.ps1'という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認して、再試行してください。
'&'を使用した場合と使用しない場合、およびパラメーターを使用した場合と使用しない場合を試しました。「\\remoteserver\ ... \ Install.ps1」ではなく、リモートマシン「c:\ ... \ Install.ps1」に直接存在するスクリプトをすでに呼び出すことができますが、できることは非常に有益です。リモートスクリプトを直接呼び出す。
私はグーグルとここスタックオーバーフローで多くのページを検索しましたが、この問題を克服するのに役立つものを見つけることができませんでした。どんな助けでもいただければ幸いです!ありがとう!
c# - C#ランスペースのリモートサーバーにPowerShellモジュールをインポートする
C#ランスペースを介してリモートマシンに存在するモジュールをインポートできる必要があります。
これが何を意味するのかを明確にするために:私が作成しているサービスはサーバーAにあります。それは以下の方法を使用してサーバーBへのリモートランスペースを作成します。ランスペースを介して、サーバーBにモジュールをインポートしようとしています。
リモート呼び出しを行うために使用しているメソッドは次のとおりです。
「remoteScript」は、実行したいPowershellスクリプトに設定されています。例えば:
モジュールは一緒にパックされていません。psd1、psm1、およびリモートサーバー(サーバーB)のC:\\ PowerShell \ ModuleNameにある一連のスクリプトファイルであり、ModuleNameを呼び出していることをテストして確認しました。 C:\\ PowerShell\ModuleNameディレクトリにあるpsd1ファイル。
ModuleName.psd1ファイル内には、次の行があります。
ただし、C#の実行スペースで実行しようとすると、非常に奇妙なエラーが発生します。
「remoteScript」へのパラメータとして以下を送信すると、次のようになります。
次のエラーが発生します。
System.Management.Automation.RemoteException:モジュールマニフェスト「C:\ PowerShell \ ModuleName \ ModuleName.psd1」のフィールド「ModuleToProcess」にリストされている「ModuleName.psm1」を処理するモジュールは、有効なモジュールが見つからなかったため、処理されませんでしたモジュールディレクトリ。
モジュールは「$env:PSModulePathの場所の1つに存在し、次を実行すると表示されます。
また、psd1ファイル内にModuleName.psm1ファイルへの完全修飾パスを挿入してみました。私がそれを行うと(または以下のx0nによって提案されたもの)、ほぼまったく同じエラーが発生します:
モジュールマニフェスト「C:\ PowerShell \ ModuleName \ ModuleName.psd1」のフィールド「ModuleToProcess」にリストされている「C:\ PowerShell \ ModuleName \ ModuleName.psm1」を処理するモジュールは、どのモジュールにも有効なモジュールが見つからなかったため、処理されませんでしたディレクトリ。
この時点で、どこに行けばいいのか、あるいはこれが実際に可能であるとしても、私にはよくわかりません。私はいたるところを検索して、関連しているように見えるものをいくつか見つけましたが、まったく同じではなく、すでに克服した、または(私の知る限り)まだ直面していない問題になる傾向がありました。どんな助けでもいただければ幸いです!ありがとう!