Запуск из раздела HKLM\...\RunOnce
Доброго времени суток!
В разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce создал задание.
Но заметил что если после перезагрузки входишь под учётной записью, которая входит в группу пользователи, то это задание не выполняется, хотя на его выполнение у пользователя хватает прав (закинув в ...\AllUsers\...\Автозагрузка\ оно выполнилось успешно).
Причём перезагрузившись и войдя под админом это задание выполнилось, то есть когда я заходил под пользователем оно из RunOnce не удалилось.
Как быть в такой ситуации когда хочу разово выполнить задуние под первым вошедшим пользователем, учитывая что он может быть не в админах?
Заранее благодарен!
|
myhouse_1991 |
12-01-2011 11:24 1586764 |
Цитата:
Цитата SANIOK_AV
то есть когда я заходил под пользователем оно из RunOnce не удалилось.
|
А вы не знали, что большинство значений в HKEY_LOCAL_MACHINE могут писать только администраторы? Чтобы выполнить RunOnce, нужно его еще отсюда удалить, на что у пользователя нет прав. Вы можете, конечно, переправить права доступа, если безопасность вас не волнует, но он подействует только на одного пользователя и потом удалиться.
Цитата:
Цитата SANIOK_AV
Как быть в такой ситуации когда хочу разово выполнить задуние под первым вошедшим пользователем
|
Насколько я понял, это новый созданный пользователь? Загрузите куст C:\Documents and Settings\Default User\NTUSER.DAT и отредактируйте. После не забудьте выгрузить. Теперь при создании нового пользователя будут импортироваться еще и ваши настройки в HKEY_CURRENT_USER.
|
Цитата:
Цитата myhouse_1991
Чтобы выполнить RunOnce, нужно его еще отсюда удалить, на что у пользователя нет прав. »
|
Честно говоря думал что входящий пользователь читает и выполняет из RunOnce, а удаляется возможно уже из под system.
Спасибо, буду знать.
Цитата:
Цитата myhouse_1991
Насколько я понял, это новый созданный пользователь? »
|
В том то и дело что нет. :(
|
myhouse_1991 |
12-01-2011 14:00 1586889 |
Цитата:
Цитата SANIOK_AV
Честно говоря думал что входящий пользователь читает и выполняет из RunOnce, а удаляется возможно уже из под system.
|
Его explorer.exe выполняет.
Цитата:
Цитата SANIOK_AV
В том то и дело что нет.
|
Подождём других - может кто-то разбирался, как добавить сразу для всех существующих пользователей настройку в пользовательский куст.
Как другой вариант: можно сделать bat'ник, который проверяет пользовательскую переменную. Если она установлена на какое-то значение - выполнить следующие и поменять в конце переменную, если нет - ничего не делать.
|
Цитата:
Цитата myhouse_1991
Его explorer.exe выполняет. »
|
Будем знать, спасибо!
Цитата:
Цитата myhouse_1991
Подождём других - может кто-то разбирался, как добавить сразу для всех существующих пользователей настройку в пользовательский куст. »
|
Учитывая то, что "разовый" (RunOnce) запуск будет добавляться когда нужный нам пользовательский куст будет занят текущим пользователем.
Цитата:
Цитата myhouse_1991
Как другой вариант: можно сделать bat'ник, который проверяет пользовательскую переменную. Если она установлена на какое-то значение - выполнить следующие и поменять в конце переменную, если нет - ничего не делать. »
|
Если можно, поподробнее об этом варианте.
|
Petya V4sechkin |
12-01-2011 14:40 1586916 |
|
Цитата:
Цитата Petya V4sechkin
Применение твиков реестра ко всем учетным записям »
|
Но ведь куст текущего пользователя будет занят.
А задание на запуск будет добавляться не от его имени.
т.е. машина запущена под User, а задание будет добавляться от Admin, и в итоге из под Admin не получится загрузить куст реестра User, т.к. он уже загружен. :(
|
myhouse_1991 |
12-01-2011 17:39 1587057 |
Цитата:
Цитата SANIOK_AV
Если можно, поподробнее об этом варианте.
|
Примерно так:
PHP код:
@echo off
if defined NoRunThis GOTO :exit
REG ADD "HKCU\Environment" /v NoRunThis /t REG_EXPAND_SZ /d 1
echo some actions here
:exit
Добавляете батник в ...\AllUsers\...\Автозагрузка. Он будет всё время запускаться, но выполнит указанные действия до :exit лишь 1 раз. После нужно удалить пользовательскую переменную или использовать другую.
|
Интересный вариант, Спасибо!
P.S.: А вот интересно можно как то запуская что то от имени другого пользователя узнать под кем в данное время загружена система?
|
Petya V4sechkin |
13-01-2011 12:34 1587650 |
Цитата:
Цитата SANIOK_AV
от имени другого пользователя узнать под кем в данное время загружена система?
|
Есть команда Qwinsta.exe
|
Petya V4sechkin,
Если будет подключен хотя бы еще один пользователь, с помощью этой команды система его покажет?!
|
Цитата:
Цитата Petya V4sechkin
Есть команда Qwinsta.exe »
|
Спасибо!
Но на некоторых машинах выдаёт:
Код:
Ошибка 1702 получения имен сеансов
Ошибка [1702]:Недопустимый дескриптор привязки.
Может какая-нибудь служба не запущена?
|
Petya V4sechkin |
13-01-2011 15:26 1587776 |
Цитата:
Цитата SANIOK_AV
Может какая-нибудь служба не запущена?
|
Службы терминалов, наверное.
|
Цитата:
Цитата Petya V4sechkin
Службы терминалов, наверное. »
|
Таки да...(((
А так чтоб Службы терминалов не запускать можно как то узнать под каким пользователем ОС загружена?
|
Petya V4sechkin |
13-01-2011 15:37 1587789 |
SANIOK_AV, попробуйте:
Код:
WMIC Process Where "Name = 'explorer.exe'" Call GetOwner
|
Цитата:
Цитата Petya V4sechkin
попробуйте:
Код:
WMIC Process Where "Name = 'explorer.exe'" Call GetOwner »
|
Если компьютер загружен под учётной записью User, то применив приведеный Вами код от учётной записи User получаем:
Код:
Параметры вывода:
instance of __PARAMETERS
{
Domain = "comp1";
ReturnValue = 0;
User = "User";
};
Если же применяем код от учётной записи Admin (компьютер загружен под учётной записью User) то получаем:
Код:
Параметры вывода:
instance of __PARAMETERS
{
ReturnValue = 2;
};
:(
|
Время: 16:22.
© OSzone.net 2001-