如何使用PowerShell访问第三方OLE DLL的方法和属性?

时间:2014-03-25 01:23:35

标签: powershell vbscript com ole

我正在尝试编写一个可以访问第三方OLE DLL的方法和属性的PowerShell脚本。

软件供应商在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的方法和功能吗?欢迎任何建议或示例代码。提前谢谢。

1 个答案:

答案 0 :(得分:0)

感谢您的回复。 @ Ekkehard.Horner给出的链接有效。这真的拯救了我的一天。

现在的工作代码是:

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