問題タブ [psobject]
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.
powershell - カスタム PowerShell オブジェクト プロパティの問題
IIS7 の WebAdministration モジュールのデータを使用してカスタム PowerShell オブジェクトを作成しようとしています。オブジェクトは、IIS のワーカー プロセスの GetExecuteRequest WmiMethod から ClientIPAddress と SiteID をキャプチャする必要があります。
問題:
オブジェクト ($wpobj) には get-member の下に 'ClientIP' と 'SiteID' が含まれていますが、$wpobj.clientip または $wpobj.siteid を使用してこれらの値を取得することはできません。これらの値を取得できる唯一の方法は、 $wpobj | を使用することでした。clientip または $wpobj を選択 | サイト ID を選択
上記の方法でプロパティの値を取得できないと、後でパイプラインで値を選択できないため、データの並べ替え/グループ化が難しくなります。
私が欠けているかもしれないものを知っている人はいますか?これは見たことがありません。この特定の場合のみ
c# - PSObject は、PSObject であるプロパティを持つことができますか?
REST サービスと対話し、JSON を動的オブジェクトとして逆シリアル化する C# コマンドレットがあります ( ExpandoObject
)。expando が渡されると、辞書としてパイプラインに書き込まれるため、次のようなものからそのプロパティにアクセスできるようにするために、WriteObject
それを like に変換しています。PSObject
Select-Object
これは、それ自体が複合型であるプロパティを除いて、動的オブジェクトのすべてのプロパティに対してスムーズに機能します。上記のコードは、非スカラーの子オブジェクトを PSObject インスタンスに再帰的に変換します。例として、この JSON 結果の projectTeam プロパティは PSOBject に変換されます。
パイプラインからプロパティを選択しようとするとprojectTeam
、文字列表現が表示され、そのサブ オブジェクトのプロパティを選択できません。
オブジェクト階層を選択またはナビゲートできることを期待していたと思います。基本的に名前と値のペアのフラットなセットを意図しているのかPSObjects
、それともオブジェクト階層を表すことができるのか? もしそうなら、ネストされたオブジェクトをどのように表現して、そのプロパティを選択できるようにするか、またはオブジェクト階層を平坦化する必要がありますか?
json - JSONを返すPowershell Invoke-RestMethod
PowerShell を使用して毎日 php スクリプトを実行しています。json
からのリターンを取り戻すことができないようですInvoke-RestMethod
。それはどのように達成できますか。
私が使用しているコードは次のとおりです。
PHP スクリプトは、次のような json 文字列を返しています。
c# - C# で powershell を実行する
C#内で次のpowershellコマンドを実行しようとしています
パワーシェル:
ここに私のC#コードがあります:
これは正常に機能し、結果を出力しますが、私ができるようにしたいのは、情報を反復処理することです
たとえば、印刷された結果は次のようになります
名前: xxx オペレーティング システム: Windows Server 2008 オペレーティング システムServicePack: サービス パック 2 サイト: xxx
foreach を実行して、名前、オペレーティング システム、サイトをリストに追加できるようにしたいと考えています。
それが理にかなっていることを願っています
powershell - PSObject に新しい値を追加する - これが最善の方法ですか?
次のコードがあり、動作します。しかし、構造を何度も繰り返すので、これが最善のアプローチであるかどうか疑問に思っていました。
c# - データソースとしての C# powershell オブジェクト
問題の骨子: ComboBox、または Windows フォームの ListBox にデータを入力しようとしています。標準の配列とクラス定義の場合、DataSources と関連する ValueMember と DisplayMember を使用するとうまく機能します。
返された PSObjects (powershell オブジェクト) のコレクションを利用しようとすると、問題が発生します。
私が試したコードセクションは次のとおりです。
基本的な背景はDistributionGroups
、Collection<PSObject>
メンバーDistinguishedName
とを持つSamAccountName
です。
ここに表示されているコードではDisplayMember
、ToString メソッドを介して PSObject 値全体が表示され、次のようになります。@{SamAccountName=AA_ Officer; DistinguishedName=CN=AA\+ Officer,OU=Administration,OU=Distribution Groups,OU=Resources,OU=Groups,DC=Domain,DC=MadeUp}
引用符文字を文字列に入れる両方の方法を試したので、正しいプロパティが取得されます。test
String オブジェクトは、PSObject の必要なメンバーを正しく取得します。
欠けているものはありますか、それとも個別に転送された PSObject メンバーで配列を自己定義しないと効果的にこれを行う方法はありませんか?
更新: さらにテストした結果、DataSource、より具体的には Value/Display メンバーは LAST 引数のみを取るようです。与えられたように:"Members[\"DistinguishedName\"].Value.ToString()"
それは実際にToString()
部品を使用するだけです。
これは値/表示メンバー属性の意図した動作ですか? 完全な定義を使用する方法はありますか?
c# - C# 呼び出しで PowerShell コマンドを呼び出すと、特定のユーザーの電子メール リストに対して PsObject が返されない
c# 経由でこの PowerShell コマンドを使用して、Exchange サーバーで特定のユーザーの電子メールのリストを取得しようとしています
これはpowershellコンソールで機能します
しかし、 PowerShell でInvokeを呼び出すと、PsObject が返されません。それを解決する方法はありますか?
"get-mailbox -Identity user"
PSObject を取得したこのスクリプトのみを呼び出してみましたが、これを行う必要があります
しかし、ええ、値はユーザーに関連付けられたすべての電子メールを含むある種の長い文字列であり、各電子メールを配列に取得するのは面倒に思えますか?
pipeline - 「Power Shellスクリプト」のスクリプトを実行する関数を作成しました
「Power Shellスクリプト」のスクリプトを実行する関数を作成しました。私はパイプラインと実行空間を使用してスクリプトを実行し (例: power shell get-service)、スクリプト「get-service」を 1.000.000 回実行します。 300MB、実行完了時の RAM は約 70MB - ## 見出し ##2、3、4 スクリプト (2、3、4 パイプラインおよび 2、3、..) を実行すると、アプリケーションの RAM は非常に高くなります。リークされたメモリ、RAM は約 1GB、.. および >2GB。私はこの位置から問題を見ます:イベントpipelineExecutor_OnDataReadyプロセスが発生すると、この関数を呼び出すとラムが起動します: ConvertToDataTable()