社区
C++ 语言
帖子详情
如何获得本地的所有用户?
yunshiyu
2005-07-29 05:45:40
就是获得计算机管理里面的所有用户:Administrator、Guest、SQLDebugger、user等
应该有个API函数,但我没有找到,有谁知道吗?
...全文
77
3
打赏
收藏
如何获得本地的所有用户?
就是获得计算机管理里面的所有用户:Administrator、Guest、SQLDebugger、user等 应该有个API函数,但我没有找到,有谁知道吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
erwinrommel
2005-07-30
打赏
举报
回复
学习贴,收藏,很少看到5星级人物回帖啊,呵呵!
masterz
2005-07-29
打赏
举报
回复
#include "stdafx.h"
#import "c:\program files\common files\system\ado\msado15.dll" rename
("EOF", "adoEOF")
#include <fstream>
#include <sstream>
#include <Iads.h>
#include <comdef.h>
#include <tchar.h>
#include <stdio.h>
#include <Adshlp.h>
#pragma comment(lib,"ActiveDS")
#pragma comment(lib,"adsiid")
#include <atlbase.h>
#include <iostream>
void print_property(HRESULT hr,_bstr_t& property_name,
_variant_t& property_value)
{
if(FAILED(hr))
{
std::cout<<"Failed to get property: "<<(LPCTSTR)property_name
<<std::endl;
return;
}
if(VT_BSTR == property_value.vt)
{
std::cout<<(LPCTSTR)property_name<<":"
<<(LPCTSTR)(_bstr_t)property_value<<std::endl;
}
if(VT_I4 == property_value.vt)
{
std::cout<<(LPCTSTR)property_name<<":"
<<(long)property_value<<std::endl;
}
if(VT_VARIANT|VT_ARRAY )
{
SAFEARRAY* psa = property_value.parray;
VARIANT* varArray=NULL;
SafeArrayAccessData(psa,(VOID**)&varArray);
UINT uDim = SafeArrayGetDim(psa);
if(1==uDim)
{
long lLbound,lRbound;
SafeArrayGetLBound(psa,1,&lLbound);
SafeArrayGetUBound(psa,1,&lRbound);
std::cout<<(LPCTSTR)property_name<<":"<<std::endl;
for(long i=lLbound;i<=lRbound;i++)
{
if(varArray[i].vt==VT_BSTR)
{
_bstr_t bstmp(varArray[i].bstrVal,true);
std::cout<<(LPCTSTR)(bstmp)<<std::endl;
}
}
SafeArrayUnaccessData(psa);
}
}
}
HRESULT get_from_current_domain(_bstr_t sFilter)
{//Tested on Windows 2000 Professional SP4, VC6 SP6
CComPtr<IADs> pRoot;
HRESULT hr = S_OK;
_bstr_t object_name = "LDAP://rootDSE";
hr = ADsGetObject(object_name,IID_IADs,(void**)&pRoot);
if(SUCCEEDED(hr))
{
BSTR bstr = NULL;
_variant_t property_value;
_bstr_t property_name = "defaultNamingContext";
hr=pRoot->Get(property_name,&property_value);
print_property(hr,property_name,property_value);
if(SUCCEEDED(hr))
{
CComPtr<IADs> pDomain;
_bstr_t ldap_domain = "LDAP://";
ldap_domain += (_bstr_t)property_value;
hr = ADsGetObject(ldap_domain,IID_IADs,(void**)&pDomain);
if(FAILED(hr))
{
return hr;
}
hr = pDomain->get_ADsPath(&bstr);
if(FAILED(hr))
return hr;
_bstr_t sBase;
sBase = "<";
sBase += bstr;
sBase += ">";
SysFreeString(bstr);
bstr = NULL;
//_bstr_t sFilter = "(&(objectCategory=person)(objectClass=user))";
_bstr_t sAttribs = "name";
_bstr_t sDepth = "subTree";
_bstr_t sQuery = sBase + ";" + sFilter + ";" + sAttribs
+ ";" + sDepth;
ADODB::_ConnectionPtr pConnection;
pConnection.CreateInstance( __uuidof( ADODB::Connection ) );
_bstr_t bstrEmpty;
pConnection->Open("Data Source=Active Directory
Provider;Provider=ADsDSOObject",
bstrEmpty, bstrEmpty, -1 );
ADODB::_RecordsetPtr pRecordset;
_variant_t records_affected;
pRecordset = pConnection->Execute(sQuery,&records_affected,0);
while(!pRecordset->adoEOF)
{
std::cout<<(LPCTSTR)(_bstr_t)pRecordset->Fields->Item["name"]->Val
ue
<<std::endl;
pRecordset->MoveNext();
}
if(pRecordset->State)
{
pRecordset->Close();
std::cout<<"Close recordset"<<std::endl;
}
if(pConnection->State)
{
pConnection->Close();
std::cout<<"Close connection"<<std::endl;
}
}
}
else
{
std::cout<<"failed to get object:"<<(LPCTSTR)object_name
<<std::endl;
}
return ERROR_SUCCESS;
}
HRESULT get_all_users()
{
std::cout<<"Get all users of current domain"<<std::endl;
return
get_from_current_domain("(&(objectCategory=person)(objectClass=user))"
);
}
HRESULT get_all_computers()
{
std::cout<<"Get all computers of current domain"<<std::endl;
return get_from_current_domain("(&(objectCategory=computer))");
}
int main(int argc, char* argv[])
{
CoInitialize(NULL);
get_all_users();
get_all_computers();
CoUninitialize();
return 0;
}
OpenHero
2005-07-29
打赏
举报
回复
system()命令有
微服务上云后本地如何联调?
大家好,我是飘渺!今天给大家带来云原生实战系列的第三十五篇,微服务上云后本地如何联调?当我们将微服务上云以后在开发过程中会遇到这样的场景:生产者服务部署到了云上,消费者服务还处于开发阶段,现在开发人员想在本地启动消费者服务调用云上生产者服务进行接口调试,很显然由于生产者和消费者处于不同的网络区间无法互相访问,在应用层的表现就是:会出现服务调用超时的异常,如下所示此时为了联调不得不将本地服务也部署到...
若依(RuoYi)如何获取
用户
登录信息?
①ShiroUtils工具类中获取 // 获取当前的
用户
信息 User currentUser = ShiroUtils.getSysUser(); // 获取当前的
用户
名称 String userName = currentUser.getUserName(); ②可在子模块中使用 // 获取当前的
用户
名称 String userName = (String) PermissionUtils.getPrincipalProperty("userName"); ③界面获取当前
用户
信息(支持任..
win8计算机管理没本地
用户
和组,win7系统服务器管理器没有"本地
用户
和组"选项怎么办?...
win7系统服务器管理器没有"本地
用户
和组"选项怎么办?具体方法如下:1、出现这种情况一般是组策略做限制了,打开运行gpedit.msc打开组策略编辑器;2、依次点击,
用户
设置---管理模板---mircosoft管理控制台---受限制的许可管理单元--- 右侧 【本地用和组】;3、把本地
用户
和组的设置,禁用状态设置为 启用,或者未配置,然后确定;4、此外,如果你不记得在什么选项下面,可以直接点击...
windows server2012计算机管理“系统工具”里面没有“本地
用户
和组”怎么办?
今天做作业,windows server2012安全配置实验报告,其中有一个是停止Guest帐号。刚开始很懵逼,后面就在度娘那里找到了方法,兴致冲冲的照着上面弄。 鼠标右击左下角的图标,在弹出快捷菜单选择"计算机管理"→“系统工具”→“本地
用户
和组” 咦?卡住了,我的和度娘的不一样,我的没有“本地
用户
和组”。 然后怎么样,继续找度娘呗,中间踩了很多坑,最后终于搜到了 下面记录一下我的解决办法,嘿嘿。 我的登录
用户
是: 不是administrator。然后点它,选择注销,用administrator登..
Windows 10 怎么创建本地帐户?
完成这些步骤后,新的本地帐户将列在“其他
用户
”下。如果您希望
用户
拥有更多权限来安装应用程序和进行系统更改,您将需要更改帐户类型为“管理员”。但是,与使用 Microsoft 帐户不同,您的设置、首选项和文件将保留在本地,以
获得
更安全和私密的体验。7、在“为此电脑创建帐户”部分下,确认新的 Windows 10 本地帐户信息。4、在“其他
用户
”下,单击“将其他人添加到这台电脑” 按钮。4、在“其他
用户
”部分下,选择
用户
帐户。4、在“其他
用户
”部分下,选择本地帐户。5、单击“更改帐户类型”按钮。
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章