使用powershell管理域用户
在域内环境中,常常需要使用命令行管理域用户,此时可以使用Active Directory中的命令行工具Dsquery.exe,或CSVE,以及Ldifde等,其实,使用Windows Powershell来进行管理操作也是相当的方便。
下面以创建用户举例:
创建域用户最基本的Windows Powershell脚本类似这样:
$objOU=[ADSI]”LDAP://OU=People,DC=contoso,DC=com”
$objUser=$objU.Create(“user”,”CN=Mary North”)
$odjUser.Put=(“sAMAccountName”,”mary.north”)
$objUser.SetInfo()
上述代码列举了在Active Directory
中使用Windows Powershell
创建用户的四个基本步骤。
下面将作详细介绍。
连接到Active Directory
容器
要创建用户这样的对象,实际上是要对该对象的容器来创建对象。因此首先需要针对容器,执行某种操作,也就是“方法”。第一步需要连接到容器,Windows Powershell
可以使用Active Directory
服务接口类型适配器切入到Active Directory
对象。要连接Active Directory
对象,必须提交LDAP
查询字符串,也就是LDAP://协议标识符
,后跟对象的DN
。因此第一行代码应该像下面这样:
$objOU=[ADSI]"LDAP://OU=People,DC=contoso,DC=com"
Windows Powershell
需要使用ADSI
类型适配器创建代表People OU
的对象,并将其分配给分量。名为objOU
的变量反映了对变量类型进行标识,以obj开头只是编程标准,但实际变量可以使用任何名称。
调用Create
方法
至此,变量$objOU
就可以代表People OU
。接着即可使用容器的create
方法让容器创建对象。Create
方法需要提供两个参数:对象类和对象RDN
。对象的RDN
是指该对象在父容器下的名称位置,大部分对象类则使用"CN=对象名"
这样的格式作为自己的RDN
。然而OU
的RDN
是"OU=组织单位名称"
这样的格式,而域的RDN
是"DN=域名"
。因此下列代码可以使用"CN=Mary North"
这样的RDN
创建用户对象:
$objUser=$objU.Create(“user”,”CN=Mary North”)
生成的对象结果会分配给变量$objUser
,并用该变量代表要创建的对象,可供后续操作。
填写用户属性
这里需要注意一个问题,在将改动合并之前,新对象和其进行的改动都不会保存,而在填写所有必要的属性之前,还不能成功合并改动。用户对象的必须舒心包括windows 2000
前登陆名。该属性的LDAP
名称是sAMAccountName
,因此代码的下一行需要为对象指派sAMAccountName
,此时需要使用Put
方法。Put
是为对象写入属性的标准方法,Get
则是检索对象属性的标准方法,此处的代码应该像下面这样:
$odjUser.Put=(“sAMAccountName”,”Mary North”)
对于用户对象,还有其他强制属性,包括对象的安全标识符(SID),但这些对象会在将新用户提交到目录的时候用Active Directory
自动创建。
使用SetInfo
方法合并改动
要合并改动,请使用Active Directory
对象的SetInfo
方法。此处的代码应该像下面这样:
$objUser.SetInfo()
填写其他用户属性
上述命令将创建只包含强制sAMAccountName
属性的用户,在创建用户对象时,还需要填写其他用户属性。前面介绍了使用用户对象的Put
方法写入属性,因此这里只需要重复调用该方法,指定需要添加的每个属性即可:
$odjUser.Put=(“sAMAccountName”, ”$samAccountName”)
$odjUser.Put=(“displayName”, ”$displayname”)
$odjUser.Put=(“sn”, “$sn”)
$objUser.SetInfo()
用户的密码又怎么办?使用Put
方法无法设置用户密码,相反此时应当使用SetPassword
方法,例如这样:
$objUser.SetPassword(“passwd”)
然而SetPassword
方法只能在创建好用户并调用SetInfo()
方法之后使用,这意味着实际上,我们是首选创建好账户,随即才为其设置密码。这并不是Windows Powershell
的Bug
或局限,而是Kerberos
和LDAP
的实际要求。不过安全性并不会受损,因为这样创建的账户处于禁用状态。
因此账户的状态实际上是一种标志(flag),无法直接使用Put
命令设置。此时需要下列命令:
$objUser.psbase.InvokeSet(“AccountDisabled”,$false)
$objUser.SetInfo()
参考:https://www.cnblogs.com/index-htm/p/5412524.html
使用powershell管理域用户的更多相关文章
- Exchange 域用户无权管理邮箱
将需要管理邮箱的域用户添加至“Microsoft Exchange Security Groups”用户组即可.
- (转)从0开始搭建SQL Server AlwaysOn 第一篇(配置域控+域用户DCADMIN)
原文地址: http://www.cnblogs.com/lyhabc/p/4678330.html 实验环境: 准备工作 软件准备 (1) SQL Server 2012 (2) Windows S ...
- AD域撤销域用户管理员权限方案
一.简介 公司大部分主机加入域已有一段时间了,由于某软件没管理员权限不能执行,所以管理员权限一直没撤销,不能完全实现域的管理效果.但起码实现了域用户脱离不了域的控制:http://www.cnblog ...
- JAVA 通过LDAP获取AD域用户及组织信息
因为工作需求近期做过一个从客户AD域获取数据实现单点登录的功能,在此整理分享. 前提:用户可能有很多系统的情况下,为了方便账号的统一管理使用AD域验证登录,所以不需要我们的系统登录,就需要获取用户的A ...
- SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)
由于SharePoint 2013推出不久,并非所有的企业都会升级到SharePoint 2013的,毕竟升级不是打打补丁这么简单,更多的企业还是使用Sharepoint 2010版本的,因此本人自行 ...
- SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...
- JBOSS EAP 6 系列五 Managed domains 管理域最主要的功能是“统一部署,统一配置”
摘要 本文首先介绍Managed Domain的概念,管理域最主要的功能是"统一部署,统一配置".接下来通过一个实例在"统一配置"部分实现一个双机配置起来的域, ...
- Windows Server 2016-批量新建域用户(二)
前几个章节我们讲到Windows Server 2016-图形化新建域用户(一),本章节我们简单讲解下如何通过命令批量创建域用户,以便高效完成日常工作中实际批量创建用户需求,内容涉及dsadd use ...
随机推荐
- centos7上搭建NFS的实践
NFS 即network file system 可用于向k8s集群提供持久存储 最小化安装centos后 把网卡设置好了后 1.关闭防火墙 [root@NFS ~]# systemctl stop ...
- python版本
一般在Linux下,默认会安装一个python2.*的版本,但是我们自己开发有时候需要python3.*的版本 1. 安装python3 .安装依赖包 )首先安装gcc编译器,gcc有些系统版本已经默 ...
- ActiveMQ基础简介
1. 什么是ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 ...
- JDBC的两种sql命令发送器比较【Statement:PreparedStatement】
PreparedStatement 接口继承 Statement接口如果需要多次执行一个SQL语句,可以使用PreparedStatement对象.在创建PreparedStatement对象时,通过 ...
- PHP的八种数据类型
PHP 支持8种基本的数据类型. 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: arr ...
- 电子工程师需要了解的SMT贴片质量问题汇总(转)
点胶工艺中常见的缺陷与解决方法 拉丝/拖尾 拉丝/拖尾是点胶中常见的缺陷,产生的原因常见有胶嘴内径太小.点胶压力太高.胶嘴离PCB的间距太大.贴片胶过期或品质不好.贴片胶粘度太好.从冰箱中取出后未能恢 ...
- Linux系统的grub和BIOS加密
启动流程: BIOS ——> MBR(主引导记录,找到系统在哪个分区) ——> boot loader(grub) ——>kernel(内核)——>进入启动级别init 硬盘的 ...
- Linux CentOS 7 防火墙与端口设置操作
CentOS升级到7之后用firewall代替了iptables来设置Linux端口, 下面是具体的设置方法: []:选填 <>:必填 [<zone>]:作用域(block.d ...
- 严格次小生成树[BJWC2010]
原文必点 原题链接 题目描述 给定一张\(N\) 个点$ M $条边的无向图,求无向图的严格次小生成树. 设最小生成树的边权之和为\(sum\),严格次小生成树就是指边权之和大于\(sum\)的生成树 ...
- Linux系统用户权限管理
Linux系统中三种基本权限 用户属主.用户属组及其它人权限 -rw-r--r-- 1 root root 762 11-11 20:34 a.out 文件类型 ls命令中的缩写 应用 一般文件 - ...