AD命令行之用户基本操作

背景

在日常AD系统的基本维护中,主要涉及以下几种操作:

  • 人员新增
  • 人员信息变更(AD解锁、AD重置密码、AD信息修改等)
  • 人员删除

这些都可以通过AD命令行来进行处理,可以多种方式通过传入必要的信息来实现自动化。

基础命令

  • dsquery:用于查找用户,配合管道符|可以可以传递用户对象。
  • dsadd:用于增加用户
  • dsrm:用于删除用户
  • dsmove:用户用户移动,及组织变更
  • dsmod:用户信息修改

应用

以上基础命令配合起来就可以基本囊括日常AD运维的所有操作了。

AD用户新增

  • 先设置初始ad账号信息,并查询是否存在同名用户

    1
    dsquery user ou=sales,dc=microsoft,dc=com -samid ad

    若存在该ad账号的用户对象,则会返回该用户信息:

    1
    cn=Jane Doe,ou=sales,dc=microsoft,dc=com

    若不存在则会返回空:

    1
     

    所以可以通过返回是否为空来判断并更正ad信息(比如,如果存在同名用户,则新增账号后面加数字1、2。。。)

  • 新增用户

    1
    dsadd user "cn=Jane Doe,ou=sales,dc=microsoft,dc=com" -samid xxx -fn xxx -ln xxx -display xxx -pwd xxx -desc xxx -memberof "cn=sales-group,ou=sales,dc=microsoft,dc=com" -office xxx -dept sales -company microsoft -profile xxx.bat -mustchpwd no -acctexpires never

AD删除

ad删除可以直接使用dsrm命令,但建议还是通过在AD组织中先查找到对象后通过管道符|传递给dsrm进行删除的方式比较保险:

1
dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsrm  -noprompt

注意:在测试中,如果不加-noprompt选项会删除失败,并报错,所以还得加一下,先自行确认好需要删除的用户信息。

AD组织变更

AD组织变更时,需要注意是否涉及组织加入新群组,是否要删除原默认群组。很多时候会通过加AD群组的方式进行权限管理。

  • 移动到新组织

    1
    dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsmove -newparent ou=marketing,dc=microsoft,dc=com
  • 更新用户信息

    1
    dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsmod user -desc xxx -office marketing -dept marketing
  • 加入新组织的默认AD群组

    1
    dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsmod group "cn=marketing-group,ou=sales,dc=microsoft,dc=com" -addmbr
  • 删除旧组织的默认AD群组

    1
    dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsmod group "cn=sales-group,ou=sales,dc=microsoft,dc=com" -addmbr

AD解锁

AD解锁,其实就是通过dsmod命令修改用户的-Disabled信息即可:

1
dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsmod user -Disabled no

AD密码重置

AD重置,也是通过dsmod命令修改用户的-pwd参数信息,可通过-mustchpwd来设定是否必须自己重新修改一次密码。

注意:建议重置密码的时候也同步进行解锁操作。

1
dsquery user ou=sales,dc=microsoft,dc=com -samid xxx | dsmod user -Disabled no -pwd xxx -mustchpwd yes

批量加组

当dsquery查找出多个对象信息时,也可以都传给dsmod来实现批量操作。

例如将某组织下的用户批量加入某个AD群组:

1
dsquery user ou=sales,dc=microsoft,dc=com -limit 1000 | dsmod group "cn=sales-group,ou=sales,dc=microsoft,dc=com" -addmbr

注意:这里有一个-limit 1000参数,这是由于dsquery命令默认输出100个,如果数量会超过的话,那么就要加这个参数,防止批量不完全。

扩展

