Aktif Dizin-Unix LDAP Entegrasyonu için gerekli öznitelikleri powershell ile güncelleme

Aktif Dizin-LDAP Entegrasyonu için aktif dizinde olması gereken özniteliklerin yani “UNIX Attributes” sekmesindeki bilgilerin güncellenmesi işini yapacak olan bir powershell scriptini anlatacağım.

Bu yazı daki script ile aktif dizindeki kullanıcı hesaplarında olması gereken “UNIX Attributes” değerleri aşağıdaki aktif dizin “attribute” alanlarına tüm kullanıcılar için TEKCSV.csv adlı bir dosyadan bir defada güncellenir.

Bunu gerçekleştirmek için öncelikle aşağıdaki gibi bir kullanıcı listesi oluşturup “TEKCSV.csv” adıyla kaydediniz.

İlk satır sutün isimlerini ifade eder, ikinci satır ise CSV dosyasındaki ilk veri satırını…

sAMAccountName; msSFU30NisDomain; msSFU30Name; loginShell; uid; uidNumber; gidNumber

hesapadı; etkialanı; hesapadı; /bin/bash; hesapadı; unixid; unixgrupid

Sonra aşağıdaki powershell scriptini çalıştırmanız yeterli.

############################################################
########### UNIX Attributes Guncelleme Scripti ##################
## TEKCSV.csv dosyasindan alinan bilgiler Aktif Dizinde guncellenir ###

clear
$ErrorActionPreference = “Continue”
Import-Module ActiveDirectory
############# sAMAccountName verisine gore gunceller ########
function Set-Attributes ($ADKisiBilgileri)
{
Foreach($User in $ADKisiBilgileri)
{
$Kisi = $User.sAMAccountName
$ADUser = Get-ADUser -Filter {sAMAccountName -eq  $Kisi} -Properties msSFU30NisDomain,msSFU30Name,loginShell,uid,uidNumber,gidNumber
$ADUser.msSFU30NisDomain = $User.msSFU30NisDomain
$ADUser.msSFU30Name = $User.msSFU30Name
$ADUser.loginShell = $User.loginShell
$ADUser.uid = $User.uid
$ADUser.uidNumber = $User.uidNumber
Set-ADUser -Instance $ADUser
Write-Host ” $Kisi kullanicisina ait UNIX attribute ler guncelleniyor…” -ForeGroundColor Blue
}
}
### TEKCSV.csv dosyasinin yeri guncellenmelidir ######## 
$FilePath = “BURAYA DOSYANIN FULL PATHi YAZILMALI\TEKCSV.csv”

if (Test-Path $FilePath)
{
$ADKisiBilgileri = Import-Csv $FilePath -Delimiter “;”
}else
{
Write-Host “$FilePath bulunamadi… ” -ForeGroundColor Red
return
}

if($ADKisiBilgileri -ne $null)
{
Set-Attributes -ADKisiBilgileri $ADKisiBilgileri
Write-Host Aktif Dizindeki bilgilerin guncellenmesi tamamlandı! -ForeGroundColor Magenta
}
###### aktif dizin bilgileri guncelleme scripti ###########