none
Создание файловой структуры Ad RRS feed

  • Вопрос

  • Подскажите, пожалуйста, как мне изменить скрипт таким образом, чтобы он создавал папки пользователей в папках подразделений, и назвал их таким образом "Иванов И С"

    Создаю папки пользователей и подразделений, но только в одну кучу

     

    Get-ADOrganizationalUnit -filter * | % {$foldername=$_.name; 
    
    New-Item "D:\folders\$foldername" -type directory}
    
    
    
    get-aduser -filter * | % {$foldername=$_.name; 
    
    New-Item "D:\folders\$foldername" -type directory}

     

    9 декабря 2010 г. 6:28

Ответы

  • $dir = "C:\AD\"
    $strCategory = "user"
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.Filter = ("(objectCategory=$strCategory)")
    $colResults = $objSearcher.FindAll()
    
    $domain = $objDomain.distinguishedName -replace "DC=" -replace ",","."
    
    foreach ($objResult in $colResults)
    {
    	$objName= $objResult.Properties
    	$temp = $objName.distinguishedname -replace ",?(CN=|OU=|$($objDomain.distinguishedName)),?","\" -replace "^\\|\\$"
    	[array]::Reverse(($temp = $temp -split "\\"))
    	$temp[-1] = $temp[-1] -replace "\."," "
    	New-Item -Path ($dir + $domain + "\" + ($temp -join "\")) -ItemType directory -ErrorAction SilentlyContinue -Force 
    }
    • Помечено в качестве ответа dylanci 10 декабря 2010 г. 11:14
    • Снята пометка об ответе dylanci 10 декабря 2010 г. 11:14
    • Помечено в качестве ответа dylanci 10 декабря 2010 г. 11:14
    9 декабря 2010 г. 12:11
    Отвечающий

Все ответы

  • Get-ADOrganizationalUnit -Filter * | foreach {$ou = $_; md $ou.name; Get-ADUser -filter * -SearchBase $ou.distinguishedname|foreach {md "$($ou.name)\$($_.name)"}}
    AKA Xaegr, MVP: PowerShell Блог: http://xaegr.wordpress.com
    9 декабря 2010 г. 7:25
    Модератор
  • В результате работы этого скрипта создаются папки всех подразделений и пользователей, но они не вложены в друг друга как в AD, они все вместе. И скажи, пожалуйста, при запуске появляется окно, где надо указать значения объекта ForEach-object Process[] какой параметра нужно вводить туда?
    9 декабря 2010 г. 10:55
  • $dir = "C:\AD\"
    $strCategory = "user"
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.Filter = ("(objectCategory=$strCategory)")
    $colResults = $objSearcher.FindAll()
    
    $domain = $objDomain.distinguishedName -replace "DC=" -replace ",","."
    
    foreach ($objResult in $colResults)
    {
    	$objName= $objResult.Properties
    	$temp = $objName.distinguishedname -replace ",?(CN=|OU=|$($objDomain.distinguishedName)),?","\" -replace "^\\|\\$"
    	[array]::Reverse(($temp = $temp -split "\\"))
    	$temp[-1] = $temp[-1] -replace "\."," "
    	New-Item -Path ($dir + $domain + "\" + ($temp -join "\")) -ItemType directory -ErrorAction SilentlyContinue -Force 
    }
    • Помечено в качестве ответа dylanci 10 декабря 2010 г. 11:14
    • Снята пометка об ответе dylanci 10 декабря 2010 г. 11:14
    • Помечено в качестве ответа dylanci 10 декабря 2010 г. 11:14
    9 декабря 2010 г. 12:11
    Отвечающий
  • Спасибо!!!! За потраченное время, реально помогло, все работает!!!
    10 декабря 2010 г. 11:16