2015-08-19 83 views
2

我正嘗試在C#中使用WMI查詢編寫以下PowerShell腳本。WMI查詢子域中的DNS CNAME

Get-DnsServerZone -ComputerName [DNS Server] | ? {$_.zonename} | Get-DnsServerResourceRecord -ComputerName [DNS Server] -RRType CNAME | ? {$_.Hostname -like "$DNSCname*"} | Format-Table 

這個片段將查詢DNS並返回所有區域和管的結果給Get-DnsServerResourceRecord這將回所有記錄的別名(和它的變體)存在於

,例如: $ DNSCname = 'ABCXYZ'

結果是:

ABCXYZ.domain1.com 
ABCXYZ123.subdomain.domain1.com 
ABCXYZ456.subdomain.domain2.com 

不幸的是下面的WMI查詢不會爲我工作。

"SELECT * FROM MicrosoftDNS_ResourceRecord WHERE OwnerName LIKE '%ABCXYZ%'" 

有沒有辦法編寫WMI查詢,它將返回與PowerShell腳本相同的結果?

回答

0

我99%確定此提供程序不支持以這種方式過濾(但我找不到參考)。你必須得到它們並在你的代碼中進行過濾,順便說一句,正是PowerShell代碼中發生的事情(你讓cmdlet本身就是WMI對象的薄包裝,返回所有結果並然後通過使用?/Where-Object進行過濾)。