Skip to main content

Quelques scripts Powershell

Script Powershell pour les profils itinérants :

$OUpath = 'ou=Users,ou=Accounts,ou=Littoral1,dc=littoral1,dc=fr'
$Users = Get-ADUser -Filter 'enabled -eq $true' -SearchBase $OUpath -Properties ProfilePath | Select-Object Name, SamAccountName, ProfilePath

Foreach($User in $Users){
    $ProfilePath = "\\CPD01\Profils_itinerants$\"
    $Profilepath = $ProfilePath + $User.samaccountname
    $HomeDirectory = "\\CPD01\Utilisateurs$\"
    $Homedirectory = $HomeDirectory + $User.samaccountname
    Set-ADUser $User.samaccountname -ProfilePath $ProfilePath -HomeDirectory $HomeDirectory -HomeDrive U    
}

Script Powershell pour la création d'utilisateurs depuis un fichier CSV :

Import-Module ActiveDirectory

$Domain="@khroners.fr"

$UserOu="OU=Users,OU=Accounts,OU=Khroners,DC=khroners,DC=fr"

###Récupérer les identifiants d’administration d’un compte du domaine autorisé à créer des comptes AD :

$cred=Get-Credential

###Spécifier le nom d’un contrôleur de domaine sur lequel créer les comptes d’utilisateurs :

$DomainController = "DCO1"

###Spécifier le chemin d’accès au fichier CSV :

$PathCSV = "C:\Users\Administrateur\Desktop\Users.CSV"

###Importation des utilisateurs depuis le fichier CSV spécifié en paramètre :

$NewUsers = Import-Csv -path $PathCSV -delimiter ";"

$NewUsers | ForEach {

$Name = $_.nom+" "+$_.prenom
$GivenName = $_.nom
$sn = $_.prenom
$DisplayName = $Name
$sAMAccountName = $_.login
$Password = $_.mdp
$groupe = $_.groupe

###Création des utilisateurs dans Active Directory :

New-ADuser -GivenName $GivenName -Surname $sn -Name $Name -DisplayName $DisplayName -SamAccountName $sAMAccountName -Path "OU=Users,OU=Accounts,OU=Khroners,DC=khroners,DC=fr" -ChangePasswordAtLogon $false -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -force) -Enabled $true -PasswordNeverExpires $true
Get-ADGroup -SearchBase "OU=Groups,OU=Khroners,DC=khroners,DC=fr" -Filter "name -like '$groupe'" | Add-ADGroupMember -Members $sAMAccountName
}

Script Powershell pour ajouter un compte local sur l'ordinateur :

# Ajoute un compte dans la base locale du système
# à partir de la saisie du nom et de la description

$local=[ADSI]"WinNT://."

$nom=Read-Host -Prompt "Saisir un nom"
$description=Read-Host -Prompt "Saisir une description"
$Fullname=Read-Host -Prompt "Saisir le nom complet"

$compte=[ADSI]"WinNT://./$nom"
if (!$compte.path){
    $utilisateur=$local.create("user",$nom)
    $utilisateur.InvokeSet("Description",$description)
    $utilisateur.InvokeSet("FullName",$FullName)
    $utilisateur.CommitChanges()
    Write-Host "$nom ajouté"
}
else{
    Write-Host "$nom existe déjà"
}