Вы можете сократить этот скрипт с помощью команды Get-ADReplicationSite
.Я также хотел бы рассмотреть возможность использования Export-Csv
, поскольку вы выводите объекты в файл.
Get-ADReplicationSite -Filter * -Properties Subnets,Location |
Select @{n='SiteName';e={$_.Name}},
@{n='Subnets';e={$_.Subnets -replace "^CN=(.*?),CN=Subnets,.*$",'$1'}},Location |
Export-Csv -Path 'C:\temp\1.csv' -encoding ASCII -NoTypeInformation
Export-Csv
по умолчанию создаст файл с разделителями-запятыми (разделитель может быть изменен), а первая строка (заголовки) - это имена свойств ваших объектов.Каждая другая строка будет содержать значения, разделенные запятыми, для каждого из этих свойств.Столбцы для свойств и значений будут идеально выровнены.
Если у вас более 4 подсетей на сайт, только метод Out-File
без изменения каких-либо других значений обрезает значения подсети.Вам нужно установить $formatenumerationlimit
на значение выше 4 или -1 для неограниченного количества или убедиться, что вывод не в табличном формате.Работать с этим файлом будет намного сложнее, если вы не используете Export-Csv
, поскольку не будет согласованного разделителя между свойствами элемента и их значениями.
Я могу добавить к этому сведения о местоположении, если вы объяснитеточно, что это такое.