尝试在我的域中运行一个脚本来删除用户配置单元中包含的注册表值。
这是它将被定位的路径:HKCU:\Software\Microsoft\OfficeCompat\Outlook\AddinCleanLoad\
和
HKCU:\Software\Microsoft\OfficeCompat\Outlook\AddinUsage\
显然,当以其他用户身份或远程运行时,需要更改此设置HKEY_USERS + SID
。但我不想搜索所有现有的 SID。
这是根据用户而变化的注册表值:C:\Users\USERNAME\AppData\Roaming\ZeroSpam\adxloader.dll
因此,在配置单元中找到值我可以在 powershell 中使用 $env:APPDATA 变量,但由于我要删除该值,我将以管理员身份运行,因此这不起作用(变量将返回管理员的路径)。
那么我该如何在 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
答案1
通过这个我成功地做到了我想做的事:
$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