2015-08-19 3 views
2

Я пытаюсь написать следующий сценарий PowerShell в C#, используя запросы WMI.Запрос 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 (вы разрешаете командлет, который сам является тонкой оболочкой объектов WMI, возвращает все результаты и затем фильтрацию с использованием ?/Where-Object).

Смежные вопросы