Сценарий выхода из системы Windows для изменения реестра под HKCU

Как маленький является "очень маленьким"? Пользовательский оборот достаточно действительно высоко, что это стоит инвестировать в инфраструктуру управления пользователями? Если это - пару раз вещь, возможно, лучший способ решить, это с системой билета справки, которой Вы отвечаете.

Если действительно важно делегировать эту способность, насколько технический человек, который сделает это? Они могли обработать sshing в сервер и выполнение cyradm из командной строки? (Или использование его удаленно, но я не думаю, что это поддерживает ssl, таким образом, это не так безопасно.)

Другой подход должен был бы иметь сервер, проходят проверку подлинности против каталога LDAP, и компания могла использовать любое количество типичных инструментов LDAP-ведения-счетов. Действительно ли компания является магазином Linux, или действительно ли они центральны Windows? Возможно, у них уже есть AD сервер, даже.

При сбое этого, там существует проект, названный сетью-cyradm, которая могла бы сделать то, что Вы хотите. Я никогда не использовал его, все же.

3
задан 26 February 2013 в 14:18
3 ответа

На самом деле было две проблемы.

Во-первых, при наличии политики замыкания на себя нужно быть осторожным с rsop.msc, потому что просто используется значение по умолчанию (т. Е. Отметка " переход к последней странице мастера без сбора дополнительных данных «сразу после выбора контейнеров пользователя и компьютера» может не отражать истинные результаты политики. Чтобы получить реалистичные результаты, нужно хотя бы поставить галочку на второй странице (и заменить или объединить). Соблюдение осторожности помогает правильно диагностировать , если сценарий будет запущен при выходе из системы.

Во-вторых, SetStringValue создает значения, если они не существуют раньше, но это не создать несуществующие ключи. Следовательно, в сценарии необходимо ввести

oReg.CreateKey HKCU, "SOFTWARE \ Foo"

(для записи

0
ответ дан 3 December 2019 в 07:05

Я представляю вас используют reg.exe для изменения записей реестра. Проблема в том, что reg.exe выполняется в отдельном процессе, и сценарий выхода из системы только ожидает своего завершения. Поэтому вполне вероятно, что куст реестра будет выгружен до того, как будет выполнено редактирование.

Я думаю, вы можете решить проблему, используя две строки WScript, как в следующем примере:

Set objShell = CreateObject("WScript.Shell")
objShell.Run "REG ADD HKCU\key ...",,true

Третий параметр objShell.Run ], называемый bWaitOnReturn , сообщает скрипту дождаться завершения внешнего процесса, прежде чем продолжить выполнение.

0
ответ дан 3 December 2019 в 07:05

Я довольно часто использую сценарии выхода из системы. Реестр пользователя все еще загружается при запуске сценария, и в его реестр можно вносить изменения. По умолчанию сценарии выхода из системы выполняются синхронно. У меня есть сценарии выхода из реестра, которые читаются из реестра пользователя, но мне никогда не приходилось писать. Даже в этом случае, я ожидаю, что он будет работать нормально.

Я взял ваш фрагмент кода выше, поместил его в файл и назначил его как сценарий выхода из локальной групповой политики на виртуальной машине Windows XP SP3 и получил желаемый результат. Я установил HKCU \ Software \ Foo \ Bar равным xxx , вышел из системы, снова вошел в систему и обнаружил, что значение было изменено на Baz , как и ожидалось.

Я думаю, у вас другая проблема, помимо исполнения скрипта. Я добавил в код вызов MsgBox , чтобы я мог «видеть» код, выполняющийся при выходе из системы. Добавление MsdBox не повлияло на поведение, связанное с реестром, но дало мне визуальное указание на то, что код запущен (и задержал выход из системы, пока я не закрыл диалоговое окно).

(Я могу продолжить и протестировать на Windows 7 тоже , если хотите, но я не ожидаю никаких изменений в функциональности.)

2
ответ дан 3 December 2019 в 07:05

Теги

Похожие вопросы