Як змусити оновити членство в групі користувача в Windows 7?


27

Я пишу веб-додаток, який використовує .NET Windows Authentication і покладається на членство в групі користувача, щоб уповноважувати їх у різних областях веб-сайту. Зараз я перебуваю на розробниковій машині, яка НЕ ​​є частиною домену і не використовує AD, натомість я просто використовую локальні групи користувачів. Взагалі це працює нормально, як є.

Однак під час тестування програми мені потрібно додавати та видаляти ролі в обліковому записі користувача, щоб перевірити, чи все працює. Коли я додаю роль, вона, схоже, не поширюється, поки я не вийду з Windows і не ввійду знову.

Чи можна примусово оновити членство в групі без необхідності виходу з системи?


3
Ви маєте на увазі вихід із станції чи веб-сайту?
День

Хороший момент, я уточнив своє запитання, щоб уточнити. Мені потрібно вийти з облікового запису користувача Windows (вийти з Windows) та знову увійти.
kingdango

Це примушує оновлення системи до членства в групі. Після запуску командної задачі введіть провідник ще раз, а потім запустіть Explorer звичайно. у вас з'явиться новий маркер безпеки і у вашому новому екземплярі провідника.

Відповіді:


25
taskkill.exe /F /IM explorer.exe
runas /user:%USERDOMAIN%\%USERNAME% explorer.exe

Це вб'є Explorer, а потім знову відкриє ваш обліковий запис користувача ... Він запропонує вам пароль, і ви отримаєте новий маркер, таким чином оновивши своє членство.


1
Це, мабуть, спрацьовує, але я виявив, що будь-які зіставлені з'єднання приводу порушуються.
SomeGuy

2
не працює для мене в Windows 10 Pro
Дейв Кузен

Дивіться також: woshub.com/… . Для комп’ютера klist -lh 0 -li 0x3e7 purge, для користувача klist purge. NB: Я сам не пробував ці команди; просто повторюючи інформацію з пов'язаної статті.
JohnLBevan

10

Це важко виконати в загальносистемному масштабі, але можливо з окремими виконуваними файлами, вбиваючи їх процес і повторно запускаючи їх під обліковими записами користувача.

Коли ви входите, ви отримуєте маркер, що відображає, серед іншого, ваше членство в групі. Єдиний спосіб оновити цей маркер - це увійти.


Якщо це так, що це облом, це трохи завадить моєму тестуванню. Дякую за розуміння ... Я сподіваюся, що інший користувач отримає кращу відповідь, але я здогадуюсь, що вашим 15k + повтором ви знаєте, про що ви говорите.
kingdango

2
@kingdango ви завжди можете використовувати, runasщоб запустити процес як інший користувач, ніж ваш власний, і маніпулювати груповим членством цього тестового користувача. Кожен раз, коли ви закриваєте і повторно запускаєте процес, використовуючи runasйого, слід створювати новий сеанс, який повинен відображати змінене членство в групі. Я цього не перевіряв, але теоретично це має працювати так.
MDMarra

Це важко через моє середовище розробників, але це варто вивчити. Дякую за швидку та продуману відповідь.
kingdango

4

У мене була подібна ситуація з веб-сайтом, який покладався на членство користувача в AD, щоб дозволити вхід на веб-сайт. Одне, що слід враховувати, - це те, щоб веб-сервер здійснив аутентифікацію / запит на сервер AD з наданими ними повноваженнями; якщо веб-сервер має доступ до AD і просто запитує сервер щодо того, чи є він у групі XYZ, вони отримають список прямо з AD, а не з маркера входу користувача, який вимагає входу / виходу з системи, щоб отримати новий лексеми з належними привілеями.

Я знаю, що зараз ваша розробка машина з опису не має доступу, але це звучало так, як ви маєте на увазі, коли ви розгортаєте її, вам потрібна ця функціональність.

Якщо ви покладаєтесь на маркер, вам доведеться вийти з системи та знову увійти.


Дякую за продуману відповідь. Це один хороший спосіб вирішити проблему. У звичайних ситуаціях я більш ніж радий чекати, поки користувач отримає оновлений контроль доступу, навіть якщо це означає, що їм потрібно вийти з системи та знову увійти до своєї машини. Це лише тестовий сценарій, коли це може бути тягарем, але це дійсно не так вже й велика угода. Чесно кажучи, мені потрібно більше часу для дослідження ярлика. :-)
kingdango

1
Це також може стати в нагоді залежно від сценарію. Якщо сервер запитує DC безпосередньо, це означає, що зміни "мігрують" практично негайно, тому якщо хтось отримує доступ, відключений або доданий, він не потребує циклу входу / виходу клієнта. Це полегшує їхній персонал у сфері ІТ.
Барт Сільверстрім

3

Існує сценарій способу зробити це повністю через командний рядок; ви можете використовувати klist .

klist purge

Purging tickets destroys all tickets that you have cached, so use this attribute with caution. It might stop you from being able to authenticate to resources. If this happens, you will have to log off and log on again.Чи [Purge](https://technet.microsoft.com/en-us/library/hh134826.aspx?f=255&MSPPError=-2147217396)переграбує жетони? чи це просто викидає існуючі, залишаючи вас ні з чим? Якщо у вас немає лексем, чи повторно запускається програма провідника (або будь-який процес потребує маркер) автоматично переграбує їх?
Бред

Він відновить маркер, коли ви запитаєте нові ресурси. Я використовував це досить часто, коли намагався оновити групи безпеки для віддалених користувачів та робочих станцій, коли додав членство в групи до своїх об’єктів AD.
Ніксфо

о приємно (і вибухом я зіпсував форматування в цьому коментарі .... ви розумієте)
Бред

-2
  • Відкрити диспетчер завдань
  • Kill Explorer.exe (кожен)
  • Клацніть Файл> Нова задача (Виконати ...)
  • Введіть CMD
  • У командному рядку введіть "RunAs / user: \ explorer.exe

Зроблено.


2
Ні, неправильно. Прочитайте, будь ласка, питання.
HopelessN00b

4
@ HopelessN00b Це впевнено виглядає, що це в основному те, що стало прийнятою відповіддю.
Бред

1
@Brad Що не має нічого спільного з тим, правильно чи неправильно. Право MDMarra (як і Барт), це (і прийнята відповідь) невірно. Цей процес не змушує систему оновлювати членство в групі.
HopelessN00b

1
@ HopelessN00b ви маєте рацію, як я дізнався пізніше. Перезавантаження була єдиним способом оновити членство. Обидві відповіді помилкові, на жаль.
Бред

1
Вихід із системи та повторний вхід повинні робити цю справу, не потрібно перезавантажувати. Членство в групі застосовується при вході в систему.
Чарлі Вілсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.