繁体   English   中英

如何使用PowerShell从远程计算机上删除注册表项?

[英]How do I use PowerShell to remove registry keys from a remote computer?

我正在尝试使用PowerShell删除远程计算机上的配置文件和关联的注册表项。 我使用的帐户在远程计算机上具有管理员权限。 我可以轻松获取帐户的SID或删除配置文件。 尝试删除位于HKLM的帐户的注册表项时,出现了我的问题:\\ SOFTWARE \\ Microsoft \\'Windows NT'\\ CurrentVersion \\ ProfileList。 每个SID都有一个密钥,我想删除与我要删除的配置文件相匹配的密钥。

到目前为止,这是我尝试过的:

Enter-PSSession $comp
Remove-Item "HKLM:\SOFTWARE\Microsoft\'Windows NT'\CurrentVersion\ProfileList\$SID"
Exit-PSSession

得到以下结果:

Remove-Item : Cannot find path 'HKLM:\SOFTWARE\Microsoft\'Windows 
NT'\CurrentVersion\ProfileList\S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-1000' because it does not exist.

如果我在本地计算机上运行相同的命令,则密钥将成功删除。

我也尝试过:

Enter-PSSession $comp
Remove-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' -name $SID
Exit-PSSession

其中返回以下内容:

Remove-Itemproperty : Requested registry access is not allowed.

我也尝试使用invoke-command运行与本地工作完全相同的命令,并且遇到相同的错误。

我有什么想念的吗? 你们当中有人可以指出我做错了吗? 我真的很想使用内置命令来执行此操作,而不是如果可能的话安装第三方模块。

如果您要删除用户配置文件并且不能使用第三方工具,我建议您使用CIM类。

Get-CimInstance -ClassName Win32_UserProfile -Filter "SID = 'S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-1000'" -ComputerName $comp | Remove-CIMInstance -WhatIf

如果未启用或配置Winrm,则可以在WMI上进行回退。

Get-WmiObject -Class WIN32_UserProfile -Filter "SID = 'S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-1000'" -ComputerName $comp | Remove-WmiObject -WhatIf

这不仅将获得注册表项,还将获得与配置文件关联的文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM