按部分检查几台 AD 计算机名称



我试图根据它的最后7位数字找到完整的AD计算机名称(名称设置为4位数字+ DELL服务标签)我使用下面的命令找到1台计算机,它工作得很好,但我必须找到超过200,所以我想知道是否有可能从。txt文件做所有的服务标签?然后将结果导出到csv或网格视图?

Get-ADComputer -Filter 'Name like "*93PXPV2"' -Properties * | FT Name

您可以构造一个一次性搜索所有名称后缀的LDAP过滤器,例如:

(|(name=*93PXPV2)(name=*17GEJK8)(name=*...))

假设您在txt文件中存储了后缀,每行一个,您可以这样做:

# Read name suffix information from disk
$suffixes = Get-Content pathtocomputerNames.txt
# Construct LDAPFilter
$LDAPFilter = '(|{0})' -f -join($suffixes |ForEach-Object { "(name=*${_})" })
# Search for, and export, all the names at once!
Get-ADComputer -LDAPFilter $LDAPFilter |Select Name,Enabled,DistinguishedName |Export-Csv pathtooutput.csv -NoTypeInformation

尝试如下:

$input_filename = "c:temptest.txt"
$shortNames = Get-Content -Path $input_filename
$shortNames | Format-Table
$table = [System.Collections.ArrayList]::new()
foreach($shortName in $shortNames)
{
$result = Get-ADComputer -Filter Name -like ("*" + $shortName) -Properties *
foreach($computer in $result)
{
$table.Add($computer)  | Out-Null
}
}
$table | Format-Table

最新更新