Der*_*rek 3 registry powershell
我'HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'有一些路径设置为旧服务器。例如:
“我的图片”设置为'\\DeadServer\RedirectedFolders\%UserName%\My Documents\My Pictures'
我想替换"\\DeadServer\RedirectedFolders"为"C:\Users"
这怎么能在powershell?
Get-ItemProperty -path“Microsoft.PowerShell.Core\Registry::HKEY_USERS\*\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell 文件夹”| ?{$_.PSObject.Properties -如“*DeadServer*”}
但我认为我对我想要更改的条目如何是“属性”而不是“项目”感到困惑,并且我不知道如何像项目一样迭代属性。
\DeadServer\RedirectedFolders\%UserName%\My Documents\My Pictures` 上的回收站已损坏。您想清空该驱动器的回收站吗?
登录后,文件夹重定向将无法应用。
这是我尝试手动将更改强制返回本地存储。
我想到了。花了我很长时间,但我写了一个相当不优雅的脚本:
Get-Item -ErrorAction SilentlyContinue -path "Microsoft.PowerShell.Core\Registry::HKEY_USERS\*\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" |
foreach {
Get-ItemProperty -Path "Microsoft.PowerShell.Core\Registry::$_" |
foreach {
$CurrentUserShellFoldersPath = $_.PSPath
$SID = $CurrentUserShellFoldersPath.Split('\')[2]
$_.PSObject.Properties |
foreach {
if ($_.Value -like "*DeadServer*") {
write-host "Path:`t`t"$CurrentUserShellFoldersPath
write-host "SID:`t`t"$SID
write-host "Name:`t`t"$_.Name
write-host "Old Value:`t"$_.Value
$newValue = $_.Value
$newValue = $newValue -replace '\\\\DeadServer\\RedirectedFolders', "C:\Users"
$newValue = $newValue -replace "My Documents\\", ""
$newValue = $newValue -replace "My ", ""
Write-Host "New Value:`t"$newValue
Set-ItemProperty -Path $CurrentUserShellFoldersPath -Name $_.Name -Value $newValue
Write-host "================================================================"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你们有的话,我很想了解一种更快或更优雅的方法来做到这一点。
| 归档时间: |
|
| 查看次数: |
19096 次 |
| 最近记录: |