Archives par étiquette : Comptes

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.

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 
}

Importer la création de comptes Active Directory 2008 R2

Voici comment importer dans Active Directory 2008 R2 des comptes depuis un fichier texte.
Le login est formaté par rapport au nom et prénom de l’utilisateur. Dans cette exemple, on utilise les 6 premières lettres du nom et les 2 premières lettres du prénom.

Import-Csv -Path .\Import\import-adms.txt | foreach {
$firstname = (Get-Culture).TextInfo.Tolower($_.prenom)
$firstname = (Get-Culture).TextInfo.ToTitleCase($firstname)
$lastname = (Get-Culture).TextInfo.ToUpper($_.nom)
$name = $lastname + ' ' + $firstname
if ($_.nom.Length -le 6) {
$samaccount = $lastname + $firstname.Remove(2)
}
Else {
$samaccount = $lastname.Remove(6) + $firstname.Remove(2)
}
$descrition = $_.Societe + "-" + $_.Description
$upn = $samaccount + "@domain.fr"
$AccountPassword = (ConvertTo-SecureString "Pass2Key2" -AsPlainText -force)

New-ADUser -Name $name -GivenName $firstname -Surname $lastname -Path "OU=Comptes,DC=corp,DC=domain,DC=fr" -SamAccountName $samaccount -Description $descrition -UserPrincipalName $upn -AccountPassword $AccountPassword -Enabled $true -ChangePasswordAtLogon $true
}

Exporter les comptes d’ordinateurs

Voici une ligne de commande utile pour exporter la liste des comptes d’ordinateurs d’une OU en vu de faire un peu de ménage.

Get-QADComputer -IncludeAllProperties -SearchRoot domain.local\Paris -Sizelimit 0 | Select-Object cn,OSName,OSServicePack,pwdlastset,ParentContainer | Export-Csv -Path Paris_Computers_List.csv

Marquer les boites dont le compte est désactivé.

Ce script permet de d’appliquer un marquage sur les attributs personnalisés des boites dont le compte AD est désactivé.
Il est ensuite possible d’appliquer plus facilement un filtre afin de déplacer toutes ces boites aux lettres.

Get-Mailbox -Database ccr03\is_paris_10 | foreach {
$user = Get-QADUser -Identity $_.alias
if ($user.AccountIsDisabled -eq "true"){
$user
Set-Mailbox -Identity $user.UserPrincipalName -CustomAttribute4 "Disabled_on_Paris_10"
}
}

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:

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:

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
}

Identifier les comptes d’ordinateurs à supprimer

Il arrive au bout d’un certain temps d’avoir des comptes d’ordinateurs qui ne servent plus dans le domaine.
Pour identifier ces comptes qui ne se sont pas connectés depuis longtemps, lancer la commande:

Get-QADComputer -IncludeAllProperties -SizeLimit 0 -SearchRoot "domaine.local/OU_Computers" | ft Name,ParentContainer,OSName,pwdlastset

Les ordinateurs doivent changer leur mots de passe tous les 30 jours.
Si la date de de « pwdlastset » est trop ancienne, il est probable que l’ordinateurs n’existe plus.

Si vous voulez filtrer les odinateurs qui n’ont pas changés de mot de passe depuis plus 90 jours, utilisez la méthode suivante:

$old = (Get-Date).AddDays(-90)
Get-QADComputer -IncludedProperties pwdLastSet  -SizeLimit 0 -SearchRoot "domaine.local/OU_Computers" | where { $_.pwdLastSet -le $old }