Bonjour à tous,
Je cherche à mettre en place des opérations de nettoyage/maintenance sur les profils utilisateurs.
J'ai trouvé la manière de récupérer un objet Session, mais celui-ci ne fonctionne que sous les OS à partir de Vista :
(je vous épargne l'ensemble du code, qui forme quelques pages assez imbuvables)
Ce qui permet, par exemple, de faire plus loin un joli :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $session = Get-WmiObject -Class Win32_UserProfile -ComputerName LocalHost | Where-Object {$_.LocalPath -eq("C:\Users\$user")}
qui fait un travail très propre (ne se contente pas de supprimer uniquement le dossier du profil)
Code : Sélectionner tout - Visualiser dans une fenêtre à part $session.Delete()
Et pour cause (selon ce que j'en ai compris) : les classes WMI ne semblent pas implémentée sous XP !
En effet, j'ai droit à une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Get-WmiObject : Classe non valide
Je précise deux choses :
- tout d'abord, le chemin d'accès au dossier du profil n'est pas en question : ça ne prend pas le WmiObject, même si je mets "Documents and Settings" en lieu et place de "Users";
- Ensuite, sachant que je travaille en local sur la machine (et non via AD) je cherche bien à récupérer le PROFIL Utilisateur, pas l'Utilisateur, que je récupère autrement, via :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $hostname = (Get-Item Env:\COMPUTERNAME).value $computer = [adsi] "WinNT://$hostname" $objLocalAccount = $computer.Create("User", $user) # etc. $objLocalAccount.SetInfo() # puis plus loin, par exemple $computer.Delete("User",$user)
Donc, pour en revenir à la récupération de ce profil Utilisateur, ça fonctionne très bien sous SeVen & affiliés, mais je n'ai toujours pas réussi à trouver un équivalent qui fonctionnerait sous XP.
Je peux bien sûr accéder au dossier du profil, le modifier voire le supprimer, mais ce que je veux est bien la SESSION, afin d'avoir la main sur les (éventuelles) propriétés de l'objet, la suppression du dossier de profil ne suffisant pas à supprimer proprement toutes les traces du profil par exemple.
D'où ma question principale : quelqu'un connaitrait-il un équivalent qui permettrait (via objet adsi ou autre classe ou objet que je ne connais pas, je ne sais pas) la manipulation d'une session d'utilisateur
Voilà, j'espère avoir été clair; si quelqu'un a une idée là-dessus, j'avoue avoir passé de longues heures de recherches, mais je n'ai rien trouvé qui réponde à ma question pour un usage sous XP...
Merci
Partager