3
我需要检查网络中Windows客户端上所有用户的一些设置。所有用户都有漫游配置文件。使用powershell加载ntuser.dat
我已经编写了一个Powershell脚本来加载用户的NTuser.dat的脱机副本并读出特定的键。然后该文件被卸载并且下一个被加载到注册表中。
问题是,约10个用户没有加载新文件。当脚本再次启动时,用户仍然无法加载。新用户只有在关闭Powershell提示符并打开一个新的用户之后。脚本经常在大约10个用户后停止。
new-Psdrive -name <blah> -PSProvider Registry -root <blih>
cd <blah>:
# Some Set-ItemProperty and Get-ItemProperty calls here referring to
# your PSDrive and using PowerShell variables
Remove-PSDrive <blah>
如果你仍然有你的一些PSDrive来的引用:
$userlist = ls "C:\Temp calls\profiles"
foreach ($user in $userlist){
$username = $user.name
#$username = "ciproda"
reg load "hklm\$username" "C:\Temp calls\profiles\$username\NTUSER.DAT" | Out-Null
...
Here I check the keys
...
[gc]::collect()
start-sleep -s 3
reg unload "hklm\$username"
}
这确实有帮助,使用的注册表项仍然留在我的注册表中,但新的加载。我的脚本现在可以运行,我只需要在运行后重新启动。 – Wriswith
什么类型的东西是? –
tor
经过一番研究,我可以回答我自己的问题:应该是这个例子中的“hklm:\ $ username” –
tor