1

尝试制作一个脚本来备份特定文件夹,然后在 HKLM...\ProfileLists 下重命名目标用户的 GUID 密钥,但是 rename-item 命令会复制密钥并创建一个带有附加名称的新密钥,尽管具有完整的使用权

尝试使用 -force,尝试使用 move-item 而不是重命名,但它给出了完全相同的结果,一个与原始密钥相同但附加名称的新密钥

if ((Test-Path $FULLPATH)) { 
    Rename-Item $FULLPATH -NewName "$SSID.bak" -Force 
    if ($?) { 
         Write-Host "$USERNAME was SUCCESSFULLY renamed in the registry" 
    } 
} 

预期结果是仅重命名注册表中的 GUID 键。实际结果是具有正确附加名称的新副本的重复键。

Rename-Item :指定路径的注册表项不存在。在 line:9 char:5 + Rename-Item $FULLPATH -NewName "$SSID.bak" -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (HKEY_LOCAL_MACH...\folderredirect:String) [Rename-Item], ArgumentException + FullyQualifiedErrorId : System. ArgumentException,Microsoft.PowerShell.Commands.RenameItemCommand

Rename-Item :对象引用未设置为对象的实例。在 line:9 char:5 + Rename-Item $FULLPATH -NewName "$SSID.bak" -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Rename-Item], NullReferenceException + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands .RenameItemCommand

密钥确实存在,我可以再次运行相同的命令作为证明(由于测试路径)。

详细输出确实确认其复制

VERBOSE: Performing the operation "Copy Key" on target "the key in question"
4

2 回答 2

0

这个对我有用。你的变量是这样设置的吗?

$SSID = 'S-1-5-21-1212123708-1212126490-1212120831-1001'
$FULLPATH = 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1212123708-1212126490-1212120831-1001'
rename-item $fullpath -newname "$SSID.bak"
于 2019-08-07T22:35:43.383 回答
0

我无法使用带有完整路径的 rename-item 重命名键,也无法使用变量。但是通过将 rename-item 替换为

# Rename the Registry profile if ((Test-Path $FULLPATH)) { reg copy "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SSID" "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SSID-$(Get-Date -f yyy-MM-DD)" /s /f if (( $? -eq 'True' )) { reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$SSID" /f } if (( $? -eq 'True' )) { Write-Host "$USERNAME was SUCCESSFULLY renamed in the registry" }

由于语法不同(无冒号),因此必须在 reg 复制/删除命令中使用完整路径的一半。这有效

于 2019-08-08T17:41:17.790 回答