各个命令的完整手册都可以通过/?来输出查看:

  • dsquery

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    C:\Users\Administrator>dsquery user /?
    描述: 根据给定标准查找目录中的用户。

    语法: dsquery user [{<StartNode> | forestroot | domainroot}]
    [-o {dn | rdn | upn | samid}]
    [-scope {subtree | onelevel | base}]
    [-name <Name>] [-namep <Phonetic Name>]
    [-desc <Description>] [-upn <UPN>]
    [-samid <SAMName>] [-inactive <NumWeeks>] [-stalepwd <NumDays>]
    [-disabled] [{-s <Server> | -d <Domain>}] [-u <UserName>]
    [-p {<Password> | *}] [-q] [-gc] [-limit <NumObjects>]
    [{-uc | -uco | -uci}]

    参数:

    值 描述
    {<StartNode> | forestroot | domainroot}
    该搜索从此开始的节点:
    林根、域根或其 DN 为
    <StartNode> 的一个节点。
    可以是 "forestroot"、"domainroot" 或
    对象 DN。如果指定了 "forestroot",
    则会通过全局编录进行搜索。
    默认: domainroot。
    -o {dn | rdn | upn | samid}
    指定输出格式。
    默认: 可分辨名称(DN)。
    -scope {subtree | onelevel | base}
    指定搜索范围:
    根目录位于开始节点的子树(subtree);
    只搜索开始节点的直属子节点(onelevel);
    由开始节点代表的基对象(base)。
    注意: 除非开始节点代表一个域根,
    否则,子树和域范围对任何开始节点
    实质上是一样的。
    如果林根被指定为 <StartNode>,
    则子树是唯一有效的范围。
    默认: subtree。
    -name <Name> 查找其名称与筛选器的给定 <Name>
    (如 "jon*"、"*ith" 或 "j*th")
    匹配的用户。
    -namep <Phonetic Name> 查找其拼音显示名为 <Phonetic Name>
    (如 "╜╜▐╖"、"▓┴█" 或 "▓*╖")的
    用户。
    -desc <Description> 查找其描述与筛选器的给定 <Description>
    (如 "jon*"、"*ith" 或 "j*th")
    匹配的用户。
    -upn <UPN> 查找其 UPN 与筛选器的给定 <UPN>
    匹配的用户。
    -samid <SAMName> 查找其 SAM 帐户名与筛选器的给定
    <SAMName> 匹配的用户。
    -inactive <NumWeeks> 查找至少 <NumWeeks> 个星期
    处于非活动状态(没有登录)
    的用户。
    -stalepwd <NumDays> 查找至少 <NumDays> 天没有
    更改密码的用户。
    -disabled 查找帐户被禁用的用户。
    {-s <Server> | -d <Domain>}
    -s <Server> 用名称 <Server> 连接到 AD DC/LDS
    实例。
    -d <Domain> 连接到域 <Domain> 中的 AD DC。
    默认: 登录域中的 AD DC。
    -u <UserName> 以 <UserName> 身份连接。默认: 登录的用户。
    用户名可以采用: 用户名、
    域\用户名或用户主体名称(UPN)。
    -p <Password> 用户 <UserName> 的密码。
    如果指定了 *,
    则会提示您输入密码。
    -q 安静模式: 将所有输出抑制为标准
    输出。
    -gc 在 Active Directory 域服务
    全局编录中查询。
    -limit <NumObjects> 指定与给定条件匹配的要返回对象
    的数量,其中 <NumObjects>
    是要返回对象的数量。
    如果 <NumObjects> 的值是 0,
    则返回所有匹配的对象。如果没有
    指定这个参数,则默认显示前 100 个
    结果。
    {-uc | -uco | -uci} -uc 指定来自管道的输入或至管道的输出
    用 Unicode 格式。
    -uco 指定至管道或文件的输出
    用 Unicode 格式。
    -uci 指定来管道或文件的输入
    用 Unicode 格式。

    备注:
    dsquery 命令帮助您在目录中查找与指定搜索条件匹配的对象:
    dsquery 的输入是一个搜索条件,其输出是与该搜索匹配的对象列表。
    若要获得特定对象的属性,请使用 dsget 命令(dsget /?)。

    如果您提供的值包含空格,请在文本两边使用引号
    (例如,"CN=John Smith,CN=Users,DC=microsoft,DC=com")。

    如果您输入了多个值,这些值必须用空格隔开
    (例如,一系列可分辨名称)。

    示例:
    在给定组织单位(OU)中查找名称以 "jon" 开始并且帐户被禁止登录的所有用户,
    并显示他们的用户主体名称(UPN):

    dsquery user ou=Test,dc=microsoft,dc=com -o upn -name jon* -disabled

    只在当前域中查找名称以 "smith" 结束并且至少已有三个星期处于非活动状态
    的所有用户,并显示他们的 DN:

    dsquery user domainroot -name *smith -inactive 3

    在给定组织单位中查找 ou=sales,dc=microsoft,dc=com 的所有用户
    并显示他们的 UPN:
    dsquery user ou=sales,dc=microsoft,dc=com -o upn
  • dsadd

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    C:\Users\Administrator>dsadd user /?
    描述: 向目录中添加用户。

    语法: dsadd user <UserDN> [-samid <SAMName>] [-upn <UPN>] [-fn <FirstName>]
    [-mi <Initial>] [-ln <LastName>] [-display <DisplayName>]
    [-empid <EmployeeID>] [-pwd {<Password> | *}] [-desc <Description>]
    [-memberof <Group ...>] [-office <Office>] [-tel <Phone#>]
    [-email <Email>] [-hometel <HomePhone#>] [-pager <Pager#>]
    [-mobile <CellPhone#>] [-fax <Fax#>] [-iptel <IPPhone#>]
    [-webpg <WebPage>] [-title <Title>] [-dept <Department>]
    [-company <Company>] [-mgr <Manager>] [-hmdir <HomeDir>]
    [-hmdrv <DriveLtr:>] [-profile <ProfilePath>] [-loscr <ScriptPath>]
    [-mustchpwd {yes | no}] [-canchpwd {yes | no}]
    [-reversiblepwd {yes | no}] [-pwdneverexpires {yes | no}]
    [-acctexpires <NumDays>] [-disabled {yes | no}]
    [{-s <Server> | -d <Domain>}] [-u <UserName>]
    [-p {<Password> | *}] [-q] [{-uc | -uco | -uci}]
    [-fnp <FirstNamePhonetic>] [-lnp <LastNamePhonetic>]
    [-displayp <DisplayNamePhonetic>]

    参数:

    值 描述
    <UserDN> 必需项。要添加的用户的可分辨名称(DN)。
    如果省略了目标对象,则从标准输入(stdin)中读取。
    -samid <SAMName> 将用户的 SAM 帐户名设置为 <SAMName>。
    如果未指定,则 dsadd 尝试使用 <UserDN> 公用名的(CN)值
    中最多前 20 个字符创建 SAM 帐户名称。
    -upn <UPN> 将 upn 值设置为 <UPN>。
    -fn <FirstName> 将用户的名设置为 <FirstName>。
    -fnp <FirstNamePhonetic>
    将用户的名拼音设置为 <FirstNamePhoneic>。
    -mi <Initial> 将用户的中间名首字母设置为 <Initial>。
    -ln <LastName> 将用户的姓设置为 <LastName>。
    -lnp <LastNamePhonetic> 将用户的姓拼音设置为 <LastNamePhonetic>。
    -display <DisplayName> 将用户的显示名设置为 <DisplayName>。
    -displayp <DisplayNamePhonetic>
    将用户的显示名拼音设置为 <DisplayNamePhonetic>。
    -empid <EmployeeID> 将用户的雇员 ID 设置为 <EmployeeID>。
    -pwd {<Password> | *} 将用户密码设置为 <Password>。如果是 *,则会
    提示您输入密码。
    -desc <Description> 将用户描述设置为 <Description>。
    -memberof <Group ...> 使用户成为一个或多个组 <Group ...> 的成员
    -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> (采用 DN 格式)。
    -hmdir <HomeDir> 将用户主目录设置为 <HomeDir>。如果它是
    UNC 路径,则也必须通过 -hmdrv 指定将映射到此路径的
    驱动器号。
    -hmdrv <DriveLtr:> 将用户主驱动器号设置为 <DriveLtr:>
    -profile <ProfilePath> 将用户的配置文件路径设置为 <ProfilePath>。
    -loscr <ScriptPath> 将用户的登录脚本路径设置为 <ScriptPath>。
    -mustchpwd {yes | no} 用户是否必须在下次登录时更改密码。
    默认值: no。
    -canchpwd {yes | no} 用户是否可以更改密码。如果
    -mustchpwd 为 "yes",则它应该为 "yes"。默认值: yes。
    -reversiblepwd {yes | no}
    是否使用可还原的加密来存储用户密码。默认值: no。
    -pwdneverexpires {yes | no}
    用户密码是否永不过期。默认值: no。
    -acctexpires <NumDays> 将用户帐户设置为从本日开始的 <NumDays>
    天后过期。值为 0 表示帐户在本日结束后过期;正值表示
    帐户在将来过期;负值表示帐户已经过期,设置的过期日
    期在过去;字符串值 "never" 表示帐户永不过期。
    -disabled {yes | no} 是否禁用用户帐户。默认值: 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> 的密码。如果输入 *,则会提示您
    输入密码。
    -q 安静模式: 将所有输出抑制为标准输出。
    {-uc | -uco | -uci} -uc 指定来自管道的输入或至管道的输出用 Unicode 格式。
    -uco 指定至管道或文件的输出用 Unicode 格式。
    -uci 指定来自管道或文件的输入用 Unicode 格式。

    备注:
    如果您在命令提示符处没有提供目标对象,则会从标准
    输入(stdin)中获取目标对象。可以通过键盘、重定向文件
    或另一个命令的管道输出接受 Stdin 数据。
    若要通过键盘或在重定向文件中标记 stdin 数据的结束,
    请使用 Control+Z 表示文件结束(EOF)。

    如果您提供的值包含空格,请在文本两边使用引号
    (例如,"CN=John Smith,CN=Users,DC=microsoft,DC=com")。

    如果您输入了多个值,这些值必须用空格隔开
    (例如,一系列可分辨名称)。

    可以使用特殊令牌 $username$ (不区分大小写)将 SAM
    帐户名放在一个参数的值中。例如,如果目标用户 DN
    是 CN=Jane Doe,CN=users,CN=microsoft,CN=com 并且 SAM 帐户名
    属性是 "janed",则 -hmdir 参数可以是
    以下替换值:

    -hmdir \users\$username$\home

    -hmdir 参数的值可修改为以下值:

    - hmdir \users\janed\home
  • dsrm

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    C:\Users\Administrator>dsrm /?
    描述: 该命令删除目录中的对象。

    语法: dsrm <ObjectDN ...> [-noprompt] [-subtree [-exclude]]
    [{-s <Server> | -d <Domain>}] [-u <UserName>]
    [-p {<Password> | *}] [-c] [-q] [{-uc | -uco | -uci}]

    参数:

    值 描述
    <ObjectDN ...> 必需项/stdin。
    要删除的对象的一个或多个
    可分辨名称(DN)。如果省略了此参数,
    则会从标准输入(stdin)中获取。
    -noprompt 安静模式: 不要提示删除确认。
    -subtree [-exclude] 删除对象子树以下的对象或所有对象。
    -exclude 删除子树时
    不删除对象本身。
    {-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 格式。

    备注:
    如果您提供的值包含空格,请在文本两边使用引号
    (例如,"CN=John Smith,CN=Users,DC=microsoft,DC=com")。

    如果您输入了多个值,这些值必须用空格隔开
    (例如,一系列可分辨名称)。

    可分辨名称中不是用作分隔符的逗号必须用反斜杠("\")字符转义
    (例如,"CN=Company\, Inc.,CN=Users,DC=microsoft,DC=com")。

    用在可分辨名称中的反斜杠必须用一个反斜杠转义
    (例如,
    "CN=Sales\\ Latin America,OU=Distribution Lists,DC=microsoft,DC=com")。

    示例:
    若要删除名称为 "Marketing" 的组织单位(OU)和在该组织单位下的所有对象,
    请使用以下命令:

    dsrm -subtree -noprompt -c ou=Marketing,dc=microsoft,dc=com

    若要删除名称为 "Marketing" 的组织单位下的所有对象,但不删除该组织单位,
    请使用带 -exclude 参数的命令:

    dsrm -subtree -exclude -noprompt -c "ou=Marketing,dc=microsoft,dc=com"
  • dsmove

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    C:\Users\Administrator>dsmove /?
    描述: 该命令移动或重新命名该目录中的对象。

    语法: dsmove <ObjectDN>
    [-newparent <ParentDN>]
    [-newname <NewName>]
    [{-s <Server> | -d <Domain>}]
    [-u <UserName>]
    [-p {<Password> | *}]
    [-q]
    [{-uc | -uco | -uci}]

    参数:

    值 描述
    <ObjectDN> 必需项/stdin。要移动或重命名的对象的可分辨名称(DN)。
    如果该参数被省略,则将从标准输入(stdin)中获得。
    -newparent <ParentDN> 对象应移动到的新父位置的 DN。
    -newname <NewName> 对象应重命名的新相对可分辨名称(RDN)值。
    {-s <Server> | -d <Domain>}
    -s <Server> 用 <Server> 名称连接到 AD DC/LDS 实例。
    -d <Domain> 连接到 <Domain> 域中的 AD DC。
    默认: 在该登录域的一个 AD DC。
    -u <UserName> 以 <UserName> 连接。默认: 已登录用户。
    用户名可以是: 用户名、域\用户名或
    用户主体名称(UPN)。
    -p <Password> 用户 <UserName> 的密码。如果使用 *,
    则命令会提示输入密码。
    -q 安静模式: 将所有输出抑制为标准输出。
    {-uc | -uco | -uci} -uc 指定从管道的输入或到管道的输出采用 Unicode 格式。
    -uco 指定到管道或文件的输出采用 Unicode 格式。
    -uci 指定从管道或文件的输入采用 Unicode 格式。

    备注:
    如果您提供的值包含空格,请在文本两边使用引号
    (例如,"CN=John Smith,CN=Users,DC=microsoft,DC=com")。

    如果您输入了多个值,这些值必须用空格隔开
    (例如,一系列可分辨名称)。

    可分辨名称中不是用作分隔符的逗号必须用反斜杠("\")字符转义
    (例如,"CN=Company\, Inc.,CN=Users,DC=microsoft,DC=com")。

    用在可分辨名称中的反斜杠必须用一个反斜杠转义
    (例如,
    "CN=Sales\\ Latin America,OU=Distribution Lists,DC=microsoft,DC=com")。

    示例:
    用户 Jane Doe 的用户对象可以用以下命令重新命名为 Jane Jones:

    dsmove "cn=Jane Doe,ou=sales,dc=microsoft,dc=com" -newname "Jane Jones"

    同一用户可以用以下命令从 Sales 组织移动到 Marketing 组织:

    dsmove "cn=Jane Doe,ou=sales,dc=microsoft,dc=com"
    -newparent ou=Marketing,dc=microsoft,dc=com

    该用户的重新命名和移动操作可以和以下命令一起使用:

    dsmove "cn=Jane Doe,ou=sales,dc=microsoft,dc=com"
    -newparent ou=Marketing,dc=microsoft,dc=com -newname "Jane Jones"
  • dsmod

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    C:\Users\Administrator>dsmod user /?
    描述: 修改目录中现有的用户。

    语法: dsmod user <UserDN ...> [-upn <UPN>] [-fn <FirstName>]
    [-mi <Initial>] [-ln <LastName>] [-display <DisplayName>]
    [-fnp <first name phonetic>] [-lnp <last name phonetic>]
    [-displayp <display name phonetic>]
    [-empid <EmployeeID>] [-pwd {<Password> | *}]
    [-desc <Description>] [-office <Office>] [-tel <Phone#>]
    [-email <Email>] [-hometel <HomePhone#>] [-pager <Pager#>]
    [-mobile <CellPhone#>] [-fax <Fax#>] [-iptel <IPPhone#>]
    [-webpg <WebPage>] [-title <Title>] [-dept <Department>]
    [-company <Company>] [-mgr <Manager>] [-hmdir <HomeDir>]
    [-hmdrv <DriveLtr>:] [-profile <ProfilePath>]
    [-loscr <ScriptPath>] [-mustchpwd {yes | no}]
    [-canchpwd {yes | no}] [-reversiblepwd {yes | no}]
    [-pwdneverexpires {yes | no}]
    [-acctexpires <NumDays>] [-disabled {yes | no}]
    [{-s <Server> | -d <Domain>}] [-u <UserName>]
    [-p {<Password> | *}] [-c] [-q] [{-uc | -uco | -uci}]

    参数:

    值 描述
    <UserDN ...> 需要项/stdin。要修改的一个或多个用户的可分辨名
    称(DN)。如果目标对象被省略,会从标准输入(stdin)
    中获得,以支持通过管道将另一个命令的输出用作该命
    令的输入。
    -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 格式。

    备注:
    如果您提供的值包含空格,请在文本两边使用引号
    (例如,"CN=John Smith,CN=Users,DC=microsoft,DC=com")。

    如果您输入了多个值,这些值必须用空格隔开
    (例如,一系列可分辨名称)。

    特殊令牌 $username$ (不区分大小写)可用于将
    SAM 帐户名放在 -webpg、-profile、-hmdir 和
    -email 参数的值中。

    例如,如果目标用户 DN 是
    CN=Jane Doe,CN=users,CN=microsoft,CN=com,SAM
    帐户名属性是 "janed",则 -hmdir 参数可以是以下
    替换值:

    -hmdir \users\$username$\home

    -hmdir 参数值可修改为以下值:

    - hmdir \users\janed\home

    示例:
    重新设置用户密码:

    dsmod user "CN=John Doe,CN=Users,DC=microsoft,DC=com"
    -pwd A1b2C3d4 -mustchpwd yes

    将多个用户密码重新设置为公用密码
    并强制他们在下次登录时更改密码:

    dsmod user "CN=John Doe,CN=Users,DC=microsoft,DC=com"
    "CN=Jane Doe,CN=Users,DC=microsoft,DC=com" -pwd A1b2C3d4 -mustchpwd yes

    同时禁用多个用户帐户:

    dsmod user "CN=John Doe,CN=Users,DC=microsoft,DC=com"
    "CN=Jane Doe,CN=Users,DC=microsoft,DC=com" -disabled yes

    用 $username$ 令牌将多个用户的配置文件路径修改为
    公用路径:

    dsmod user "CN=John Doe,CN=Users,DC=microsoft,DC=com"
    "CN=Jane Doe,CN=Users,DC=microsoft,DC=com" -profile \users\$username$\profile