Compare commits
No commits in common. "8e625fff00cabedf9732b027d9b99eee311e5c9c" and "4ad900bcb0c6042b9033fa33124a2f10cca32459" have entirely different histories.
8e625fff00
...
4ad900bcb0
2 changed files with 1 additions and 66 deletions
|
@ -1,5 +1,5 @@
|
||||||
Title: Utiliser Gio en ligne de commande
|
Title: Utiliser Gio en ligne de commande
|
||||||
Category: sysadmin
|
Category: le blog
|
||||||
Tags: pl-fr, GIO, fichiers, terminal
|
Tags: pl-fr, GIO, fichiers, terminal
|
||||||
Date: 2019-04-25 1:30
|
Date: 2019-04-25 1:30
|
||||||
Status: published
|
Status: published
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
Title: Utiliser powershell pour supprimer des clés de registres
|
|
||||||
Category: sysadmin
|
|
||||||
Tags: Powershell, Windows, script
|
|
||||||
Date: 2019-06-04 1:30
|
|
||||||
Status: published
|
|
||||||
|
|
||||||
Oui je l'avoue, je fais pas mal de scripts powershell au boulot, et je ne trouves
|
|
||||||
pas ça déplaisant. Il bien le faut dire : pour automatiser des choses sous
|
|
||||||
Microsoft Windows, c'est une étape obligée.
|
|
||||||
|
|
||||||
## Modifier des clefs de registres utilisateurs
|
|
||||||
|
|
||||||
Une application métier a besoin de changement de paramétrages, ceux ci peuvent
|
|
||||||
être fait via le chemin `HKLM:\SOFTWARE\WOW6432Node\<application>`. Sauf que
|
|
||||||
c'est trop simple... Je ne sais pas vraiment pourquoi[^n_defi], mais
|
|
||||||
l'application écrit aussi ces paramètres dans la ruche de certains
|
|
||||||
utilisateurs, plus spécifiquement dans celle stockée dans le fichier
|
|
||||||
`C:\Users\<user>\AppData\Local\Microsoft\Windows\UsrClass.dat`, utilisée dans
|
|
||||||
`HKU:\<SID>_classes\VirtualStore\MACHINE\SOFTWARE\WOW6432Node\<application>`.
|
|
||||||
|
|
||||||
Ceux-ci "surchargent" les parametres globaux empêchant les nouveaux paramètres
|
|
||||||
de fonctionner, je dois donc les supprimer **de ces utilisateurs**. Mais j'ai 80
|
|
||||||
comptes de crées sur cette machine, un peu long à la main.
|
|
||||||
|
|
||||||
Ne causons pas trop du registre Windows, [ce site][l_winreg] le fait très bien
|
|
||||||
(en anglais)
|
|
||||||
|
|
||||||
[l_winreg]:https://www.techsupportalert.com/content/deeper-windows-registry.htm
|
|
||||||
|
|
||||||
## Avec un script powershell
|
|
||||||
|
|
||||||
Mettre en place un script est donc tout indiqué dans ce cas, mais croyez-moi
|
|
||||||
c'est pas évident de trouver des exemples de codes sur le "montage" des ruches,
|
|
||||||
voici donc le script réalisé pour ce cas :
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$dir = "VirtualStore\MACHINE\SOFTWARE\WOW6432Node\mon_appli"
|
|
||||||
# Récupération des utilisateurs ayant un compte sur le systeme
|
|
||||||
$sid = Get-WmiObject -Class Win32_UserAccount | Select SID
|
|
||||||
$profile_list = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\"
|
|
||||||
New-PSDrive -PSProvider Registry -Root HKEY_USERS -Name HKU | Out-Null
|
|
||||||
foreach ($s in $sid) {
|
|
||||||
# Recupération du répertoire de l'utilisateur
|
|
||||||
$path = Get-ItemPropertyValue -Path "$profile_list$($s)\" -Name "ProfileImagePath" -ErrorAction SilentlyContinue
|
|
||||||
if ( -not $path -eq ""){
|
|
||||||
try {
|
|
||||||
# Chargement de la ruche et supression du chemin
|
|
||||||
reg load "HKU\$($s)_classes" "$($path)\AppData\Local\Microsoft\Windows\UsrClass.dat" 2>&1 | Out-Null
|
|
||||||
Remove-Item -Path "HKU:\$($s)_Classes\$($dir)" -recurse
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
write-host "Can't remove for $s"
|
|
||||||
}
|
|
||||||
[gc]::collect()
|
|
||||||
Start-sleep -Seconds 2
|
|
||||||
reg unload "HKU\$($s)" 2>&1 | Out-Null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Remove-PSDrive -Name HKU
|
|
||||||
```
|
|
||||||
|
|
||||||
Et voilà!
|
|
||||||
|
|
||||||
[^n_defi]: enfin si je sais : c'est une application en Windev, ce qui en dit
|
|
||||||
beaucoup sur sa qualité générale...
|
|
Loading…
Add table
Add a link
Reference in a new issue