Как изменить фон рабочего стола определенного пользователя в пакетном файле

Как изменить фон рабочего стола определенного пользователя в пакетном файле

Возможный дубликат:
Расписание смены обоев 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Чтобы получить больше информации.
  • Четвертая строка принудительно обновляет обои. Это необходимо только в том случае, если указанный пользователь вошел в систему и вам нужно, чтобы изменение вступило в силу немедленно.

Связанный контент