我经常设置需要 Active Directory 帐户的研究和开发环境。由于我们将这些环境置于隔离网络中,因此每个环境都需要自己的 Active Directory。如何使用 powershell 创建新的 Active Directory 帐户。
答案1
我不确定您是否正在寻找一个可以获取姓名、密码等列表的脚本,但以下命令可以创建一个新用户。UserPrincipalName 是可选的。在这种情况下,不使用电子邮件。
New-ADUser -SamAccountName nnn2 -Name "nnn2" -UserPrincipalName nnn2@jj -AccountPassword (ConvertTo-SecureString -AsPlainText "somePassword" -Force) -Enabled $true -PasswordNeverExpires $true -Path 'CN=Users,DC=jjdomain,DC=net'
如果您希望在受信任的域中创建用户,请添加-服务器 DNS. 域至上述命令
答案2
我建议调查一下 Quest 的 AD cmdlet:
http://www.quest.com/powershell/activeroles-server.aspx
新的 AD 用户将是:
new-QADUser -name 'user1' -ParentContainer 'OU=companyOU,DC=company,DC=com' -samAccountName 'user1' -UserPassword 'P@ssword'
但是,对于“纯”Powershell,Shay 建议使用 Idera 脚本,这样可以节省您使用其他 cmdlet 的时间。请注意,如果您要费心下载脚本,不妨下载 Quest cmdlet。
答案3
我采纳了布拉德的上述回答,并在下面添加了一些细节(感谢布拉德让我朝这个方向思考):
输入 CSV 文件:
cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName
Joe Smith,Joe,Smith,jsmith,Joe Smith,[email protected]
Susan Johnson,Susan,Johnson,sjohnson,Susan Johnson,[email protected]
代码:
$inputFile = Import-CSV <insert filepath here>
foreach($line in $inputFile)
{
## need to add quotes around DSN
$dsn = "`"cn="+$line.cn+",ou=userou,dc=domain,dc=com`""
$samid = $line.sAMAccountName
$ln = $line.sn
$fn = $line.givenname
$dn = $line.displayname
## need to add quotes around display name
$dn2 = "`"$dn`""
$upn = $line.UserPrincipalName
cmd /c "dsadd user $dsn -samid $samid -ln $ln -fn $fn -display $dn2
-upn $upn -mustchpwd yes -pwd TempP@assw0rd"
write-host `n
}
祝你好运!
答案4
如果你只是在不同的网络/域上设置相同的用户,那么一个普通的 .cmd 文件就可以了。只需向添加为每个用户指定命令。
在 powershell 脚本中间调用 dsadd 或 dsmod 也可以。你甚至可以有一个用户名/密码的 CSV 文件,你可以使用 powershell 脚本导入它,然后通过调用 dsadd 或 dsmod 循环遍历每一行,如下所示:
$inputFile = Import-CSV <insert filepath here>
foreach($line in $inputFile)
{
dsadd user -samid $line.Username -pwd $line.Password
}
ds 命令(dsadd、dsmod 等)与活动目录角色一起安装,因此一旦启动并运行 AD,它们即可使用。