Как написать многострочный (Microsoft) DNS Txt Record с использованием объектов WMI из C# - PullRequest
0 голосов
/ 25 февраля 2020

Я ищу синтаксис C#, необходимый для того, чтобы можно было использовать объекты WMI для создания текстовой записи Microsoft DNS, состоящей из нескольких строк, чтобы в итоге я мог получить полный RSA publi c введите эту текстовую запись. Я успешно читаю, записываю и управляю другими записями DNS (A, AAAA, CNAME и небольшими текстовыми записями), поэтому это не базовое c взаимодействие с объектами WMI.

Я пробовал несколько комбинаций обоих ManagementBaseObject createEntry = manager.InvokeMethod ("CreateInstanceFromTextRepresentation", inParams2, null) и
manager.InvokeMethod (MicrosoftDnsMethod.CreateInstance, crf, null, inFarams) ), пробелы, запятые и косые черты.

Я обнаружил, что хотя такую ​​строку можно вставить в редактор DNS на сервере, а затем успешно найти с помощью объекта WMI ManagementObjectSearcher, значение для этой записи (которая является предоставленной длинной строкой с экранированием) двойные кавычки, разбивающие его на несколько строк). Это значение нельзя использовать для воссоздания аналогичной записи (с другим именем). Поскольку это значение может быть создано в редакторе DNS, я подозреваю, что объекты WMI действительно могут его создать, но, похоже, что-то мне не хватает.

1 Ответ

0 голосов
/ 27 февраля 2020

Хотя класс управления WMI не позволяет вводить строку строк, и то же самое относится и к PowerShell (который вызывает WMI), или к DNSCMD, можно обойти это ограничение, храня DNS в файле зоны, а не в активном каталоге. Файл зоны - это просто текстовый файл, который можно редактировать как текстовый файл. Хотя это требует перезагрузки зоны, это можно сделать с помощью вызовов WMI.

...