Возможный дубликат:
Расписание смены обоев Windows XP без дополнительных приложений Я думаю, что это не дубликат, потому что я спрашивал, как изменить фон другого пользователя, не текущего вошедшего в систему. Я уже знаю, как это сделать. Пожалуйста, проголосуйте, чтобы повторно открыть мой вопрос.
Мне было интересно, как изменить фон рабочего стола конкретного пользователя. Я понимаю, что вам нужно изучить, HKEY_USERS
но я не знаю, что делать дальше. Мне нужно сделать это в пакетном файле. Это для Windows XP.
решение1
Это можно сделать с помощью PowerShell:
$user = Get-WMIObject -Query "select * from Win32_UserAccount where Name='<username>'"
$path = 'Registry::HKEY_USERS\' + $user.SID + '\Control Panel\Desktop\'
Set-ItemProperty -path $path -name Wallpaper -value 'C:\path\to\wallpaper.jpg'
rundll32.exe user32.dll UpdatePerUserSystemParameters
Объяснение:
- Первая строка получает информацию о данном пользователе с помощью WMI. В частности, вам нужен SID, который идентифицирует этого пользователя в
HKEY_USERS
кусте реестра. Для получения дополнительной информации см.Получить-WMIObject,Класс Win32_UserAccountиЗапрос с помощью WQL. - Вторая строка просто создает путь к правильному разделу реестра.
- Третья строка устанавливает значение данной записи в данном разделе реестра. См.Set-ItemPropertyЧтобы получить больше информации.
- Четвертая строка принудительно обновляет обои. Это необходимо только в том случае, если указанный пользователь вошел в систему и вам нужно, чтобы изменение вступило в силу немедленно.