Powershell - Win32_ComputerSystem class 属性 - DNSHostName
Powershell - Win32_ComputerSystem class properties- DNSHostName
我有一个 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
}
它 returns 符合预期的几个条目。格式如下:
域:name.com
制造商:联想
型号:3134C2U
姓名:姓名
主要所有者姓名:姓名
总物理内存:3064381440
我的问题是,我可以过滤或格式化除返回的 "Name" 属性 之外的所有内容吗?
我以为我可以使用 Win32_ComputerSystem class 下的 DNSHostName 属性 来实现这一点,但我显然做错了什么。
如果您的目标是只显示 AD 计算机名称,您应该只使用 Get-ADComputer cmdlet。
将 WMI 数据放入变量中:
$computer = Get-WMIObject Win32_ComputerSystem -computername $objComputer.Name
那么你可以使用:
$computer.DNSHostName
或选择一些属性:
$computer | Select Name, Model, SystemType
我有一个 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
}
它 returns 符合预期的几个条目。格式如下:
域:name.com
制造商:联想
型号:3134C2U
姓名:姓名
主要所有者姓名:姓名
总物理内存:3064381440
我的问题是,我可以过滤或格式化除返回的 "Name" 属性 之外的所有内容吗?
我以为我可以使用 Win32_ComputerSystem class 下的 DNSHostName 属性 来实现这一点,但我显然做错了什么。
如果您的目标是只显示 AD 计算机名称,您应该只使用 Get-ADComputer cmdlet。
将 WMI 数据放入变量中:
$computer = Get-WMIObject Win32_ComputerSystem -computername $objComputer.Name
那么你可以使用:
$computer.DNSHostName
或选择一些属性:
$computer | Select Name, Model, SystemType