私は.NETとPowershellの初心者プログラマーです外部からロードされたDLLからpowershellがどのようにタイプ/オブジェクトを返すのですか?
ディレクトリサービスとTSUserExLibを使用してTerminalService属性を取得するコンパイル済みの小さなDLLがあります。 DLLには、 "IADsTSUserEx"を返す静的関数が1つあります。私はDLLをテストし、文字列を返すときに動作しますが、IADsTSUserExクラス\オブジェクト型をpowershellに返すことは可能ですか? PowerShellから静的関数を実行すると、何も戻ってくることはありません。あなたは、あなたの方法は、COMオブジェクトを返すと、PowerShellが直接あなたにそのメソッドやプロパティを公開されていないので
DirectoryEntry user = result.GetDirectoryEntry();
IADsTSUserEx tsuser = (IADsTSUserEx)result.GetDirectoryEntry().NativeObject;
return tsuser;
'[ABC.Class1] :: getTSEntry( "[email protected]")を実行してみてください| Get-Member'を開き、その表示内容を確認します。私はそれが 'getTSEntry'が' $ null'を返すのではなく、 'IADsTSUserEx'オブジェクトをどのように書式化して表示するかをPowerShellが知っていないとは思えません。 – BACON
@BACON、応答ありがとう!私はあなたの提案を試み、次のエラーが表示されます。「Get-Member:get-memberコマンドレットにオブジェクトが指定されていません」存在しないユーザーの例外をトリガーするため、呼び出しが実行されていることがわかります。たとえ文["ABC.Class1] :: getTSEntry(" [email protected] ")-eq $ null"でも返すオブジェクトを処理する方法が分からないと思われます。なし –
前のコメントを編集できませんでしたが、 "[ABC.Class1] :: getTSPath(" [email protected] ")。getType()は、BaseTypeが" System.MarshalByRefObject " __ComObject " –