WMI在子域中查询DNS CNAME

时间:2015-08-19 17:05:39

标签: c# powershell dns wmi

我正在尝试使用WMI查询在C#中编写以下PowerShell脚本。

    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脚本相同的结果?

1 个答案:

答案 0 :(得分:0)

我99%确定此提供商不支持以这种方式过滤(但我找不到参考)。你必须得到所有这些并在你的代码中过滤它们,顺便说一下,这正是PowerShell代码中发生的事情(你让cmdlet本身是围绕WMI对象的薄包装,返回所有结果和然后使用read.csv / Static sheet 'mapping' . Key is Column A. Possible values in Columns C onwards A B C D E F G v1 CDID #### ###? 0 c52 FHAID ER# EP# INVA Z* c48 PLID * v24 CUSTID ### ###Q ###P c22 MATID ???# ??# ?# q23 LKKID * Input original sheet 'Compare'. Key is Column B. Column C contains Data to validate A B C D c22 MATID RT3FG v24 CUSTID 456P v1 CDID 5 q23 LKKID PORTA Output sheet 'Compare'. Invalid values noted in Column D. A B C D c22 MATID RT3FG Error: Invalid value v24 CUSTID 456P v1 CDID 5 Error: Invalid Value q23 LKKID PORTA )进行过滤。