ADsOpenObject() 远程连接和 WinNT 提供程序的问题
Issue with ADsOpenObject() remote connection and the WinNT provider
我在使用远程计算机上服务的 WinNT 提供程序从 ADsOpenObject() 获取 IADsContainer 对象时遇到问题。
除了数字 4
,我已经能够让代码在以下情况下工作
- 我的应用程序部署在它连接的同一台机器上(本地主机)。
- 我的应用程序作为本地服务部署在它所连接的同一台机器 (localhost) 上。
- 我的应用程序部署在远程计算机上,它通过提供 IP 进行连接。
- 我的应用程序作为本地服务部署在远程机器上,它通过提供 IP 进行连接。
#include <iostream>
#include <Adshlp.h>
#include <comdef.h>
IADsContainer* container = nullptr;
HRESULT hres = ADsOpenObject( L"WinNT://192.168.1.30", L"Administrator", L"someAdminPass", ADS_SECURE_AUTHENTICATION | ADS_READONLY_SERVER, IID_IADsContainer, (void**)&container );
if( SUCCEEDED(hres) )
{
// do stuff with the container object
}
else
{
_com_error err( hres );
LPCTSTR errMsg = err.ErrorMessage();
std::wcout << errMsg;
}
我希望 hres 是 S_OK 和有效的 'container' 指针,但我只得到 E_FAIL 和错误字符串 "Unspecified error"
感谢 @DrakeWu-MSFT!
评论中的指导,问题已解决
我只需要指定一个 FQDN 用户名。如果您的机器域是 "DOMAIN.COM' then the username string should be "UserName@DOMAIN.com”。这为我解决了这个问题。对于这样的描述性错误消息,MS 也大 "thanks"...:)
主代码行现在如下所示:
HRESULT hres = ADsOpenObject( L"WinNT://192.168.1.30", L"Administrator@MYDOMAIN.COM", L"someAdminPass", ADS_SECURE_AUTHENTICATION | ADS_READONLY_SERVER, IID_IADsContainer, (void**)&container );
P.S。请注意,还有其他不喜欢 FQDN 用户名的 WinAPI 函数。
我在使用远程计算机上服务的 WinNT 提供程序从 ADsOpenObject() 获取 IADsContainer 对象时遇到问题。
除了数字 4
,我已经能够让代码在以下情况下工作- 我的应用程序部署在它连接的同一台机器上(本地主机)。
- 我的应用程序作为本地服务部署在它所连接的同一台机器 (localhost) 上。
- 我的应用程序部署在远程计算机上,它通过提供 IP 进行连接。
- 我的应用程序作为本地服务部署在远程机器上,它通过提供 IP 进行连接。
#include <iostream>
#include <Adshlp.h>
#include <comdef.h>
IADsContainer* container = nullptr;
HRESULT hres = ADsOpenObject( L"WinNT://192.168.1.30", L"Administrator", L"someAdminPass", ADS_SECURE_AUTHENTICATION | ADS_READONLY_SERVER, IID_IADsContainer, (void**)&container );
if( SUCCEEDED(hres) )
{
// do stuff with the container object
}
else
{
_com_error err( hres );
LPCTSTR errMsg = err.ErrorMessage();
std::wcout << errMsg;
}
我希望 hres 是 S_OK 和有效的 'container' 指针,但我只得到 E_FAIL 和错误字符串 "Unspecified error"
感谢 @DrakeWu-MSFT!
评论中的指导,问题已解决我只需要指定一个 FQDN 用户名。如果您的机器域是 "DOMAIN.COM' then the username string should be "UserName@DOMAIN.com”。这为我解决了这个问题。对于这样的描述性错误消息,MS 也大 "thanks"...:)
主代码行现在如下所示:
HRESULT hres = ADsOpenObject( L"WinNT://192.168.1.30", L"Administrator@MYDOMAIN.COM", L"someAdminPass", ADS_SECURE_AUTHENTICATION | ADS_READONLY_SERVER, IID_IADsContainer, (void**)&container );
P.S。请注意,还有其他不喜欢 FQDN 用户名的 WinAPI 函数。