【发布时间】:2018-11-06 20:20:38
【问题描述】:
我正在尝试运行一个将本地管理员添加到计算机的命令。但是,我正在努力将其与脚本结合起来,以将其推送到 Active Directory 中特定 OU 下的所有域计算机。
下面是脚本的第一部分,是我用来创建用户的命令。
我还有一个脚本可以将所有必需的 OU 计算机拉入 CSV,但我需要将以下脚本推送到此 CSV 中的 PC。这可能吗? 我只希望它运行一次,而不是作为启动脚本,因为我不希望它创建多个用户。
$Username = "user"
$Password = "Password"
$group = "Administrators"
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$existing = $adsi.Children | where {
$_.SchemaClassName -eq 'user' -and $_.Name -eq $Username
}
if ($existing -eq $null) {
Write-Host "Creating new local user $Username."
& NET USER $Username $Password /add /y /expires:never
Write-Host "Adding local user $Username to $group."
& NET LOCALGROUP $group $Username /add
}
Write-Host "Ensuring password for $Username never expires."
& WMIC USERACCOUNT WHERE "Name='$Username'" SET PasswordExpires=FALSE
【问题讨论】:
-
我会使用组策略来执行此操作:group-policy-creating-a-standard-local-admin-account
-
这种方式是否会创建一个与域无关的适当本地管理员?因此,如果要从域中删除 PC,我们仍然可以使用此本地管理员帐户登录它
-
您也可以使用组策略在计算机上设置本地管理员。
-
我不相信该扩展程序不再起作用,因为在 GPO 中设置密码并不安全。
-
LAPS (technet.microsoft.com/en-us/mt227395.aspx) 会更好吗?它让工作站管理内置的本地管理员帐户密码(即使内置帐户被重命名为其他帐户)。具有已知的部署方法,避免在脚本中使用管理员凭据,为每台机器使用唯一的密码,因此损害一个盒子不会提供对其他机器的访问权限,并允许管理员在需要时获取帐户密码(我已经设置了自己- 服务门户,用户也可以获得 他们的 计算机的密码,但这取决于是否有用户=>计算机映射)。
标签: powershell active-directory