PowerShell注册表配置单元卸载错误

问题描述 投票:2回答:1

我遇到了一个问题,尽管我很努力,但我还是无法解决。

基本上我已经创建了一个PowerShell脚本来为远程Windows 10 Amazon WorkSpace上的特定用户更改HKU配置单元中的\更改值。该脚本加载配置单元并完美地进行更改,但在尝试卸载配置单元时出现错误。我已经尝试了不同论坛上提出的各种方法,但无济于事。以下是我遇到问题的脚本部分:

$WorkSpace = "blahComputerName"
$PSS = New-PSSession -ComputerName $WorkSpace
$UserAcc = "XXXXX"
$SID = (Get-ADUser -server MyDomain.com -Identity $UserAcc).SID.Value

    Invoke-Command -Session $PSS -ArgumentList $SID, $UserAcc -ScriptBlock {


New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS

reg load "HKU\$($args[0])" "D:\Users\$($args[1])\NTUser.Dat" 

Clear-ItemProperty -Path 
"HKU:\$($args[0])\SOFTWARE\Microsoft\Office\Common\UserInfo" -Name 
"UserInitials" 

[gc]::collect()
Start-Sleep -Seconds 5

reg unload "HKU\$($args[0])"  


Remove-PSDrive -Name HKU

}

Remove-PSSession -Id $PSS.Id  

我还读到使用$ SomeThing.Handle.Close()将关闭PowerShell可能仍然可能导致错误的任何打开句柄,但我无法看到如何在此上下文中使用它。

这是确切的错误:

错误:访问被拒绝。 + CategoryInfo:NotSpecified :(错误:访问被拒绝。:String)[],RemoteException + FullyQualifiedErrorId:NativeCommandError + PSComputerName:blahComputerName

我已手动观察远程注册表配置单元正在加载,然后显然卸载但这个错误让我担心并想解决它。我已经证明它的reg卸载“HKU \ $($ args [0])”导致错误,但无法找到正确的解决方案。

该脚本使用所需的提升权限运行,因此不是这样。远程WorkSpace处于注销状态。

任何建议将不胜感激。谢谢

powershell
1个回答
0
投票

虽然垃圾收集很好,但问题源于如何处理这个命令;

Clear-ItemProperty -Path 
"HKU:\$($args[0])\SOFTWARE\Microsoft\Office\Common\UserInfo" -Name 
"UserInitials" 

我建议在变量中捕获它,就像这样;

$n = Clear-ItemProperty -Path "HKU:\$($args[0])\SOFTWARE\Microsoft\Office\Common\UserInfo" -Name "UserInitials" 

哪个应该可以让你正确地清理它,就像这样;

$n.dispose()
$n.close()

注意上面的内容可能是多余的(Dispose应该关闭,关闭应该调用dispose)。

© www.soinside.com 2019 - 2024. All rights reserved.