ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

批量创建Azure DevOps Server 的账户

2022-01-28 01:33:03  阅读:209  来源: 互联网

标签:AD 用户 no 指定 DevOps 添加 Azure yes Server


概述

当我们部署一套全新的Azure DevOps Server服务器,如果在企业中之前没有应用Active Directory(简称AD,活动目录)作为认证服务器,就需要在AD服务器上为每个用户新建登录账户。新建账户的过程比较简单,参考我之前分享的文档就可以快速为每个用户在AD用户管理控制台上账户;但是,手工创建账户的过程比较繁琐,如果需要创建成百上千的账户,这个工作就会变成管理员的加班工作的噩梦;并且,由于是手工操作,不可避免的导致错误,带来后续潜在的问题。

为了解决创建多个账户的问题,本文介绍使用脚本的方式,批量创建AD账户的方法。使用批量创建AD账户的方法,可以一键创建成百上千的账户,还可以避免创建账户过程中的误操作,是一个事半功倍的方法。

操作方法

  1. 首先,我们需要收集用户信息。
    • 例如在本文的示例中,在创建AD域账户过程中,需要保存下面的几个关键信息:姓名、 部门、 账户、 电话、 邮箱、 密码。
    • 我们将收集到的用户信息保存在Excel中,然后将其另存为csv文件,并将其保存在AD服务器的磁盘中,例如本文的示例中我存在AD服务器的C:\temp\create-users.csv。
    • 特别注意,csv文档的编码格式需要为ANSI,不要使用默认的UTF-8,如下图所示:

图一:用户示例

image

图二:保持为csv文件

image

  1. 创建AD组织单元
    在AD服务器的“用户和计算机”控制台中,创建号用户所在的组织单元(Ognization Unit,简称OU),如下图:
    图三:Active Directory 用户和计算机控制台

image

  1. 编写创建账户的脚本
    在AD服务器中,除了可以使用控制台手动创建用账户,还可以使用"dsadd user“工具在命令行窗口中创建账户。
    我们在结合bat脚本,就可以编写一个批量创建账户的小程序,程序示例如下:

for /f "tokens=1,2,3,4,5,6 delims=," %a in (C:\temp\users.csv) do dsadd user "cn=%a,ou=%b,ou=北京宏软,dc=ads,dc=local" -samid %c -upn %c@ads.local -ln %a -tel %d -email %e -display %a -pwd %f -mustchpwd no -pwdneverexpires yes -disabled no

注意,上面的脚本中,不能有换行回车。
在AD服务器上,使用管理员身份打开命令行窗口,并允许上面的命令,就会自动创建好所有的用户账户,如下图:

image

当批量创建好域账户后,我们就可以在Azure DevOps Server中使用这些账户,例如赋予用户权限,如下图:

image

对于不太熟悉bat脚本的同学,我在这里解释一下上面的脚本含义:

  • For /f "tokens=1,2,3,4,5,6 delims=,"

    • “tokens=1,2,3,4,5,6” 这段是声明这里有6个变量。分别是%a,%b,%c,%d,%e,%f。分别对应EXCEL表格A,B,C,D,E,F列。
    • ”Delims=,”表示分隔符是“,”号。
  • %a in (C:\temp\users.csv)
    这段是表示全部变量的来源。这里就是指变量都是来源于之前保存在C盘的EXCEL的 CSV文件。

  • do dsadd user
    这个是添加创建用户命令。

  • "cn=%a,ou=%b,ou=北京宏软,dc=ads,dc=local"
    cn表示显示的名称,ou表示创建组织单元的路径。
    假设我的OU路径比较深,则我们要把除最后一级OU之前的OU写在执行的命令中。
    ou写法:1级ou写在最后面,2级ou写在1级前面,3级写在2级前......依次类推,用逗号隔开。最后的一级OU目录是写在.cvs的文件中的OU。

  • -samid %c -upn %c@ads.local
    这句是指所要用户的名称和upn后缀。这个upn的后缀最好和用户名在一块,因为每个用户名不会一样。

  • -ln %a -tel %d -email %e -display %a -pwd %f

    • ln,是指用户的姓
    • tel,电话号码
    • display,显示名称
    • pwd,密码
  • mustchpwd no
    这个是“首次登录是否修改密码” ,yes是开启,no是关闭。

  • pwdneverexpires yes
    这个是“密码永不过期” ,yes是开启 ,no是关闭。

  • disabled no
    这个是用户创建之后是不是禁用状态,yes是禁用,no是不禁用。

另外,对于dsadd user工具的参加,下面做一个比较完善的说明

