使用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建立客户的4个基础流程。下边将作详解。
联接到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方式必须出示2个主要参数:构造函数类和对象RDN。构造函数的RDN就是指该构造函数在父器皿下的 名字部位,绝大多数构造函数类则应用“CN=构造函数名”那样的文件格式做为自个的RDN。显然OU的RDN是“OU=机构公司名称”那样的文件格式,而域的RDN是 “DN=网站域名”。因而下述编码能够应用”CN=Mary North”那样的RDN建立客户构造函数:
$objUser=$objU.Create("user","CN=Mary North")
转化成的构造函数結果会分派给自变量$objUser,合用该自变量意味着要建立的构造函数,能够事件实际操作。
填写信息客户特性
这 里必须特别注意1个难题,在将修改合拼以前,新构造函数和其开展的修改都不容易储存,而在填写信息全部必需的特性以前,还不可以取得成功合拼修改。客户构造函数的必需温馨包含 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的实际上规定。只有安全系数并不容易受
相关文章
- 5条评论
- 礼忱槿畔2022-06-03 02:28:42
- t;, "$displayname")$odjUser.Put=("sn", "$sn")$objUser.SetInfo()客户的登陆密码又该怎么办?应用Put方式没法设定客户登陆密码,相对这时理应应用
- 辙弃债姬2022-06-03 03:12:34
- 建立客户举例说明:建立域客户最基础的Windows Powershell脚本制作相近那样:$objOU=[ADSI]"LDAP://OU=People,DC=contoso,DC=com"$objUser=$objU.Create("
- 笙沉迟醉2022-06-02 22:58:40
- r.Put=("sn", "$sn")$objUser.SetInfo()客户的登陆密码又该怎么办?应用Put方式没法设定客户登陆密码,相对这时理应应用SetPassword方式,比如那样:$objUser.SetPassword("pa
- 青迟冂马2022-06-03 01:35:41
- 在域细胞外液中,经常必须应用命令行管理方法域客户,这时能够应用Active Directory中的命令行专用工具Dsquery.exe,或CSVE,及其Ldifde等,我觉得,应用Windows Powershell来开展管理方法实际操作都是相当于
- 听弧并安2022-06-02 22:29:24
- 寻字符串,也就是说LDAP://协议书标志符,后跟构造函数的DN。因而第一行代码应当像下边那样:$objOU=[ADSI]"LDAP://OU=Peop