在 Server 2008 上通过 CSV DSADD 用户

在 Server 2008 上通过 CSV DSADD 用户

从今天早上开始我一直尝试向 Server 2008 上的新 AD 中添加 100 个用户。

我在 Excel 文件中拥有的字段有:

姓氏、名字、用户名、密码、组(新用户、高级用户、超级用户)、电子邮件地址(不交换用户详细信息中的信息)。

以下是我根据某人的建议从网站上复制的脚本:

脚本代码:

---[AddUser.cmd]----
@echo off
setlocal

:: *** csv-File with the name, first name, and user name:
set UserFile=C:\Users\Administrator\Desktop\scriptusers\users1.csv

:: *** Distinguished Name of the container to add the new user to:
set UsersDN=OU=newcompany,DC=domain,DC=com

for /f "tokens=1-4 delims=," %%a in ('type "%UserFile%"') do (
  set LastName=%%a
  set FirstName=%%b
  set NewUser=%%c
  set Password=%%d
  call :process
)
goto :leave

:process
set UPN=%NewUser%@%UserDNSDomain%
set DisplayName=%LastName%, %FirstName%
set NewUserDN=CN=%NewUser%,%UsersDN%
set Password=password

echo You are about to create a new user with the following properties:
echo.
echo Username:     %NewUser%
echo Display name: %DisplayName%
echo UPN:          %UPN%
echo OU:           %UsersDN%
echo.
echo Hit ^<ctrl-c^> to stop, any other key to create the user.
pause >NUL
echo.

:: *** Test mode: Remove the "ECHO" in front of the following line to run the script for real:
dsadd user "%NewUserDN%" -samid %NewUser% -upn %UPN% -fn "%FirstName%" -ln "%LastName%" -display "%DisplayName%" -pwd "%Password%" -desc "%DisplayName%" -mustchpwd yes -disabled no

:leave

现在,我将 excel 文件导出到 csv,根据自己的喜好编辑了脚本,但当我运行它时,它只会添加一个用户(csv 上的第一个用户),否则会出现密码复杂性错误。我将脚本中的密码更改为足够复杂,但没有成功。

如果有人能告诉我如何一步一步地做到这一点,我将不胜感激;我是脚本编写和理解脚本的新手。

感谢并问候 AerAps

答案1

您可以使用 PowerShell。它使这个过程变得不那么麻烦,脚本也更直接。我不记得它是否默认包含在 Server 2008 中。如果没有,您可以使用服务器管理器安装它。

它会自动为您导入 csv。您需要做的就是确保 CSV 具有列标题。请参阅下面的代码以获取快速示例。您可以扩展下面的 dsadd 命令以满足您的需要。

$inputFile = Import-CSV  <insert filepath here>

foreach($line in $inputFile)
{
    dsadd user -samid $line.Username -pwd $line.Password
}

答案2

尝试使用 csvde,很好的资源这里,它可能是这项工作的最佳工具。

答案3

相关内容