我尝试构建一个在 Active Directory 中找到第一个免费计算机名称的脚本
例如,如果我在 AD 中有这些计算机: - PC01 - PC02 - PC04 - PC05
我尝试找到 PC03,但我为此找到的所有脚本都将返回:PC06(列表 > 取最后一个并递增)
有人知道我怎么能找到这个吗?
最好的问候,罗伯特
我尝试构建一个在 Active Directory 中找到第一个免费计算机名称的脚本
例如,如果我在 AD 中有这些计算机: - PC01 - PC02 - PC04 - PC05
我尝试找到 PC03,但我为此找到的所有脚本都将返回:PC06(列表 > 取最后一个并递增)
有人知道我怎么能找到这个吗?
最好的问候,罗伯特
尝试这样的事情:
Import-Module ActiveDirectory
$computers = Get-ADComputer * | % { $_.Name -replace 'PC' }
$i = 1
while ( $computers -contains ("{0:d2}" -f $i) ) { $i++ }
$computername = "PC{0:d2}" -f $i
echo $computername
试试这个:
$names = echo PC01 PC02 PC04 PC05
#$names = Get-ADComputer -Filter * | Where-Object {$_.Name -match '^PC\d+$'} | Select-Object -ExpandProperty Name
[int[]]$num = $names -replace '\D+'
for($i=0; $i -lt $num.Count; $i++)
{
if($num[$i+1]-$num[$i] -gt 1)
{
'PC{0:00}' -f ($num[$i]+1); break
}
}
PC03