Обновление реестра каждого профиля в Windows Server 2003

StackOverflow https://stackoverflow.com/questions/1423687

Вопрос

У меня есть система Windows Server 2003, которая используется для служб терминалов. Мы не используем перемещаемые профили. Мы не используем сценарии входа. У меня есть от тридцати до сорока учетных записей, которые входят в эту систему и поэтому имеют локальные профили.

Один из пакетов программного обеспечения, которые установлены в этой системе, использует HKCU / Software reg tree для своего лицензирования, поэтому каждый пользователь имеет лицензионный ключ в своем локальном профиле.

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

Это было полезно?

Решение

Есть несколько способов добиться того, чего вы хотите - один более грубый, чем другой. Терминальные серверы могут быть кошмаром развертывания - пользователи могут не иметь прав на запуск msiexec.exe , и поэтому самовосстановление MSI может завершиться неудачно. Вот почему я обычно предпочитаю использовать командные файлы , сценарии или reg файлы для той ситуации, с которой вы столкнулись.

Я бы использовал функцию активной настройки Microsoft . Это просто необычное имя для функции, которая позволяет вам «запускать что-то один раз для каждого профиля при входе в систему». Вот хорошее объяснение: http://www.etlengineering.com/installer/activesetup .txt

Вот пример записи активной настройки для файла MSI (это содержимое файла * .reg):

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode]]
"StubPath"="[SystemFolder]msiexec.exe /q /fou [ProductCode]"

" StubPath " Командой может быть что угодно "runnable", и в вашем случае я бы предложил не запускать msiexec.exe, а использовать vbscript через cscript.exe или какой-либо другой пакетный механизм (CMD, REG, Etc ...). Причина в том, что я сказал выше: msiexec.exe может быть запрещено запускать для пользователей сервера терминалов. Другими словами, что-то вроде этого:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\MyProduct]
"StubPath"="[SystemFolder]cmd.exe /k C:\SomeScript.cmd"
<Ч>

Существуют и другие способы добавления данных в профиль каждого пользователя, например использование объявленных ярлыков MSI и самовосстановление , но я бы не рекомендовал это для терминальных серверов. См. этот ответ serverfault.com для получения информации о проблемах с использованием файлов MSI для настроек реестра. .

Другие советы

Подключите куст реестра программно, измените ключи и закройте куст. В качестве альтернативы вы можете использовать PSExec / runas для запуска " обновить ключи " сценарий от имени этого пользователя , который также решает " edit HKCU " Проблема

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top