2014-03-25 81 views
2

我正在嘗試編寫一個可以訪問第三方OLE DLL的方法和屬性的PowerShell腳本。如何使用PowerShell來訪問第三方OLE DLL的方法和屬性?

軟件供應商在vbscript中提供了一個工作示例以實現相同的結果。下面是代碼的摘錄:

Set objOLE = CreateObject("NETIQOLE.APPMANAGER") 
objOLE.Logon strInstance, strRepository, strUserID, strPwd 
... 

然而,當我試圖在PowerShell中的代碼如下:

$objOLE = New-Object -ComObject "NETIQOLE.APPMANAGER" 
$objOLE | Get-Member 

我得到了下面的輸出,並沒有看到任何相關的方法或屬性。

TypeName: System.__ComObject 

Name      MemberType Definition              
----      ---------- ----------              
CreateObjRef    Method  System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType) 
Equals     Method  bool Equals(System.Object obj)         
GetHashCode    Method  int GetHashCode()            
GetLifetimeService  Method  System.Object GetLifetimeService()        
GetType     Method  type GetType()             
InitializeLifetimeService Method  System.Object InitializeLifetimeService()      
ToString     Method  string ToString() 

有什麼我可以做的,以訪問此OLE Dll的方法和合理性?任何建議或示例代碼是值得歡迎的。先謝謝你。

+0

你有沒有嘗試執行'$ objOLE.Logon(strInstance,strRepository,strUserID,strPwd)'? –

+1

看看http://www.sorrell.mcleod.co.uk/Scotty/powershell/COMinterop.htm有幫助。 –

回答

0

謝謝你們的迴應。 @ Ekkehard.Horner給出的鏈接工作。它真的拯救了我的一天。

工作代碼現在:

$credential = "...", "...", "...", "..." 
[System.__ComObject].InvokeMember("Logon", [System.Reflection.BindingFlags]::InvokeMethod, $null, $netiqObj, $credential)