Archive

Articles taggués ‘Importation’

Créer 1000 comptes de test

Pour faire des tests sur une maquette, il est parfois nécessaire de créer beaucoup de comptes.
Il est possible de créer des comptes Test1, Test2, Test3… Test58.

Efficace mais par très fun. Il manque un peu d’accents ou de caractères spéciaux.
Je vous propose une liste de 1000 acteurs et actrices du cinéma français et international.

cinema

A télécharger ici.

Vous pourrez importer ce fichier dans votre Active Directory avec ce script.

?View Code POWERSHELL
Import-Csv -Path .\cinema.txt | foreach {
$firstname = (Get-Culture).TextInfo.Tolower($_.givenname) 
$firstname = (Get-Culture).TextInfo.ToTitleCase($firstname) 
$lastname = (Get-Culture).TextInfo.ToUpper($_.surname) 
$name = $lastname + ' ' + $firstname 
$logname = $lastname.replace("-","") 
$name 
if ($logname.Length -le 6) { 
$samaccount = $firstname.Remove(1) + "." + $logname 
} 
Else { 
$samaccount = $firstname.Remove(1) + "." + $logname.Remove(6) 
} 
$upn = $samaccount + "@labnan.local" 
$AccountPassword = (ConvertTo-SecureString "P@ssW0rd" -AsPlainText -force)   
New-ADUser -Name $name -GivenName $firstname -Surname $lastname -Path "OU=Comptes,DC=labnan,DC=local" -SamAccountName $samaccount -UserPrincipalName $upn -AccountPassword $AccountPassword -Enabled $true -ChangePasswordAtLogon $true 
}

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.

Importer un fichier avec des accents et caractères spéciaux

Lors de la création par importation de comptes ou boites aux lettres, vous pouvez avoir à gérer des chaines de caractères avec des accents ou caractères spéciaux.
La cmdlet Import-CSV ne gère pas ces caractères. Il est nécessaire de convertir votre fichier txt ou csv au format Unicode avant de l’importer.
Sans cette conversion, les caractères é, ë, ç… seront transformés en « ? ».
Dans le script ci-dessous, je converti le fichier à importer avant la commande Import-CSV.

?View Code POWERSHELL
Get-Content -Path ./import.txt | Out-File -FilePath ./import-unicode.txt -Encoding Unicode
 
Import-Csv -Path ./import-unicode.txt | foreach {
$displayname = $_.LastName + " " + $_.FirstName
$displayname
}

Importer l’activation de comptes OCS.

Les deux scripts suivant exécutés dans l’ordre permettent d’activer et de configurer les comptes présents dans un fichier pour OCS.
Il n’y a que les fonctionnalités de messagerie instantané qui seront activés.

Activation des comptes:

?View Code POWERSHELL
Import-Csv .\Import_ocs.csv | ForEach-Object{
$user = $_.alias
$sip="sip:" + $user + "@domain.com"
get-qaduser $user | set-qaduser -oa @{
'msRTCSIP-UserEnabled'=$true
'msRTCSIP-PrimaryUserAddress'=$sip
'msRTCSIP-PrimaryHomeServer'="CN=LC Services,CN=Microsoft,CN=Epool,CN=Pools,CN=RTC Service,CN=Microsoft,CN=System,DC=domain,DC=local"
}
}

Configuration des comptes:

?View Code POWERSHELL
Import-Csv .\Import_ocs.csv | ForEach-Object{
$user = $_.alias
$sip="sip:" + $user + "@domain.com"
get-wmiobject -class MSFT_SIPESUserSetting | Where-Object { $_.PrimaryURI -eq $sip } | ForEach-Object { 
$_.MeetingPolicy = "CN={1815ED7B-A539-4117-9283-E8DD27CD393E},CN=Policies,CN=RTC Service,CN=Microsoft,CN=System,DC=domain,DC=local" ;
$_.AllowOrganizeMeetingWithAnonymousParticipants = $True ;
$_.EnabledForEnhancedPresence = $True;
$_.EnabledForInternetAccess = $True;
$_.put()| out-null}
$sip
}
Categories: OCS 2007 Tags: ,

Importer une adresses secondaire sur des boites.

Permet d’importer une adresse SMTP secondaire sur une liste de boites aux lettres.

?View Code POWERSHELL
Import-Csv -Path .\import_secondary_smtp.csv | foreach {
$mailbox = $_.identity
$secsmtp = $_.sec_smtp
 
$temp = Get-Mailbox -Identity $mailbox
$temp.emailaddresses.add($secsmtp)
Set-Mailbox -Instance $temp
}

Importer la création de boites aux lettres.

Permet d’importer la création de boites aux lettres depuis un liste texte.

?View Code POWERSHELL
$InputFile = import-csv -Path ".\recipientssi.csv"
$i=0
$password = ConvertTo-SecureString "P@ssW0rd" -AsPlainText -Force
$ou = "domain.local/OU01_Compta"
foreach ($NewMailbox in $InputFile)
{
	$upn = $NewMailbox.alias + "@domain.local"
	New-Mailbox -Alias $NewMailbox.Alias -Name $NewMailbox.DisplayName -FirstName $NewMailbox.FirstName -LastName $NewMailbox.LastName -UserPrincipalName $upn -Password $password -OrganizationalUnit $ou -Database EXCHSRV001\DB001
	$i=$i+1
  	if ($InputFile.Count -ge 0)
    {
    	Write-Progress -activity " *  * Creating Mailboxes" -Status $upn -percentcomplete ($i/$InputFile.Count*100) 
    }
}

Ajouter une liste d’utilisateurs dans une DL.

Permet d’ajouter une liste d’utilisateurs dans un groupe de distribution.

?View Code POWERSHELL
Import-Csv -Path .\users_compta.csv | foreach { Add-DistributionGroupMember -Identity Groupe_Compta -Member $_.identity }