Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何修复错误:1722 RPC服务器在c+中不可用+;使用winevt.h编程_C++_Visual Studio_Winapi_Active Directory_Rpc - Fatal编程技术网

C++ 如何修复错误:1722 RPC服务器在c+中不可用+;使用winevt.h编程

C++ 如何修复错误:1722 RPC服务器在c+中不可用+;使用winevt.h编程,c++,visual-studio,winapi,active-directory,rpc,C++,Visual Studio,Winapi,Active Directory,Rpc,我有两个windows 10VM和一个windows server 2016 vm作为在hyper-v中创建的active directory域控制器,它们使用NAT连接到主机网络。我已经寻找了几种解决方案,并在防火墙和组策略编辑器中启用了适当的权限,并从域控制器将所有用户和计算机添加到事件日志读取器组和远程管理用户组。 我可以从第一个通过PixBeS壳(GET WINEVER)和事件查看器访问第二个Windows 10 VM的事件日志,但是当我用C++编写程序时,EvTopSnices函数给出

我有两个windows 10VM和一个windows server 2016 vm作为在hyper-v中创建的active directory域控制器,它们使用NAT连接到主机网络。我已经寻找了几种解决方案,并在防火墙和组策略编辑器中启用了适当的权限,并从域控制器将所有用户和计算机添加到事件日志读取器组和远程管理用户组。 我可以从第一个通过PixBeS壳(GET WINEVER)和事件查看器访问第二个Windows 10 VM的事件日志,但是当我用C++编写程序时,EvTopSnices函数给出错误:1722 RPC服务器不可用。允许C++代码访问远程计算机日志的特殊步骤吗?< /P> 这是我的EvtOpenSession代码,我是否遗漏了代码中的某些内容,或者是否需要做任何其他事情来完成这项工作(比如在本地用户或域管理员中弄乱注册表、防火墙、策略等)


注意:我尝试使用用户凭据和管理员凭据,都给出相同的错误[1722 ],错误的凭据会给出错误:1825。< /P>关于您的问题没有什么C++具体的。任何编程语言都会有这些问题。我知道,我曾经多次遇到RPC错误,我通过更改防火墙中的权限来纠正这些错误,即使在所有这些之后,这个程序也会出现同样的错误。关于如何解决这个问题,有什么建议吗?这一直困扰着我,因为我在使用powershell远程处理访问远程日志时遇到了同样的问题,防火墙权限有助于消除错误,但同样的权限似乎不适用于我的C++程序,为什么您要窄字符串?这是VisualStudio接受EVTJRPCION登录结构,任何其他类型,它不会编译,在微软文档中,给定的TyPulf是LPWSTR的结构。

EVT_HANDLE hRemote = NULL;
EVT_RPC_LOGIN Credentials;
RtlZeroMemory(&Credentials, sizeof(EVT_RPC_LOGIN));

Credentials.Server = (LPWSTR)"VIRTUAL\\DESKTOP-local02";
Credentials.Domain = (LPWSTR)"VIRTUAL.HYPERVSERVER";
Credentials.User = (LPWSTR)"VIRTUAL\\Administrator";
Credentials.Password = (LPWSTR)"Vadmin12345#";
Credentials.Flags = EvtRpcLoginAuthNegotiate;
hRemote = EvtOpenSession(EvtRpcLogin, &Credentials, 0, 0);
SecureZeroMemory(&Credentials, sizeof(EVT_RPC_LOGIN));