Powershell:在Active Directory中查找第一个免费的计算机名称

时间:2013-07-02 11:34:08

标签: powershell

我尝试构建一个在Active Directory中找到第一个免费计算机名称的脚本

例如,如果我在AD中安装了这些计算机:   - PC01   - PC02   - PC04   - PC05

我尝试找到PC03,但我找到的所有脚本都将返回:PC06(列表>取最后一个并递增)

有人知道我怎么能找到这个吗?

祝你好运, 罗伯特

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

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

答案 1 :(得分:0)

尝试一下:

$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