Archive

Archives pour 18/02/2013

Créer une arborescente d’unités d’organisation (OU)

Vous souhaitez créer une arborescence d’unités d’organisations pour chacun des vos 53 sites géographiques. Cette arborescence d’OU sera identique pour chaque sites.
La quantité d’OU à créer vous impressionne. Voici comment gagner quelques heures.

OU

?View Code POWERSHELL
 
$OUFilName = Read-Host "Entrez l'OU parent"
$OUSiteName = Read-Host "Entrez le nom de la nouvelle OU"
$Domain = [ADSI]"LDAP://AD-DC-01/dc=domain,dc=local"
 
#Creation de l'OU de site.
$OUSite = $Domain.Create("OrganizationalUnit", "ou=" + $OUSiteName + ",ou=" + $OUFilName)
$OUSite.SetInfo()
Write-Host "L'OU $OUSiteName a été créée."
 
#Creation du premier niveau d'OU.
$OUFirst = "Ordinateurs","Groupes","Utilisateurs"
Foreach ( $ou in $OUFirst) {
$SetOU = $Domain.Create("OrganizationalUnit", "ou=" + $ou + ",ou=" + $OUSiteName + ",ou=" + $OUFilName)
$SetOU.SetInfo()
Write-Host "L'OU $OU a été créée."
}
 
#Creation des OU d'ordinateurs
$OUComp = "Portables","Fixes"
Foreach ( $ou in $OUComp) {
$SetOU = $Domain.Create("OrganizationalUnit", "ou=" + $ou + ",ou=Ordinateurs,ou=" + $OUSiteName + ",ou=" + $OUFilName)
$setOU.SetInfo()
Write-Host "L'OU $OU a été créée."
}
 
#Creation des OU d'utilisateurs.
$OUUsr = "Standards","Citrix","Administrateurs"
Foreach ( $ou in $OUUsr) {
$SetOU = $Domain.Create("OrganizationalUnit", "ou=" + $ou + ",ou=Utilisateurs,ou=" + $OUSiteName + ",ou=" + $OUFilName)
$setOU.SetInfo()
Write-Host "L'OU $OU a été créée."
}

Importation DNS avec PowerShell

« Gagner du temps », c’est souvent l’objectif qui nous pousse à utiliser PowerShell. Voici donc comment importer des modifications dans un DNS avec PowerShell.
Ce script contient les commandes pour supprimer des enregistrements et en ajouter. Pour les mises à jour vous devrez passer par la suppression et l’ajout.
Il est possible de modifier le type d’enregistrement pour traiter par exemple des Alias.

?View Code POWERSHELL
$DNSServer = "AD-DC-01" 
$DNSZone = "domain.local" 
$InputFile = "./import-file.txt"
 
$records = Import-CSV $InputFile
 
ForEach ($record in $records) { 
    $recordName = $record.name 
    $recordType = "A" 
    $recordAddress = $record.ip
    $action = $record.action
 
    if ( $action -eq "DELETE") {
        $cmdDelete = "dnscmd $DNSServer /RecordDelete $DNSZone $recordName $recordType /f" 
        Write-Host "Running the following command: $cmdDelete" 
        Invoke-Expression $cmdDelete 
}
    ElseIf ( $action -eq "ADD") {
        $cmdAdd = "dnscmd $DNSServer /RecordAdd $DNSZone $recordName $recordType $recordAddress" 
        Write-Host "Running the following command: $cmdAdd" 
        Invoke-Expression $cmdAdd 
}
}

Ce script va vous permettre de faire l’importation en masse d’enregistrements mais aussi de planifier des modifications dans le DNS.