我目前正在通过 PowerShell 和 Batch 编写大量用户创建脚本。目前该脚本有 95 行,是我用 Batch 编写的最大的脚本。
我希望脚本尽可能自动化,并计划将其提供给需要帮助创建大量用户的客户。为此,我有一个 21 行的设置文件,我需要的变量之一是完整的域名(dsadd 需要这个)
这样做的问题是,用户可能有任意数量的变量——从测试实验室中的两个到学校等地方的四个。到目前为止,我能够分离令牌,但是我需要将它们全部存储为变量,如 %%a、%%b,而不是将所有内容存储为 %%a。令牌的数量将是动态的,因此我需要某种解决方案。像这样的东西(是的,我知道这不是正确的语法):
if number of tokens=4 (
dsadd "cn=%%a,ou=%%b,dc=%DSuffix1%,dc=%DSuffix2%,dc=%DSuffix3%,dc=%Dsuffix4% )
在该行中,%%a 和 %%b 是稍后在从用户列表 excel 文件读取的代码中另一个 for 循环中的变量。对于从两个令牌到四个令牌的任何东西,我都需要类似的东西。我不介意这个问题的解决方案是否不是纯粹的 BATCH,但这是我的首选。
谢谢。
编辑:这是我目前拥有的 for 循环,它嵌套在另一个更大的 for 循环中,该循环添加了用户:
for /f "tokens=1,2,3,4 delims=." %%a in (Settings.ini) do (
set L=22
if !L!=22 set DSuffix1=%%a&& set DSuffix2=%%b&& set DSuffix3=%%c&& set DSuffix4=%%d
)
settings.ini 文件包含各种设置,例如 Exchange 服务器和用户主目录的路径。我需要解释的行是第 22 行,如下所示:
DOMAINNAME.SUFFIX(.SUFFIX.SUFFIX.SUFFIX) 一个真实的例子是:testlab.local 或 testlab.ghamilton.local
对于测试实验室,设置只能是域名和后缀,但对于学校或机构等其他设置,域后缀的数量最多可以达到四个。我想解释一下。
编辑: 管理正确缩进代码,对不起。