Powershell - Win32_ComputerSystem类属性 - DNSHostName

时间:2015-08-28 19:11:13

标签: powershell wmi

我有一个powershell脚本,允许我根据OU查询计算机的AD。

strFilter = "computer"
$args = "Computers" 

$objDomain = New-Object System.DirectoryServices.DirectoryEntry

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = "LDAP://OU= " + $args + ",DC=domain,DC=com"
$objSearcher.SearchScope = "Subtree" 
$objSearcher.PageSize = 1000 

$objSearcher.Filter = "(objectCategory=$strFilter)"
$colResults = $objSearcher.FindAll()

foreach ($i in $colResults) 
    {
        $objComputer = $i.GetDirectoryEntry()
        Get-WMIObject Win32_ComputerSystem -computername $objComputer.Name

        $IPV6 = $false
        $arrInterfaces = (Get-WmiObject -class Win32_NetworkAdapterConfiguration -filter "ipenabled = TRUE").IPAddress

        foreach ($i in $arrInterfaces) {$IPV6 = $IPV6 -or $i.contains(":")}

        write-host "IPV6 Enabled:" $IPV6
        write-host `n
    }

按预期返回多个条目。采用以下格式:

域名:name.com

制造商:LENOVO

型号:3134C2U

姓名:姓名

PrimaryOwnerName:name

TotalPhysicalMemory:3064381440

我的问题是,我可以过滤或格式化除了"名称"返回的属性。

我想我可以使用Win32_ComputerSystem类下的DNSHostName属性来实现这一点,但我做错了。

2 个答案:

答案 0 :(得分:1)

将WMI数据放在变量中:

$computer = Get-WMIObject Win32_ComputerSystem -computername $objComputer.Name

然后你可以使用:

$computer.DNSHostName

或选择一些属性:

$computer | Select Name, Model, SystemType

答案 1 :(得分:0)

如果您的目标是仅显示AD计算机名,则应使用Get-ADComputer cmdlet。