![](/img/trans.png)
[英]Powershell won't pull every computer name from Active Directory
[英]Powershell Query Active Directory and automatically generate an unused computer name
我正在尝试创建一个 powershell 脚本,该脚本将查询活动目录并在名称不存在时自动命名计算机。 在我当前的环境中,我们在成像后使用通用名称(如“ABClaptop1”)重命名笔记本电脑,直到将它们分配给特定用户并获得不同的命名约定。 理想情况下,该脚本将查询活动目录并查看“ABClaptop1 - ABClaptop99”之类的名称是否可用并随机分配其中一个。 使用通用命名约定,我们通常一次拥有 20 台或更少的笔记本电脑。 下面是我目前使用的脚本,需要大量手动输入并在 AD 中搜索可用的内容。
$name = Read-Host 'Enter New Computer Name' Rename-Computer -NewName $name Add-Computer -ComputerName $name -DomainName domain -Credential domain\username -Restart -Force
在此先感谢您的任何建议。
从 Active Directory 中获取当前计算机名称,然后从 1-99 中随机获取 select 一个未使用的计算机名称:
$Prefix = "ABClaptop"
$Search = ("{0}*" -f $Prefix)
$ExistingComputers = Get-ADComputer -Filter { Name -like $Search }
$Name = 1..99 | Where-Object {
"$Prefix$_" -notin $ExistingComputers.Name
} | Get-Random | ForEach-Object {
"$Prefix$_"
}
如果没有可用的名称,则$Name
将为 null,因此请务必在继续之前检查$Name
不是 null。
继续您现有的脚本:
Rename-Computer -NewName $Name
Add-Computer -ComputerName $Name -DomainName domain -Credential domain\username -Restart -Force
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.