批处理批量修改AD所有用户的所有属性

  • Post author:
  • Post category:其他


这里我按用户名来批量修改域用户的邮件来做演示。

使用的是dsquery  和dsmod 命令结合使用

使用dsquery user 查询用户。

-name <Name>                查找其名称与筛选器的给定 <Name>

(如 “jon*”、”*ith” 或 “j*th”)

匹配的用户。

dsquery user -name

XXX

红色标记为用户名。

使用dsmod user –

xxx

修改用户属性。 红色标记为参数

以下是dsmod user的参数

-upn <UPN>              设置 UPN 值为 <UPN>。

-fn <FirstName>         设置用户的名为 <FirstName>。

-mi <Initial>           设置用户的中间名首字母为 <Initial>。

-ln <LastName>          设置用户的姓为 <LastName>。

-display <DisplayName>  设置用户显示名为 <DisplayName>。

-fnp <FirstNamePhonetic>

设置用户拼音名为 <FirstNamePhonetic>。

-lnp <LastNamePhonetic> 设置用户拼音姓为 <LastNamePhonetic>。

-displayp <DisplayNamePhonetic>

设置用户拼音显示名 <DisplayNamePhonetic>。

-empid <EmployeeID>     设置用户雇员 ID 为 <EmployeeID>。

-pwd {<Password> | *}   将用户密码重置为 <Password>。如果是 *,则会提示

您输入密码。

-desc <Description>     设置用户的描述为 <Description>。

-office <Office>        设置用户的办公室位置为 <Office>。

-tel <Phone#>           设置用户的电话号码为 <Phone#>。

-email <Email>          设置用户的电子邮件地址为 <Email>。

-hometel <HomePhone#>   设置用户的住宅电话号码为 <HomePhone#>。

-pager <Pager#>         设置用户的寻呼机号码为 <Pager#>。

-mobile <CellPhone#>    设置用户的便携式电话号码为 <CellPhone#>。

-fax <Fax#>             设置用户的传真号码为 <Fax#>。

-iptel <IPPhone#>       设置用户的 IP 电话号码为 <IPPhone#>。

-webpg <WebPage>        设置用户网页 URL 为 <WebPage>。

-title <Title>          设置用户的职务为 <Title>。

-dept <Department>      设置用户的部门为 <Department>。

-company <Company>      设置用户的公司信息为 <Company>。

-mgr <Manager>          设置用户的经理为 <Manager>。

-hmdir <HomeDir>        设置用户的主目录为 <HomeDir>。如果为 UNC 路径,则

必须通过 -hmdrv 指定将被映射到这个路径的驱动器号。

-hmdrv <DriveLtr>:      设置用户主驱动器号为 <DriveLtr>:

-profile <ProfilePath>  设置用户配置文件路径为 <ProfilePath>。

-loscr <ScriptPath>     设置用户登录脚本路径为 <ScriptPath>。

-mustchpwd {yes | no}   设置用户在下次登录时是(yes)否(no)必须更改密码。

-canchpwd {yes | no}    设置用户是(yes)否(no)能更改密码。如果 -mustchpwd

的设置是 “yes”,则此设置也应该是 “yes”。

-reversiblepwd {yes | no}

设置是(yes)否(no)使用可逆加密方式存储用户密码。

-pwdneverexpires {yes | no}

设置用户密码是(yes)否(no)永不过期。

-acctexpires <NumDays>  设置用户帐户从今天起 <NumDays> 天后过期。值为 0 表

示帐户在今天结束时过期。正值设置在未来过期。负值设

置在过去过期。字符串值 “never” 表示此帐户永不过期。

-disabled {yes | no}    设置是(yes)否(no)禁用用户帐户。

{-s <Server> | -d <Domain>}

-s <Server> 连接到带有名称 <Server> 的

AD DC/LDS 实例。

-d <Domain> 在域 <Domain> 中连接到 AD DC。

默认: 该登录域中的一个 AD DC。

-u <UserName>           用 <UserName> 连接。默认: 已登录的用户。

用户名可以是: 用户名、域\用户名或用户主体名称(UPN)。

-p <Password>           用户 <UserName> 的密码。如果是 *,则提示您输入密码。

-c                      连续操作模式: 如果指定了多个目标对象,则会在报告错误

后继续处理参数列表的下一个对象。如果没有此选项,

则命令将在出现第一个错误时退出。

-q                      安静模式: 将所有输出抑制为标准输出。

{-uc | -uco | -uci}     -uc 指定从管道的输入或到管道的输出采用 Unicode 格式。

-uco 指定到管道或文件的输出采用 Unicode 格式。

-uci 指定从管道或文件的输入采用 Unicode 格式。

我这里修改用户的mail那么我们就用(-email)中参数来修改。

那么命令就是dsmod user -email



xxx@xxx



。(



xxx@xxx



)为用户名对应的邮箱

这样我们就可以得出这样一行命令:

dsquery user -name

XXX

| dsmod user -email



xxx@xxx



(查询用户xxx并修改用户xxx的email的属性为



xxx@xxx



得出这样一条命令后我们既然要批量修改那么就要想办法通过调用CSV文件来循环的跑这一行命令。

for /f “skip=1 eol=;tokens=1-2 delims=,” %a in (c:\mail.csv) do dsquery user -name %a | dsmod user -email %b

skip=1 去掉CSV中的第一行

tokens=1-2取值CSV中的第一至第二例

%a in (c:\mail.csv) 调用在C盘根目录的mail.csv文件

dsquery user -name %a 中的%a为取值CSV中的A列

dsmod user -email %b 中的%b为取值CSV中的B列

那这样我们就可以知道CSV应该怎样制作了。

CSV格式:

用户名 email
xxx


xxx@xxx


xxx


xxx@xxx


写的这样清楚,我想大家应用会延伸的去想如何修改其他属性了。

当然咯。根据这条批处理一次修改多条属性也可以哦,至于怎样去操作,我想我就不用说了哇。

以下是运行命令的截图

以下是命令运行成功截图:

文章到这,完毕,谢谢大家支持。



版权声明:本文为aaaze原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。