我在PowerShell脚本上一整天都在为Active Directory中的一些特殊客户帐户工作。这些帐户是根据特定分类法创建的,这对于AD和某些外部应用程序之间的某些用户映射至关重要。我们只关心UPN名称(例如joe.blogs@domain.com),并且不关心Windows 2000之前的版本和#2000;帐户名称已格式化。
Windows 2000之前的问题'但帐户名长度限制为20个字符。我只是想把它缩短,但这会导致重复,这是不允许的(甚至是不可能的)。
所以我想知道是否有一种方法可以生成随机的SAM帐户名称。然后脚本将检查该帐户是否已经存在,如果是,则将其再次随机化,直到它获得唯一值。然后使用已生成的SAM创建帐户。
我需要帮助的是生成随机SAM并检查是否存在具有此类SAM的帐户。其余的我可以处理:)
这一切都可能吗?请注意,我只想询问如何处理它 - 而不是整个代码。
答案 0 :(得分:1)
我在不久前在SO写了一个随机数生成器。
$chars = [char[]]"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
[string](($chars[0..25]|Get-Random)+(($chars|Get-Random -Count 14) -join ""))
chars定义允许的字符,第二行从整个集合中获取一个随机的大写字符,其中包含14个字符。应该很容易添加前缀并测试名称是否已存在。
答案 1 :(得分:1)
我的意思是如果你不关心它是字符,你可以随便做一些随机数
示例(理论上可行)
$randomNumber = Get-Random
New-ADUser -SamAccountName $randomNumber -etc...