用vbs和ADSI管理Windows账户
时间:2019-11-06
本文章向大家介绍用vbs和ADSI管理Windows账户,主要包括用vbs和ADSI管理Windows账户使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ADSI (Active Directory Services Interface)是Microsoft新推出的一项技术,它统一了许多底层服务的编程接口,程序员可以使用一致的对象技术来访问这些底层服务。 ADSI把这些服务的公共部分提取出来,同时隔离出相异的部分,程序员可以用统一的接口访问底层服务的公共部分,并延伸到底层服务的专有部分。
管理用户组
获取用户组的用户列表
Dim oGrp Dim oMember Dim sDomain dim sMsg sDomain = "localhost" On Error Resume Next Set oGrp = GetObject("WinNT://"&sDomain&"/Administrators,group") For Each oMember In oGrp.Members sMsg = sMsg & oMember.Name & "(" & oMember.Class & ") " & oMember.ADsPath & vbnewline Next msgbox sMsg If (Err.Number<>0) Then MsgBox("An error has occurred. " &vbnewline& Err.Description) End If Set oGrp = Nothing Set oMember = Nothing
查询用户是否属于该用户组
Dim oGrp On Error Resume Next Set oGrp = GetObject("WinNT://localhost/Administrators") MsgBox oGrp.IsMember("WinNT://DESKTOP-K3O4FGP/Administrator") If (Err.Number<>0) Then MsgBox("An error has occurred. " &vbnewline& Err.Description) End If Set oGrp = Nothing
添加用户到用户组
该操作要求当前登录用户为Administrator。
Dim oGrp dim sDomain sDomain = "DESKTOP-K3O4FGP" Set oGrp = GetObject("WinNT://"&sDomain&"/Administrators") oGrp.Add ("WinNT://"&sDomain&"/Admin") if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if Set oGrp = Nothing
从用户组中移除用户
该操作要求当前登录用户为Administrator。
Dim oGrp dim sDomain sDomain = "DESKTOP-K3O4FGP" On Error Resume Next Set oGrp = GetObject("WinNT://"&sDomain&"/Administrators") oGrp.Remove ("WinNT://"&sDomain&"/jeffsmith") If (Err.Number<>0) Then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" End If Set oGrp = Nothing
创建用户组
该操作要求当前登录用户为Administrator。
Dim oDomain Dim oGroup Dim sDomain sDomain = "localhost" On Error Resume Next Set oDomain = GetObject("WinNT://"&sDomain) Set oGroup = oDomain.Create("group","MyGroup") oGroup.SetInfo if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if Set oGroup = Nothing Set oDomain = Nothing
删除用户组
该操作要求当前登录用户为Administrator。
Dim oDomain Dim sDomain sDomain = "localhost" On Error Resume Next Set oDomain = GetObject("WinNT://"&sDomain) oDomain.Delete "group","MyGroup" if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if Set oDomain = Nothing
管理用户
添加用户
该操作要求当前登录用户为Administrator。
Dim oDomain Dim oUser Dim sDomain sDomain = "localhost" On Error Resume Next Set oDomain = GetObject("WinNT://"&sDomain) Set oUser = oDomain.Create("user","jeffsmith") oUser.SetInfo if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if
新建的用户的默认属性如下
Property | Value |
---|---|
Full Name | SAM Account Name (such as jeffsmith) |
Password | Empty |
User Must Change Password | TRUE |
User Cannot Change Password | FALSE |
Password Never Expires | FALSE |
Account Disabled | FALSE |
Group | Domain User |
Profile | Empty |
Account Never Expires | TRUE |
修改用户属性
该操作要求当前登录用户为Administrator。
Dim oUser Dim sDomain sDomain = "localhost" On Error Resume Next Set oUser = GetObject("WinNT://"&sDomain&"/jeffsmith") oUser.FullName = "jeffsmith" oUser.Description = "Description" oUser.AccountDisabled = False oUser.IsAccountLocked = False oUser.SetInfo if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if
用户属性详见:https://docs.microsoft.com/zh-cn/windows/win32/adsi/iadsuser-property-methods
设置用户密码
该操作要求当前登录用户为Administrator。
Dim oUser Dim sDomain sDomain = "localhost" On Error Resume Next Set oUser = GetObject("WinNT://"&sDomain&"/jeffsmith") oUser.SetPassword "pa55w0rd!" if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if
更改用户密码
该操作要求当前登录用户为Administrator。
Dim oUser Dim sOldPass Dim sNewPass Dim sDomain sDomain = "localhost" On Error Resume Next Set oUser = GetObject("WinNT://"&sDomain&"/JeffSmith,user") ' Add code to securely retrieve the old and new password. oUser.ChangePassword sOldPass, sNewPass if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if Set oUser = Nothing
删除用户
该操作要求当前登录用户为Administrator。
Dim oDomain Dim sDomain sDomain = "localhost" On Error Resume Next Set oDomain = GetObject("WinNT://"&sDomain) oDomain.Delete "user", "jeffsmith" if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox "Complete" end if
查询用户隶属的组
Dim oUser Dim oGroup Dim sDomain Dim sMsg sDomain = "localhost" On Error Resume Next Set oUser = GetObject("WinNT://"&sDomain&"/Administrator") For Each oGroup In oUser.Groups sMsg = sMsg & oGroup.Name & vbnewline Next if (Err.Number<>0) then MsgBox("An error has occurred. " &vbnewline& Err.Description) else msgbox sMsg end if
引用:https://docs.microsoft.com/zh-cn/windows/win32/adsi/adsi-objects-of-winnt
原文地址:https://www.cnblogs.com/yada/p/11799174.html
- TensorFlow 深度学习笔记 从线性分类器到深度神经网络
- 微信版12306来了!用12306微信小程序买票靠谱吗
- 无需写try/catch,也能正常处理异常
- “人工智能毁灭人类”是一种末世恐惧传染病
- 有状态(Stateful)应用的容器化
- 实现一些字符串操作标准库函数、解决一些字符串问题
- 外卖陷阱,你入坑了么?
- ASP.NET Core的配置(4):多样性的配置来源[上篇]
- 37 个你必须知道的现代数据中心术语
- Python读书笔记7
- 2017年人工智能在游戏领域打败人类,未来我们将何去何从?
- 3杂再破市场行情 6位数结拍
- 将永久存储添加到Red Hat CDK Kit 3.0
- ASP.NET MVC的Razor引擎:RazorView
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一次奇怪的http状态码改变
- Salesforce LWC学习(二十七) File Upload
- 让我们来谈谈python中的prettyprint和pprint
- vue 开发规范
- Markdown 编写规范
- JavaScript编码规范
- HTML编码规范
- postgres数据库不能用ip地址访问的问题
- Flutter基础widgets教程-ButtonBar篇
- 如何在linux服务上创建samba文件共享服务
- Salesforce Javascript(二) 箭头函数
- java面试基础部分;
- 7-2.表单-HTML基础
- 如何在github上传多个项目
- Flutter基础widgets教程-Card篇