Любой язык - [решено] Скрипт создания групп в AD

Ответить
Аватара пользователя
SHASHLIK

Любой язык - [решено] Скрипт создания групп в AD

Сообщение SHASHLIK »

Есть такое задание:



Имеется файловая помойка. На файловой помойке любой пользователь создает папки/подпапки.

Каждые N минут отрабатывает волшебный скрипт, который создает в AD группы с таким же наименованием на каждую такую папку в двух экземплярах( чтение и чтение+запись)

Бонусом будет если создатель папки сразу будет попадать в группу "чтение+запись"





На каком языке писать - сказали все равно)

Мне, знающему лишь поверхностно CMD такое явно не по силам=/
Аватара пользователя
Kazun

Re: Любой язык - [решено] Скрипт создания групп в AD

Сообщение Kazun »

PowerShell:





Код:

Код: Выделить всё

Get-ChildItem C:\Shares | Where {$_.PsIsContainer} | Foreach {
	$owner = $_.GetAccessControl().Owner
	New-ADGroup -Name "RW_$($_.Name)_GL" -GroupCategory Security -GroupScope Global -PassThru | Add-ADGroupMember -Members $owner
	New-ADGroup -Name "R_$($_.Name)_GL" -GroupCategory Security -GroupScope Global
}
Аватара пользователя
SHASHLIK

Re: Любой язык - [решено] Скрипт создания групп в AD

Сообщение SHASHLIK »

Цитата Kazun:



PowerShell:
Любой язык - [решено] Скрипт создания групп в AD






Попробовал:









1) не работает с дочерними папками

2) на эти папки необходимо раздавать соответствующий доступ созданным группам, группе R- чтение, группе RW - чтение - запись.

3) Хотелось бы добавлять создателя папки в группу

4) И было бы неплохо потом владельца менять на админов домена







Спасибо за помощь)

Сразу узнал ваш ник с сайта technet Microsoft Изображение
Аватара пользователя
Kazun

Re: Любой язык - [решено] Скрипт создания групп в AD

Сообщение Kazun »

Код:

Код: Выделить всё

Get-ChildItem C:\Shares -Recurse| Where {$_.PsIsContainer} | Foreach {
	$acl = $_.GetAccessControl()
	$owner = $acl.Owner.Split("\")[1]
	$rw_gr = "RW_$($_.Name)_GL"
	$r_gr = "R_$($_.Name)_GL"
	# Создание групп и добавление owner
	New-ADGroup -Name $rw_gr -GroupCategory Security -GroupScope Global -PassThru | Add-ADGroupMember -Members $owner
	New-ADGroup -Name $r_gr -GroupCategory Security -GroupScope Global -PassThru 
	# Добавление в ACL групп
	icacls $_.FullName /grant "$rw_gr`:(OI)(CI)RW" /grant "$r_gr`:(OI)(CI)R" /T /C
	# Смена владельца
	icacls $_.FullName /setowner "Domain Admins" /T /C
}
Ответить

Вернуться в «Скриптовые языки администрирования Windows»