Wie erzwingen Sie eine Aktualisierung der Gruppenmitgliedschaft eines Benutzers in Windows 7?

27

Ich schreibe eine Webanwendung, die die .NET Windows-Authentifizierung verwendet und sich auf die Gruppenmitgliedschaft eines Benutzers stützt, um ihn für verschiedene Bereiche der Website zu autorisieren. Im Moment bin ich auf einem Dev-Rechner, der NICHT Teil einer Domain ist und kein AD verwendet, stattdessen verwende ich nur lokale Benutzergruppen. Im Allgemeinen funktioniert dies so wie es ist.

Beim Testen der Anwendung muss ich jedoch Rollen in meinem Benutzerkonto hinzufügen und entfernen, um zu überprüfen, ob alles funktioniert. Wenn ich eine Rolle hinzufüge, scheint sich diese erst zu verbreiten, nachdem ich mich von Windows abgemeldet und erneut angemeldet habe.

Ist es möglich, eine Aktualisierung der Gruppenmitgliedschaft zu erzwingen, ohne sich abmelden zu müssen?

kingdango
quelle
3
Meinen Sie damit, sich vom Sender oder von der Website abzumelden?
Dan
Guter Punkt, ich habe meine Frage aktualisiert, um zu klären. Ich muss mich von meinem Windows-Benutzerkonto abmelden (von Windows abmelden) und mich erneut anmelden.
Kingdango
Es erzwingt Systemaktualisierungen für Gruppenmitgliedschaften. Nachdem Sie den Befehlstask kill explorer erneut ausgeführt haben, führen Sie explorer normal aus. Sie haben dann auch ein neues Sicherheitstoken in Ihrer neuen Explorer-Instanz.

Antworten:

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

Dadurch wird der Explorer beendet und mit Ihrem Benutzerkonto erneut geöffnet. Sie werden zur Eingabe Ihres Kennworts aufgefordert. Dadurch erhalten Sie ein neues Token, wodurch Ihre Mitgliedschaft aktualisiert wird.

Matt Brown
quelle
1
Dies scheint zu funktionieren, aber ich habe festgestellt, dass alle zugeordneten Laufwerkverbindungen unterbrochen werden.
SomeGuy
2
funktioniert nicht für mich in Windows 10 Pro
Dave Cousineau
Siehe auch: woshub.com/… . Für Computer klist -lh 0 -li 0x3e7 purge, für Benutzer klist purge. NB: Ich habe diese Befehle nicht selbst ausprobiert. Wiederholen Sie einfach die Informationen aus dem verlinkten Artikel.
JohnLBevan
10

Dies ist systemweit schwierig durchzuführen, jedoch bei einzelnen ausführbaren Dateien möglich, indem deren Prozess abgebrochen und unter den Anmeldeinformationen des Benutzers neu gestartet wird.

Wenn Sie sich anmelden, erhalten Sie unter anderem ein Token, das Ihre Gruppenmitgliedschaft widerspiegelt. Die einzige Möglichkeit, dieses Token zu aktualisieren, besteht darin, sich anzumelden.

MDMarra
quelle
Wenn dies der Fall ist, der ein Mist ist, wird es mein Testen ein bisschen behindern. Vielen Dank für die Einsicht ... Ich hoffe, dass ein anderer Benutzer eine bessere Antwort hat, aber ich schätze, dass Ihr 15k + Mitarbeiter weiß, wovon Sie sprechen.
Kingdango
2
@kingdango Sie können runasden Prozess jederzeit als einen anderen Benutzer als Ihren eigenen ausführen und die Gruppenzugehörigkeit dieses Testbenutzers ändern . Jedes Mal , wenn Sie schließen und starten Sie mit dem Prozess runassollte eine neue Sitzung erstellen, die sollte die geänderte Gruppenmitgliedschaft widerspiegeln. Ich habe das noch nicht getestet, aber theoretisch sollte es so funktionieren.
MDMarra
Das ist hart wegen meiner Entwicklungsumgebung, aber es lohnt sich, sie zu erkunden. Vielen Dank für die schnelle und nachdenkliche Antwort Mark.
Kingdango
4

