尊敬的工程师:
您好,我在使用WSUS API接口过程中出现如下错误,我在通过WSUS 提供的API进行连接WSUS服务器时,提示如下异常:
2019-03-02 18:17:26.584 -- [Error] Exception Info: 对主体权限的请求失败。
Exception Object:Microsoft.UpdateServices.Administration
Exception Stack:
在 Microsoft.UpdateServices.Administration.AdminProxy.CreateUpdateServer(Object[] args)
在 H3CiMCWsusToolProj.WsusServerManager.detectWsusServer(String serverName, Boolean useSecureConnection, Int32 portNumber)
Called By: Microsoft.UpdateServices.Administration.IUpdateServer CreateUpdateServer(System.Object[])
我的C#代码是这样的:
AdminProxy proxy = new AdminProxy();
try
{
proxy.GetRemoteUpdateServerInstance(serverName, useSecureConnection, portNumber);
LogUtil.getLog().LogInfo("detect WsusServer result success!");
}
catch (ArgumentNullException e)
{
result = false;
errorCode = ErrorCode.WSUS_SERVER_NAME_NULL_ERR;
LogUtil.getLog().LogException(e);
}
问题产生的条件是这样的:
目前我是这样使用的,基本调用是这样的,Java调用C++的dll库,C++再调用C#的dll库,在C#中调用了WSUS API进行WSUS服务器的连接,在C++、C#的dll生成好之后,Java这边进行单元测试的时候,上面代码中入参中的WSUS服务器地址(即GetRemoteUpdateServerInstance接口中的第一个参数)只要是指向存在的WSUS服务器,就可以正常连接到对应的WSUS服务器上;
但是,当放入到我们自己的Java工程中时,就只能连接到当前工程所在的安装有WSUS的服务器上,具体如下面所述:
如果我的C#程序运行在装有WSUS的服务器上的话,上面代码中入参中的WSUS服务器是当前WSUS服务器的话,不启用SSL连接,端口使用缺省端口8530,是可以正常连接WSUS服务器的;
但是,如果入参中WSUS服务器地址是另外一台WSUS服务器的话,就无法连接了,就会提示上面的异常,即便是指定对应的上游或者下游WSUS服务器,也是提示权限问题,同一个域下面的WSUS服务器也会提示权限问题
我看到WSUS提供的API也没有设置账号密码的相关接口,目前只有AdminProxy下面的若干个接口是用来连接WSUS的,比如:GetRemoteUpdateServerInstance(serverName, useSecureConnection, portNumber); 以及GetUpdateServer(serverName, useSecureConnection, portNumber)等,每一种我都已经尝试过了,但是都提示权限问题了
麻烦帮忙看一下该问题的具体原因,万分感谢!