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

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

Dillaname 25-02-2021 21:28 2951285

Создание переменчивой переменной из csv файла
 
Вложений: 1
Всем привет!
Пишу скрипт для (массового) создания контейнеров и групп безопасности в домене.
Чтобы не лопатить все имена групп и контейнреов в скрипте принял решение о внесении их в 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 2951292

Dillaname, ну, а что Вы хотели? Вы сначала перебираете в цикле все объекты, а затем, по завершении цикла, один раз вызываете функцию Action.

Elven 26-02-2021 07:55 2951311

Iska, подробно не вчитывался, но интересно.
Код:

$OU = $item.name
Action}

?

DJ Mogarych 26-02-2021 09:22 2951314

Надо убрать это дикое количество переменных и функцию, и сделать простой цикл.

Dillaname 26-02-2021 15:38 2951345

Elven, пробовал, результат тот же

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


Время: 03:25.

Время: 03:25.
© OSzone.net 2001-