Известный всем администраторам факт, что после добавления компьютера или пользователя в группу Active Directory, для обновления членства в группах и применения назначенных прав / политик, нужно перезагрузить компьютер (если в доменную группу добавлялась учетная запись компьютера) или перезайти в систему (для пользователя). Это связано с тем, что членство в группах AD обновляется при создании билета Kerberos, которое происходит при загрузке системы и при входе пользователя.
В некоторых случаях перезагрузка системы или logoff пользователя не выполним по производственным причинам. А воспользоваться полученным правами, доступом или применить новые политики нужно уже сейчас. Есть возможность обновить членство учетной записи в группах AD без перезагрузки или перерегистрации пользователя в системе.
Список групп, в которых состоит текущий пользователь можно получить из командной строки с помощью команды:
whoami /groups
или GPresult
gpresult /r
Список групп, в которых состоит пользователь содержится в разделе The user is a part of the following security groups.
Сбросить текущие тикеты Kerberos без перезагрузки может утилита klist.exe . Klist включена в ОС Windows начиная с Windows 7, для XP и Windows Server 2003 устанавливается в составе Windows Server 2003 Resource Kit Tools.
Чтобы сбросить весь кэш тикетов Kerberos компьютера (локальной системы) и обновить членство компьютера в группах AD, нужно в командной строке с правами администратора выполнить команду:
После выполнения команды и обновления политик к компьютеру будут применены все политики, назначенные группе AD через Security Filtering.
Что касается пользователя. Допустим, доменная учетка пользователя была добавлена в группу Active Directory для доступа к файловому ресурсу. Естественно, доступ к каталогу без перелогина у пользователя не появится.
Сбросим все тикеты Kerberos пользователя командой:
klist purge
Чтобы увидеть обновлённый список групп, нужно запустить новое окно командной строк и через runas, чтобы новый процесс был создан с новым токеном безопасности.
Допустим, группа AD пользователю назначалась для предоставления доступа к сетевому каталогу. Попробуйте обратиться к нем по FQDN имени (к примеру, \\msk-fs1.winitpro.loc\distr) и проверьте, что TGT тикет был обновлен:
klist tgt
Сетевой каталог, к которому был предоставлен доступ через группу AD, должен открыться без перелогина пользователя (!!! обязательно использовать FQDN имя).
Было бы здорово, если бы сюда добавили как сделать эти же операции через Powershell.
Прямо в PoSh сессии выполняйте приведенные выше команды
Я видимо неверно выразил вою мысль.
Существуют ли штатные командлеты для выполнения описанных в статье операций?
А с чем связано указание полного имени в адресе, почему нельзя использовать сокращенное имя без домена?
Аутентификация Kerberos требует использования FQDN имени хоста.
А в связи с чем необходимо указывать полное имя для доступа к сетевому каталогу?
Т.е. чтобы пользоваться командой
klist purge
надо изначально в корпоративной сети у пользователей делать ярлыки на сетевые ресурсы только с FQDN именами? В обслуживаемых вами сетях вы сами так делаете?Конечно нет, это в большей степени обходное решение, когда прямо сейчас логоф/перезагрузку делать нельзя, а доступом через группу AD воспользоваться уже нужно.