Назад | Перейти на главную страницу

Удалить значение реестра, специфичное для пользователя и содержащееся в кусте пользователя.

Пытаюсь запустить сценарий в моем домене для удаления значения реестра, содержащегося в кусте пользователя.

Это путь, по которому он будет расположен: HKCU:\Software\Microsoft\OfficeCompat\Outlook\AddinCleanLoad\
и
HKCU:\Software\Microsoft\OfficeCompat\Outlook\AddinUsage\

Очевидно, это нужно будет изменить для HKEY_USERS + SID при работе от имени другого пользователя или удаленно. Но я не ищу все существующие SID.

Это значение реестра, которое зависит от пользователя: C:\Users\USERNAME\AppData\Roaming\ZeroSpam\adxloader.dll

Итак, найдите значение в улье. Я мог бы использовать переменную $ env: APPDATA в PowerShell, но, поскольку я удаляю значение, я собираюсь запустить его от имени администратора, поэтому это не сработает (переменная вернет путь администратора) .

Итак, как бы мне пойти в Powershell для поиска всех (обратите внимание на подстановочный знак в SID) HKEY_USERS\S-1-5-21-*\Software\Microsoft\OfficeCompat\Outlook\AddinCleanLoad\ и HKEY_USERS\S-1-5-21-\Software\Microsoft\OfficeCompat\Outlook\AddinUsage\ найти и удалить любое значение *\AppData\Roaming\ZeroSpam\adxloader.dll ? (путь перед dll важен, поскольку существует другой файл программы, и я не хочу его удалять)

Я безуспешно пробовал: Get-ChildItem -Path "REGISTRY::HKEY_USERS\" -Recurse -Include *\AppData\Roaming\ZeroSpam\* -ErrorAction SilentlyContinue

Удалось сделать то, что я хочу, с этим:

$path = "REGISTRY::HKEY_USERS\S-1-5-21*\Software\Microsoft\OfficeCompat\Outlook\Addin*"
$values = (Get-Item -Path $path ).GetValueNames() | Where {$_ -like "*\AppData\Roaming\ZeroSpam\*"}
Remove-ItemProperty -Path $path -Name $values[0] -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $path -Name $values[1] -ErrorAction SilentlyContinue