Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сравнение списка групп из файла с ad на наличие группы и вывод результата в файл (http://forum.oszone.net/showthread.php?t=349419)

VAndreyG 17-08-2021 22:51 2964438

Сравнение списка групп из файла с 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"
    }
}


VAndreyG 18-08-2021 09:16 2964451

Цитата:

Цитата 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

Ну запустите да попробуйте.

VAndreyG 18-08-2021 10:02 2964457

Цитата:

Цитата DJ Mogarych (Сообщение 2964456)
Ну запустите да попробуйте.

Отрабатывает, но не совсем корректно, что очень странно, отрабатывает, как и мой ранее написанный.. При условии, если имя группы содержит в названии русские буквы, он перемещает её в несуществующие

DJ Mogarych 18-08-2021 12:54 2964482

Потому что импорт текстового файла идёт, скорее всего, с неверной кодировкой. Запустите отдельно
Код:

gc "C:\temp\Группы.txt"
.
Если кодировка неправильная, добавьте параметр
Код:

gc "C:\temp\Группы.txt" -encoding utf8
Но опять же, слишком много предположений, т. к. информации от вас немного.

Sham 20-08-2021 18:03 2964694

а try/catch там будет работать? Зависит от настройки обработки ошибок командлетами. SamAccountName лучше через -Identity передать

Elven 20-08-2021 18:43 2964696

Цитата:

Цитата Sham
SamAccountName лучше через -Identity »

Sham, не критично в данном случае, передается только один параметр.
Цитата:

Цитата Sham
а try/catch там будет работать? »

будет, хотя и странно, что его используют для этого и таким образом.


Время: 23:43.

Время: 23:43.
© OSzone.net 2001-