Пытаюсь запустить сценарий в моем домене для удаления значения реестра, содержащегося в кусте пользователя.
Это путь, по которому он будет расположен: 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