Ich hatte eine ähnliche Situation wie auf einer Website, die sich auf die Mitgliedschaft eines Benutzers in AD stützte, um die Anmeldung auf der Website zu ermöglichen. Sie sollten in Betracht ziehen, dass der Webserver die Authentifizierung / Abfrage an den AD-Server mit den angegebenen Anmeldeinformationen durchführt. Wenn der Webserver Zugriff auf AD hat und den Server nur danach fragt, ob sich der Benutzer in der Gruppe XYZ befindet, erhält er eine Liste direkt von AD und nicht vom Anmeldetoken des Benutzers, für den eine Anmeldung / Abmeldung erforderlich ist Token mit den richtigen Berechtigungen.

Ich weiß, dass Ihr Entwicklercomputer im Moment nicht über diesen Zugriff verfügt, aber es hat sich so angehört, als ob Sie diese Funktionalität benötigen, wenn Sie ihn bereitstellen.

Wenn Sie sich auf das Token verlassen, müssen Sie sich abmelden und wieder anmelden.

Bart Silverstrim
quelle
Vielen Dank für die nachdenkliche Antwort. Das ist ein guter Weg, um das Problem zu lösen. Normalerweise warte ich sehr gerne, bis der Benutzer eine aktualisierte Zugriffskontrolle erhält, auch wenn er sich abmelden und erneut an seinem Computer anmelden muss. Es ist nur das Testszenario, in dem dies eine Belastung sein kann, aber es ist wirklich keine so große Sache. Ehrlich gesagt, ich habe mehr Zeit gebraucht, um nach einer Abkürzung zu suchen. :-)
kingdango
1
Es kann sich je nach Szenario auch als nützlich erweisen. Wenn der Server den Domänencontroller direkt abfragt, bedeutet dies, dass Änderungen fast sofort "migriert" werden. Wenn also jemandem der Zugriff gesperrt oder hinzugefügt wird, dauert es keinen Client-Anmelde- / Abmeldezyklus. Dies erleichtert den IT-Mitarbeitern die Arbeit etwas.
Bart Silverstrim
3

Es gibt eine Möglichkeit, dies vollständig über die Befehlszeile zu erledigen. Sie können klist verwenden .

klist purge
Nixphoe
quelle
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.Does [Purge](https://technet.microsoft.com/en-us/library/hh134826.aspx?f=255&MSPPError=-2147217396)regrab die Tokens aber? oder wirft es einfach die existierenden weg und lässt dich mit nichts zurück? Wenn Sie keine Token haben, werden diese beim Neustart des Explorers (oder bei jedem Prozess, für den ein Token benötigt wird) automatisch erneut abgeglichen?
Brad
Das Token wird neu generiert, wenn Sie neue Ressourcen anfordern. Ich habe dies ziemlich häufig verwendet, um Sicherheitsgruppen für Remotebenutzer und Arbeitsstationen zu aktualisieren, wenn ihren AD-Objekten eine Gruppenmitgliedschaft hinzugefügt wurde.
Nixphoe
oh nice (und super, ich habe die Formatierung in diesem Kommentar durcheinander gebracht ... du kommst auf die Idee)
Brad
-2
  • Öffnen Sie den Task-Manager
  • Kill Explorer.exe (jeweils eine)
  • Klicken Sie auf Datei> Neue Aufgabe (Ausführen ...)
  • Geben Sie CMD ein
  • Geben Sie an der Eingabeaufforderung "RunAs / user: \ explorer.exe" ein

Getan.

flip66
quelle
2
Nein falsch Bitte lesen Sie die Frage.
HopelessN00b
4
@ HopelessN00b Das sieht sicher so aus, als wäre es im Grunde genommen die akzeptierte Antwort.
Brad
1
@Brad Was nichts damit zu tun hat, ob es richtig oder falsch ist. MDMarras Recht (wie auch Bart), dies (und die akzeptierte Antwort) sind falsch. Dieser Prozess erzwingt keine Aktualisierung der Gruppenmitgliedschaften.
HopelessN00b
1
@ HopelessN00b du hast recht, wie ich später am Tag herausfand. Ein Neustart war die einzige Möglichkeit, Mitgliedschaften zu aktualisieren. Beide Antworten sind leider falsch.
Brad
1
Abmelden und erneut anmelden sollte den Trick tun, kein Neustart erforderlich. Gruppenmitgliedschaften werden beim Login beantragt.
Charlie Wilson