【发布时间】:2018-08-17 13:40:54
【问题描述】:
设置:
我们都在域环境中。 Active Directory 是 Windows Server 2012 R2
客户端工作站混合了 Windows 10 版本(1703 和 1709)
需要在所有工作站上创建用户“Servis”并将其放置到本地管理员组。我将输入一个带有主机名的文本文件。
这是我试图让它工作的脚本,但没有成功。
用户已创建,但用户未添加到本地管理员组。
这是我得到的错误:
在 WinNT://WS-TEST 上创建 Service23 时出错:检索成员“add”时发生以下异常:“找不到网络路径。
$computers = Get-Content -path C:\Scripts\CreateLocalUser\New\Computers.txt
$username = "Servis"
$password = "P4$$w0rd!@#"
Foreach ($computer in $computers) {
$users = $null
$computer = [ADSI]"WinNT://$computername"
Try {
$users = $computer.psbase.children | select -expand name
if ($users -like $username) {
Write-Host "$username already exists" -ForegroundColor Green
}
Else {
$user_obj = $computer.Create("user", "$username")
$user_obj.SetPassword($password)
$user_obj.SetInfo()
$user_obj.Put("description", "$username")
$user_obj.SetInfo()
$user_obj.psbase.invokeset("AccountDisabled", "False")
$user_obj.SetInfo()
$users = $computer.psbase.children | select -expand name
if ($users -like $username) {
Write-Host "$username has been created on $($computer.name)"
$group = [ADSI]("WinNT://" + $computername + "/administrators,group")
$group.add("WinNT://" + $computername + "/" + $username + ",user")
}
Else {
Write-Host "$username has not been created on $($computer.name)"
}
}
}
Catch {
Write-Host "Error creating $username on $($computer.path): $($Error[0].Exception.Message)"
}
}
【问题讨论】:
-
改用
New-LocalUser、Add-LocalGroupMember和Invoke-Command。
标签: powershell