我正在尝试使用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来运行本地工作的完全相同的命令,但我得到了同样的错误。
我有什么遗失的吗?你们中的任何一个人都可以指出我做错了什么吗?我真的很想用内置命令来做这件事,而不是在可能的情况下安装第三方模块。
答案 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
这不仅会获得注册表项,还会获得与配置文件关联的文件夹。