我的主要问题在标题中。第一部分是解释我为什么问这个问题。
我正在编写一个 PowerShell 脚本,它将使 IT 部门能够更轻松地为最终用户提供域管理员帐户,以便他们进入 UAC 提示以获取批准的更新和软件安装。这不会授予他们的帐户更多权力,他们也无法自己运行脚本。
伪代码:
如果临时管理员帐户被禁用{
- 启用临时管理员账户
- 将密码重置为随机生成的密码
- 显示 IT 技术人员的密码(IT 技术人员向最终用户发送 UN:Temp_Admin PW:w3ocxf8IP)
- 暂停脚本 - 直到技术人员看到最终用户已完成
- 将账户重置为新的随机密码(不显示)
- 禁用帐户
} else 睡眠 30 秒 - 重新开始
在实施之前我有几个问题:
是否可以在多个 DC 之间同步临时管理员帐户(不是所有 AD)?我们在美国各地都有办事处,所以我担心如果该帐户在德克萨斯州使用,而纽约有人试图使用它,如果帐户未同步,事情就会变得一团糟。
假设这个脚本被大量使用,我是否只是通过启用/重置/重置/禁用密码和帐户来要求 AD 或帐户错误?
我更像是一名程序员而不是系统管理员,所以我不知道 AD 中的所有细节(影响)。
答案1
要同步 Active Directory 中的单个用户帐户,可以使用 Cmdlet Sync-ADObject
。要获取所有域控制器,可以使用 CmdletGet-ADGroupMember 'Domain Controllers'.
将它们放在一起如下所示:
Get-ADGroupMember 'Domain Controllers' | foreach {Sync-ADObject -object 'CN=test user, OU=TestOU, DC=company, DC=com' -source DC1 -Destination $_.name}
您可以;Write-Host "$_.name"
在中间添加$_.name
和花括号}
来显示其同步进度。
当我开始使用工作脚本时,我的另一个问题得到了回答。重置密码通常会导致 Active Directory 锁定帐户。为避免这种情况,请使用 Cmdlet:
Unlock-ADAccount -Identity Test.User -ErrorAction Stop
如果解锁过程出现问题,错误操作将阻止代码继续执行。