我正在尝试使用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脚本相同的结果?
答案 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
)进行过滤。