最近,我遇到过需要使用PowerShell设置默认壁纸以及任何现有用户壁纸的情况。
我们可以通过替换文件C:\ Windows \ Web \ Wallpaper \ Windows \ img0.jpg来设置默认壁纸,但我还没有找到合适的解决方案来替换任何现有的壁纸。
我曾经想过/尝试过的一些事情:
我在这里完全遗漏了什么吗?有没有人建议我们如何设置它?
提前致谢!
答案 0 :(得分:0)
经过一番游戏,这就是我想出的。我不是PowerShell大师所以请随意抛弃一些更好的解决方案。
# Get each folder under "Users"
$drive = (Get-Location).Drive.Root
$users = Get-ChildItem "$($drive)Users"
# For each user, load and edit their registry
foreach ( $user in $users ) {
# If this isn't us, load their hive and set the directory
# If this is us, use HKEY_CURRENT_USER
if ( $user.Name -ne $env:username ) {
reg.exe LOAD HKU\Temp "$($drive)Users\$($user.Name)\NTUSER.DAT"
$dir = "Registry::HKEY_USERS\Temp\Control Panel\Desktop"
} else {
$dir = "Registry::HKEY_CURRENT_USER\Control Panel\Desktop"
}
# We don't care about users that don't have this directory
if ( (Test-Path $dir) ) {
# Set the image
Set-ItemProperty -Path $dir -Name "Wallpaper" -value "$($drive)Users\Public\Pictures\Sample Pictures\Tulips.jpg"
# Set the style to stretch
Set-ItemProperty -Path $dir -Name "WallpaperStyle" -value 2
}
# Unload user's hive
if ( $user.Name -ne $env:username ) {
[gc]::Collect()
reg.exe UNLOAD HKU\Temp
}
}
我要感谢TheMadTechnician提出的GPO建议。在正常情况下,我绝对同意!