Обновление данных пользователей Active Directory при помощи PowerShell

Стоит задача периодически обновлять или устанавливать данные пользователей Active Directory, в качестве исходных данных CSV файл собранный скриптом:

Write-Host "Loading Active Directory snap."
Add-PSSnapin Quest.ActiveRoles.ADManagement
 
function ClearString ([string]$str){
 
	$str = $str -Replace ' {2,}',''
	$str = $str.TrimStart()
	$str = $str.TrimStart()
 
	$str = $str -Replace """""","@"
	$str = $str -Replace """",""
	$str = $str -Replace "@",""""
 
return $str;
 
}
 
$FileATS = "C:\file.csv"
$ADSearchRoot = "vpb.local/Пользователи"
$pw = read-host "pass" -AsSecureString
 
Connect-QADService -ConnectionAccount "vpb.local\user" -ConnectionPassword $pw
 
$Employes = Get-Content $FileATS
$TotalUsrs = 0
$UpdatedUsrs = 0
foreach ($Emp in $Employes)
{	
	$TotalUsrs++
 
    $Located = $Emp.split(';')[0]
	$FullName = $Emp.split(';')[1]
	$Title = $Emp.split(';')[2]
	$Dep = $Emp.split(';')[3]
	$Status = $Emp.split(';')[4]
 
    $Located = ClearString($Located)
	$FullName = ClearString($FullName)
	$Title = ClearString($Title)
	$Dep = ClearString($Dep)
	$Status = ClearString($Status)
 
	if ($CurUser = Get-QADUser -SearchRoot $ADSearchRoot -Name $FullName) 
	{	
		"User $FullName found..."
		if (@($CurUser).count -gt 1) {
		"Match the name, skip!"
		continue
		}
		$CurUser | Set-QADUser -PhisicalDeliveryOfficeName "$Located" -DisplayName "$FullName" -Title "$Title" -Department "$Dep" -description "$Status"
		"Updated."
		$UpdatedUsrs++ 	
	}
}
"Total users in the file: $TotalUsrs"
"Updated users AD: $UpdatedUsrs"

Ее легко решить при помощи PowerShell. Для разбора CSV-файла следует использовать командлет Import-CSV -Delimter «;».

Import-Csv file.csv -Delimeter ";" | foreach {
            Get-QADUser -SearchRoot $ADSearchRoot -Name $_."ФИО" | Set-QADUser -PhisicalDeliveryOfficeName $_."Кабинет" -DisplayName $_."ФИО" `
            -Title $_."Должность" -Department $_."Отдел" -description $_."Статус"
            }
Теги: ,

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)