windows 命令行批量创建用户

如有一个csv文件,格式如下,通过windows批量创建用户,要求 密码永不过期,用户不可更改密码。工号为用户名,密码为密码。姓名为显示名称,部门为描述信息。

工号,密码,姓名,部门,
AB001,123456,张三,财务部,
AB002,456789,李四,质量部,
...

这是一个用于处理文件内容的 for /f 循环语句脚本

解析该语句中的各个部分:

/f 表示对文件进行迭代循环。
"usebackq" 告诉循环命令使用反引号包围的文件名称作为文件名,而不仅仅是一个字符串(对于带有空格的文件名)。
skip=1 表示跳过第一行,即标题行。
tokens=1-4 指定要提取的字段范围。在这个例子中,它表示将每行以逗号(,)作为分隔符分成四个字段,并使用变量 %%a、%%b、%%c 和 %%d 分别表示这些字段。
delims=, 用逗号作为字段间的分隔符。
因此,该 for /f 循环遍历从 %csv_file% 文件中读取的行(不包括第一行),并将每行按逗号进行分割,将结果赋值给相应的变量(%%a、%%b、%%c 和 %%d)。然后,循环代码块中的操作可以使用这些变量来进行进一步处理。
@echo off
setlocal enabledelayedexpansion

set "csv_file=users.csv"
set "log_file=log.txt"


for /f "usebackq skip=1 tokens=1-4 delims=," %%a in ("%csv_file%") do (
    set "username=%%a"
    set "password=%%b"
    set "displayname=%%c"
    set "description=%%d"

    net user !username! !password! /add /passwordchg:no /expires:never  >> "%log_file%"

    if %errorlevel% equ 0 (
        echo User !username! created successfully.  >> "%log_file%"
    ) else (
        echo Error creating user !username!.   >> "%log_file%"
    )

    wmic useraccount where "Name='!username!'" set Description="!description!" >> "%log_file%"
    wmic useraccount where "Name='!username!'" set PasswordExpires=false  >> "%log_file%"
    wmic useraccount where "Name='!username!'" set FullName="!displayname!"  >> "%log_file%"
    
)

echo -----------Script completed. Press any key to exit.-----------


endlocal

  • 请根据您的需要,将上述代码保存为批处理文件(例如create_users.bat)。确保将CSV文件路径的csv_file变量设置为实际的CSV文件路径。

  • 该脚本使用了FOR /F命令来读取CSV文件,并使用逗号作为分隔符。每一行的字段会被分别赋值给对应的变量。然后,使用NET USER命令来创建用户,使用WMIC命令禁用远程登录,并使用WMIC命令设置显示名称和备注信息。

setlocal enabledelayedexpansion 和 endlocal 是用于启用和禁用批处理脚本中的 "延迟变量扩展" 功能。

在批处理中,默认情况下,对变量的引用是立即解析的,也就是说,在执行时它们只会被替换成相应的值一次。但是,有时我们希望在批处理的执行过程中,在每次循环或条件判断中可以动态地读取和更新变量的值。

启用延迟变量扩展后,变量使用叹号(!)而不是百分号(%)进行包围,以表示它是一个可以被延迟解析的变量。这样可以实现更灵活的变量操作。

setlocal enabledelayedexpansion 命令将启用延迟变量扩展功能,endlocal 命令则用于恢复到原始的环境状态并关闭延迟变量扩展。

在上述的脚本中,enabledelayedexpansion 被启用后,才能在 for 循环的代码块中使用叹号语法(例如:!username!)来获取变量的延迟解析值。

请注意,延迟变量扩展功能在某些情况下可能会导致意料之外的结果。因此,在使用延迟变量扩展时,需谨慎处理变量的处理和引用,以确保正确的解析和结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不仙520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值