dsadd命令的可使用参数释议:

  • UserDN:必需。指定要添加的用户的可分辨名称。如果省略可分辨名称,则将从标准输入 (stdin) 中获取该名称。
  • samid SAMName:指定 SAM 名称作为该用户的唯一 SAM 帐户名(例如,Linda)。如果未指定,dsadd 将尝试使用 UserDN 的公用名 (CN) 值的至多前 20 个字符创建 SAM 帐户名。
  • upn UPN:指定要添加的用户的用户主体名称(例如,Linda@SZHIT.CLOUD.COM)。
  • fn FirstName:指定要添加的用户的名字。
  • mi Initial:指定要添加的用户的中间名首字母。
  • ln LastName:指定要添加的用户的姓氏。
  • display DisplayName:指定要添加的用户的显示名。
  • empid EmployeeID:指定要添加的用户的雇员 ID。
  • pwd {Password | *}:指定将用户密码设置为 Password 或 *。如果设置为 *,将提示您输入用户密码。
  • desc Description:指定要添加的用户的描述。
  • memberof GroupDN ...:指定希望用户加入的组的可分辨名称。
  • office Office:指定要添加的用户的办公室位置。
  • tel PhoneNumber:指定要添加的用户的电话号码。
  • email Email:指定要添加的用户的电子邮件地址。
  • hometel HomePhoneNumber:指定要添加的用户的家庭电话号码。
  • pager PagerNumber:指定要添加的用户的寻呼机号码。
  • mobile CellPhoneNumber:指定要添加的用户的移动电话号码。
  • fax FaxNumber:指定要添加的用户的传真号码。
  • iptel IPPhoneNumber:指定要添加的用户的 IP 电话号码。
  • webpg WebPage:指定要添加的用户的 Web 页的 URL。
  • title Title:指定要添加的用户的称谓。
  • dept Department:指定要添加的用户的部门。
  • company Company:指定要添加的用户的公司信息。
  • mgr ManagerDN:指定要添加的用户的管理器的可分辨名称。
  • hmdir HomeDirectory:指定要添加的用户的主目录位置。如果 HomeDirectory 是作为通用命名约定 (UNC) 路径给出,则必须使用 -hmdrv 参数指定要映射到此路径的驱动器号。
  • hmdrv DriveLetter::指定要添加的用户的主目录驱动器号(例如,E:)。
  • profile ProfilePath:指定要添加的用户的配置文件路径。
  • loscr ScriptPath:指定要添加的用户的登录脚本路径。
  • mustchpwd {yes | no}:指定用户是否必须在下次登录时更改其密码(yes 必须更改,no 不必更改)。默认情况下,用户不必更改密码 (no)。
  • canchpwd {yes | no}:指定用户是否可以更改其密码(yes 可以更改,no 根本不能更改)。默认情况下,允许用户更改密码 (yes)。如果 -mustchpwd 参数的值为 yes,则该参数的值必须为 yes。
  • reversiblepwd {yes | no}:指定是否应使用可逆加密来存储用户密码(yes 表示应该,no 表示不应该)。默认情况下,用户不能使用可逆加密 (no)。
  • pwdneverexpires {yes | no}
    指定用户密码是否永不过期(yes 表示是,no 表示不是)。默认情况下,用户密码会过期 (no)。
  • acctexpires NumberOfDays
    指定从今天算起用户帐户将到期的天数。0 值表示将今天的结束时间设置为到期时间。正值表示将将来的时间设置为到期时间。负值表示将以前的时间设置为到期时间。值 never 将帐户设置为永不过期。例如,0 值表示该帐户在今天结束时过期。值 -5 表示该帐户 5 天前就已经到期,并将以前的时间设置为到期日期。值 5 表示该帐户将在 5 天后到期。
  • disabled {yes | no}
    指定是否禁用用户帐户登录(yes 禁用登录,no 允许登录)。默认情况下,启用用户帐户登录 (no)。
    {-s Server | -d Domain}
    连接到指定的远程服务器或域。默认情况下,计算机与登录域中的域控制器相连接。
  • u UserName:
    指定用户要用于登录到远程服务器的用户名。默认情况下,-u 使用用户登录时的用户名。您可以使用下列任一格式指定用户名:
    用户名(例如 Linda)
    域\用户名(例如 SZHIT\Linda)
    用户主体名称 (UPN)(例如 Linda@SZHIT.CLOUD.COM
  • p {Password | *}:指定使用密码或 * 登录到远程服务器。如果键入 *,将提示您输入密码。
  • q:将所有输出降低为标准输出(安静模式)。

如果需要,你还可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料,也欢迎通过下面的联系方式与我沟通,相互学习,相互提高!


https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君
在这里插入图片描述

标签:AD,用户,no,指定,DevOps,添加,Azure,yes,Server
来源: https://www.cnblogs.com/danzhang/p/15851725.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有