Bonjour,

Débutant en Powershell, j’aurais besoin de vos lumières afin de débloquer une situation assez simple à mon avis mais que je n’arrive pas à trouver une solution ^^.

Je suis en train de mettre en place un scripte pour nettoyer les profils des postes distances ( suppression du répertoire c:\Users\* ainsi que la suppression de la clé SID au niveau de la base des registres
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\*).

ci-dessous les actions souhaitées :


scan des postes distants et récupération des infos ( LocalPath, SID, le nom de la machine) --> ok
isolation des répertoires Administrateurs --> ok
Export vers un CSV--> ok
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# ----------------------------------#
# - Déclaration des Chemins        -#
# ----------------------------------#
$Path = "D:\PowerShell\Profil_Users"
$Ordinateurs = "D:\PowerShell\Profil_Users\Ordinateurs.txt"
$export = "D:\PowerShell\Profil_Users\Ordinateurs.csv"
$Admin = "C:\Users\Admin*"
$Windows = "C:\Windows\*"
$Classicnet="c:\users\classic*"
$defaut="C:\Users\Default*"

$reg="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SID"
$SID = "D:\PowerShell\Profil_Users\SID.txt"
# -----------------------------------------#
# - Liste des profiles des postes distant -#
# -----------------------------------------#

foreach ($Ordinateurs in Get-Content $Ordinateurs)
{
$Count=0
# Recherche de tous les profils utilisateurs (hors "Admin*" et hors "Windows* , etc.)"
Get-WmiObject Win32_UserProfile  -ComputerName $Ordinateurs| 
Where {($_.LocalPath -notlike $Admin) -and ($_.LocalPath -notlike $Windows) -and ($_.LocalPath -notlike $Classicnet) -and ($_.LocalPath -notlike $defaut)}|
Select-Object -Property LocalPath, SID, PSComputerName, Loaded ,LastUseTime|
Export-Csv -NoTypeInformation -Encoding UTF8 -Append -Path "$Path\Ordinateurs.csv"
% {$Count++}
}

#---------------------------
# Isolation de la valeur LOCALPATH
#---------------------------

$epo = import-csv -path "D:\PowerShell\Profil_Users\Ordinateurs.csv"
$epo | select -Property LOCALPATH | Export-csv -path "D:\PowerShell\Profil_Users\Localpath.TXT" -NoTypeInformation
Isolation de la valeur LocalPath --> ok , amis avec des " " au début et fin de chaque entrée, Exemple : "C:\Users\TOTO"

Point Bloquant --> lors de la vérification de l’existence du répertoire , j’ai tjr un retour False car il prend en compte les " " dans la chaine

J'ai déja essayé d'utiliser -replace mais cela ne donne pas le résultat souhaité.

Pouvez-vous m'orienter vers une solution. PLEASE.

part la suite :
Test de l’existence du répertoire C:\Users\#### : si existant supprimer le répertoire et écrire dans un fichier Txt l’action réalisée.
Si non existent : récupérer le SID dans un fichier txt SID.txt qui me servira pour nettoyer la base des registres par la suite.

Après cela, je ferais en sorte de mettre en place un fichier log avec les actions réalisées en détail ( Répertoires supprimée, anomalies, clés registres supprimées, etc)