PowerShell/Système/Profil
PowerShell et les profils utilisateurs.
Liste des profils utilisateurs stockés dans le dossier C:\Users\
<#
Nom : néant
Description : liste des profils utilisateurs stockés dans le dossier C:\Users\
Usage : exercice en PowerShell
Particularité : néant
Auteur : fylip22
Version : 1.0
Révisions :
- 1.0 (01/11/2023) : création du script
#>
# liste de postes sous forme de fichier à compléter
$posteListeFichier = "c:\outil\script\del-poste-profil.csv"
$posteListe = Get-Content -Path $posteListeFichier
$cheminRacine = "\c$\users\"
Clear-Host
Write-Host "Liste des postes avec les dossiers profils"
Write-Host "------------------------------------------"
foreach ($poste in $posteListe) {
$cheminPoste = "\\"+$poste+$cheminRacine
$listeProfil = Get-ChildItem -path $cheminPoste -ErrorAction Ignore | Sort-Object Name | Select-Object Name
$listeAffichage = $listeProfil.name -join ";"
Write-Host $poste";"$listeAffichage
}
Write-Host "= = Traitement terminé = ="
Création d'un compte local avec certains groupes de sécurité
# création du compte local "recupe" ; script compacte
$compte = 'recupe' ; $parametreListe=@{Name=$compte;Password=(ConvertTo-SecureString "monmotdepasse" -AsplainText -Force);FullName=$compte;Description=$compte+' migration 2024';AccountNeverExpires=$true;PasswordNeverExpires=$true}
New-LocalUser @parametreListe
Add-LocalGroupMember -Group "Administrateurs" -Member $compte ; Add-LocalGroupMember -Group "Utilisateurs du Bureau à distance" -Member $compte
Suppression des dossiers profils utilisateurs, sauf certains
# suppression des dossiers profils utilisateurs, sauf ceux spéciaux, et ceux sauf ceux dont une session est active
Get-WmiObject -Class Win32_UserProfile | Where-Object {($_.special -eq $false) -and ($_.Loaded -eq $false)} | foreach {$_.delete()}
# suppression des dossiers profils utilisateurs, sauf ceux listés, ceux spéciaux, et ceux dont une session est active
[System.Collections.ArrayList]$profilAConserver=@("C:\Users\dupondp") ; Get-WmiObject -Class Win32_UserProfile | Where-Object {($_.special -eq $false) -and ($_.Loaded -eq $false) -and ($_.localpath -notin $profilAConserver)} | foreach {$_.delete()}
Création d'un dossier
# création du dossier "C:\archive\"
$chemin = "C:\" ; $dossierNom = "Archive" ; Clear-Host ; If(-not(Test-Path -Path $chemin$dossierNom)) {New-Item -ItemType Directory -Path $chemin -Name $dossierNom ; Write-Host "Le dossier $chemin$dossierNom vient d'être créé" -ForegroundColor Green} Else{Write-Host "Le dossier $chemin$dossierNom existe déjà !" -ForegroundColor Red}