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

时间:2017-12-05 18:48:22

标签: windows powershell

我正在尝试使用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来运行本地工作的完全相同的命令,但我得到了同样的错误。

我有什么遗失的吗?你们中的任何一个人都可以指出我做错了什么吗?我真的很想用内置命令来做这件事,而不是在可能的情况下安装第三方模块。

1 个答案:

答案 0 :(得分:0)

如果您要删除用户个人资料但无法使用第三方工具,我建议您使用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

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

相关问题