PDA

Показать полную графическую версию : [решено] Powershell Изменение данных пользователя во всех OU


morrozilla
16-04-2013, 14:37
Добрый день.
Требуется изменять данные пользователей из файла этого я добился следующем скриптом:


$csv = gc C:\Tools\users-test.csv -Encoding String | ConvertFrom-Csv
$ou = "OU=Кадры,DC=test,DC=local"

$objects = [ADSI]"LDAP://$ou"
Write-Output $objects
foreach ($user in $objects.children | where {$_.SchemaClassName -eq "user"})
{
$csv | ? { $_.sAMAccountName -eq $user.sAMAccountName} | % {
Write-Output $user
$user.Put("Company",$_.Company)
$user.Put("title",$_.title)
$user.Put("Department",$_.department)
$user.Put("Manager",$_.manager)
$user.Put("mail",$_.email)
$user.Put("telephoneNumber",$_.telephoneNumber)
$user.SetInfo()
}
}


но проблема в том что в файле указаны пользователи из всей AD, а скрипт изменяет только в одном OU как сделать так что бы поиск и изменение происходил по всем OU

Kazun
16-04-2013, 14:50
$users = ([adsisearcher]"(&(objectcategory=person)(objectclass=user))").FindAll() | Foreach {$_.GetDirectoryEntry()}
foreach ($user in $users) {...}

morrozilla
16-04-2013, 15:26
Огромное спасибо, задача выполнена




© OSzone.net 2001-2012