我是.NET和Powershell的新手程序員,powershell如何從外部加載的DLL返回類型/對象?
我有一個小的編譯.NET DLL,它利用目錄服務和TSUserExLib獲取TerminalService屬性。該DLL有一個返回「IADsTSUserEx」的靜態函數。我測試了DLL,它在返回字符串時有效,但是可以將IADsTSUserEx類\ object類型返回給powershell嗎?當我從powershell執行靜態函數時,我什麼也沒有回來,甚至沒有空。我試了一下使用以下命令
Add-Type -Path "c:\temp\test.dll"
[ABC.Class1]::getTSEntry("[email protected]")
這個DLL中包含此代碼段:
DirectoryEntry user = result.GetDirectoryEntry();
IADsTSUserEx tsuser = (IADsTSUserEx)result.GetDirectoryEntry().NativeObject;
return tsuser;
嘗試運行'[ABC.Class1] :: getTSEntry( 「[email protected]」)| Get-Member'並查看顯示內容。我猜並不是'getTSEntry'返回'$ null',而是PowerShell不知道如何格式化和顯示'IADsTSUserEx'對象。 – BACON 2012-03-22 21:57:29
@BACON,謝謝你的迴應!我嘗試了你的建議,並得到以下錯誤:「Get-Member:沒有指定對象到get-member cmdlet」。我知道這個調用正在執行,因爲它會觸發不存在的用戶的異常。似乎它只是不知道如何處理返回對象,所以它不會返回任何內容,甚至不會返回null。即使是「[ABC.Class1] :: getTSEntry(」[email protected]「)-eq $ null」語句什麼都沒有 – 2012-03-23 14:44:54
無法編輯以前的評論,但也想聲明「[ABC.Class1] :: getTSPath(」[email protected]「)。getType()返回一個BaseType的」System.MarshalByRefObject「和Name的」 __ComObject「 – 2012-03-23 14:52:41