PowerShell/Système/Profil

Aller à la navigation Aller à la recherche

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}

Désinstallation de Microsoft Internet Explorer

# désinstallation de Microsoft Internet Explorer
Disable-WindowsOptionalFeature -FeatureName Internet-Explorer-Optional-amd64 –Online -NoRestart

Référence

  •  

Voir aussi

  •