Рубрикатор

корреляцияпереводчикиэксперттьмапопсаdenwerвеб дизайнпочему?PowerShellмоторДевушкиnetвпечатлениямосквамочаoэнергияSharepoint

Автоматическое создание каталогов и раздача прав средствами PowerShell

скрипт, PowerShell, личные каталоги, ACL
Привет!
Помоги пожалуйста если знаешь как это подправить.

Возникла задача:
1) Создать более 2000 личных каталогов с именем domain_username
2) Раздать полные права на эти папки, соответствующим пользователям domainusername
3) Как следствие, возникает желание все это автоматизировать, а данные для переменной «domain» и «username» брались из одного txt файла.

Домены у всех этих пользователей разные, по этому указание их обязательно.

Мои наработки на эту тему:

Set-Location C:Musor
$un = "username"
$dn = "domain"
$dnu = $dn+""+$un
New-Item $dn"_"$un -ItemType "Directory"
[System.Security.AccessControl.DirectorySecurity]$gacl = Get-Acl -Path C:Musor$dn"_"$un
$nacl = New-Object System.Security.AccessControl.FileSystemAccessRule("domainusername ","FullControl","Allow")
$gacl.AddAccessRule($nacl)
set-acl -aclobject $gacl -path C:Musor$dn"_"$un

Проблемы с которыми я столкнулся:
1) Я не пойму как мне сделать цикличность и само обращение к текстовому файлу с именами.
2)  Когда я в 7-й строчке указываю не явное имя «domainusername», а переменную «$dnu» скрипт перестает раздавать права.
Get-Content filename.txt|ForEach-Object {
    $Match=[Regex]::Match($_,"^s*(?<Domain>S+)s+(?<UserName>S+)s*$") #Предпологается, что строка в файле имеет вид: domain username
    if(!$Match.Success){
        Write-Error "Ошибка в формате строки" -Category ParserError -TargetObject $_
        return
    }
    $Domain=$Match.Groups["Domain"].Value
    $UserName=$Match.Groups["UserName"].Value
    $FullUserName="$Domain$UserName"
    $FolderName="C:Musor$Domain`_$UserName"
    New-Item $FolderName -ItemType d
    $ACL=Get-Acl $FolderName
    $Rule=New-Object Security.AccessControl.FileSystemAccessRule $FullUserName,FullControl,"ContainerInherit,ObjectInherit",None,Allow
    $ACL.AddAccessRule($Rule)
    Set-Acl $FolderName $ACL
}
Вернуться на главную Вернуться в раздел
© 2010 Святослав Ерзов Карта сайта
Используются технологии uCoz