0

我已经使用 SCCM 2007 SDK 大约一周了,使用 C# 示例连接和运行我想要的命令没有问题。不幸的是,我试图从 Powershell 中运行我的 .Net DLL,一旦它到达 WglConnectionManager 对象的 .Connect 语句,我就会收到拒绝访问错误。

我做了很多研究,已经在远程机器上启用了 PSRemoting,并反编译了 wgladmin DLL 以确保将身份验证设置为 PacketPrivacy。我确信我缺少一些东西,虽然我已经使用 Powershell 将近一年了,但它主要是在本地系统上。

此连接是在我已经将所需的两个 DLL 导入命名空间之后。我收到的错误是:

    Exception calling "Connect" with "3" argument(s): "Access is denied. (Exception from HRESULT:   0x80070005 (E_ACCESSDENIED))"
At C:\Users\cnanda\Documents\WindowsPowerShell\Modules\Sccmpack\SCCMPack.PSM1:15 char:38
+             [void]$connection.Connect <<<< ("", "", "
");
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException



SciSessionHandle       :
ConnectionScope        : System.Management.ManagementScope
QueryProcessor         : Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlQueryProcessor
UniqueIdentifier       : 4acb728e-1aeb-4493-a0a7-218f68bce2d9
MinVersion             : 0
MaxVersion             : 0
ExecuteQueryBatchSize  : 50
AsyncQueryBatchSize    : 50
ResultObjectsBatchSize : 1000
NamedValueDictionary   : {}
UserDataObject         :
Context                :

这是连接代码:

        $namedValues = New-Object Microsoft.ConfigurationManagement.ManagementProvider.SmsNamedValuesDictionary
        $connection =  New-Object Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager($namedValues)

        [void]$connection.Connect("SERVERNAME", "USERNAME", "PASSWORD");
4

0 回答 0