Войти

Показать полную графическую версию : Создание переменчивой переменной из csv файла


Dillaname
25-02-2021, 21:28
Всем привет!
Пишу скрипт для (массового) создания контейнеров и групп безопасности в домене.
Чтобы не лопатить все имена групп и контейнреов в скрипте принял решение о внесении их в csv файл и далее import-csv и т.д.
Но столкнулся с непонятной для меня ситуацией:
При отработке скрипта, импорте данных из csv, по какой то причине группа создается только из последней строки файла csv
Я в PS человек относительно новый, поэтому сильно не куритикуйте)

Скрипт:

$SpB = "OU=SpB,OU=Glovisrus,DC=test,DC=ru"
$ACL = "OU=ACL,OU=SpB,OU=Glovisrus,DC=test,DC=ru"

New-ADOrganizationalUnit -name "ACL" -path $SpB -ProtectedFromAccidentalDeletion $false

New-ADOrganizationalUnit -name "Disk_L" -path $ACL -ProtectedFromAccidentalDeletion $false

New-ADOrganizationalUnit -name "Disk_M" -path $ACL -ProtectedFromAccidentalDeletion $false

$pathS = "OU=Disk_L,OU=SpB,OU=Glovisrus,DC=test,DC=ru"

function Action # Функция Action - Создание OU и групп безопасности к ней, без перехода на уровень ниже.
{
New-ADOrganizationalUnit -name $OU -path $PathS -ProtectedFromAccidentalDeletion $false
$nameRO = $OU + '(RO)'
$actionRO = New-AdGroup -name $nameRO -path $PathS -groupscope global -groupcategory Security
$nameRX = $OU + '(RX)'
$actionRX = New-AdGroup -name $nameRX -path $PathS -groupscope global -groupcategory Security
$nameRW = $OU + '(RW)'
$actionRW = New-AdGroup -name $nameRW -path $PathS -groupscope global -groupcategory Security

$actionRO
$actionRX
$actionRW

}

$file = import-csv -delimiter ";" c:\users\administrator\new\units.csv
foreach-object ($file.name) {
$OU = $item.name}
Action

Файл csv сохранен в Unicode и состоит из 1 столбца Name
Отрабатывает без ошибок, но по какой то причине скрипт выполняется только для пследней строки файла. Во вложении скрин итога.

Iska
25-02-2021, 21:45
Dillaname, ну, а что Вы хотели? Вы сначала перебираете в цикле все объекты, а затем, по завершении цикла, один раз вызываете функцию Action.

Elven
26-02-2021, 07:55
Iska, подробно не вчитывался, но интересно.
$OU = $item.name
Action}
?

DJ Mogarych
26-02-2021, 09:22
Надо убрать это дикое количество переменных и функцию, и сделать простой цикл.

Dillaname
26-02-2021, 15:38
Elven, пробовал, результат тот же

DJ Mogarych, суть то в максимальной автоматизации, тем более тут вопрос не в переменных, а в цикле.




© OSzone.net 2001-2012