Сравнение списка групп из файла с ad на наличие группы и вывод результата в файл
Приветствую!
Подскажите, пожалуйста, как можно реализовать следующее:есть файл csv на 150к строк, содержаться в нем названия групп (SamAccountName), которые надо сравнить с ad, и на выходе получить список с актуальными и не существующими.
|
DJ Mogarych |
18-08-2021 08:56 2964450 |
Каково строение файла csv?
В целом, как-то так:
Код:
foreach ($group in (gc "C:\temp\Группы.txt")) {
try {
get-adgroup "$group" > $null
"$group" >> "C:\temp\Существуют.txt"
}
catch {
"$group" >> "C:\temp\Не существуют.txt"
}
}
|
Цитата:
Цитата DJ Mogarych
(Сообщение 2964450)
Каково строение файла csv?
В целом, как-то так:
Код:
foreach ($group in (gc "C:\temp\Группы.txt")) {
try {
get-adgroup "$group" > $null
"$group" >> "C:\temp\Существуют.txt"
}
catch {
"$group" >> "C:\temp\Не существуют.txt"
}
}
|
Один Столбец с наименование групп
|
DJ Mogarych |
18-08-2021 09:40 2964456 |
Ну запустите да попробуйте.
|
Цитата:
Цитата DJ Mogarych
(Сообщение 2964456)
Ну запустите да попробуйте.
|
Отрабатывает, но не совсем корректно, что очень странно, отрабатывает, как и мой ранее написанный.. При условии, если имя группы содержит в названии русские буквы, он перемещает её в несуществующие
|
DJ Mogarych |
18-08-2021 12:54 2964482 |
Потому что импорт текстового файла идёт, скорее всего, с неверной кодировкой. Запустите отдельно
Код:
gc "C:\temp\Группы.txt"
.
Если кодировка неправильная, добавьте параметр
Код:
gc "C:\temp\Группы.txt" -encoding utf8
Но опять же, слишком много предположений, т. к. информации от вас немного.
|
а try/catch там будет работать? Зависит от настройки обработки ошибок командлетами. SamAccountName лучше через -Identity передать
|
Цитата:
Цитата Sham
SamAccountName лучше через -Identity »
|
Sham, не критично в данном случае, передается только один параметр.
Цитата:
Цитата Sham
а try/catch там будет работать? »
|
будет, хотя и странно, что его используют для этого и таким образом.
|
Время: 23:43.
© OSzone.net 2001-