Gibt es ein Äquivalent von SU für Windows


32

Gibt es eine Möglichkeit (wenn Sie als Administrator oder als Mitglied der Administratorgruppe angemeldet sind), sich als nicht privilegierter Benutzer auszugeben? Besonders in einer AD-Umgebung.

In der Unix-Welt könnte ich zB Folgendes tun (als root):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

Ich muss etwas in einem Benutzerkonto testen / konfigurieren, und ich möchte nicht das zugehörige Passwort kennen oder es zurücksetzen müssen.

Bearbeiten:
runas schneidet es nicht. Im Idealfall wird mein gesamter Desktop zum Benutzer usw. und nicht nur in einem cmd-Fenster.


Nur neugierig, aber warum müssen Sie sich als Benutzer anmelden? Normalerweise muss ich dies nur tun, um E-Mails zu konfigurieren. Ich habe jedoch festgestellt, dass ich die meiste Zeit alles über Gruppenrichtlinien / Skripte / etc konfigurieren kann.
Dayton Brown

Antworten:


20

Ich bin mir ziemlich sicher, dass es keine unterstützte Möglichkeit gibt, als anderer Benutzer ohne die Anmeldeinformationen dieses Benutzers zu arbeiten. Es ist eine Nicht-Ablehnungsmaßnahme. Jemand kann nicht sagen: "Ich habe es nicht getan", weil entweder sie es getan haben oder jemand mit ihren Anmeldeinformationen es getan hat. Und für die Sekunde müssten sie der anderen Person die Berechtigungsnachweise geben.

Normalerweise muss ich, wenn ich als anderer Benutzer angemeldet bin, die Remoteunterstützung verwenden, um im Wesentlichen RDP in die Sitzung einzubinden, und sie müssen mir die Kontrolle gewähren. Dann mache ich was auch immer, während sie zuschauen (vermutlich sowieso).

Alles andere kann normalerweise mit GPO / Skripten erledigt werden.


8
Ich glaube das ist richtig. Und meiner Meinung nach ist dies eine Sicherheitsverbesserung über der UNIX - Welt. Ich mag die Idee, dass nicht einmal ein Administrator ohne mein Passwort ich sein kann.
Tomjedrz

3
Ein Administrator kann einen anderen Benutzer übernehmen, indem er sein Kennwort zurücksetzt. Dann können sie sich als Sie anmelden. Es gibt jedoch einen Beweispfad, wenn Sie dies tun. Zuerst wurde das Benutzerpasswort geändert, damit sie es wissen. Zweitens werden Überwachungsprotokolle erstellt (vorausgesetzt, die Überwachung ist aktiviert).
Erik Funkenbusch

3
In der Regel arbeite ich auch so. Es gibt jedoch Punkte, bei denen ich sage: "Wenn ich Bob wäre, wäre es so viel einfacher, das für Bob zu tun", aber Bob ist vor einer Stunde nach Hause gegangen.
BIBD

1
Was die "Nicht-Zurückweisung" angeht, hindert es mich nicht daran, böswillige / dumme Handlungen als anderer Benutzer zu begehen, wenn ich das Passwort zuerst zurücksetze. Es bedeutet nur, dass ich mehr arbeiten muss, um zu verbergen, wer verantwortlich ist.
BIBD

9
Ich verstehe, was sie versuchen zu tun. Ich denke nur, es ist mehr Sicherheitstheater als tatsächliche Sicherheit.
BIBD

17

Ich habe eine Menge anderer Leute bemerken Veränderungen auf dem Befehl Runas zu erwähnen und wie Sie benötigen das Benutzer - Passwort kennen, das ist wahr, aber ich glaube nicht , dass jemand ruhig die Frage beantwortet. "Den ganzen Desktop haben zu wollen, würde zum Benutzer werden, usw. und nicht nur in einem cmd-Fenster". So gehe ich vor:

Hinweis : Ich werde diese erste Eingabeaufforderung als CP1 bezeichnen, um später Verwirrung zu vermeiden.

Öffnen Sie unter Ihrem Administratorkonto die Eingabeaufforderung

Für lokales Konto

runas /profile /user:computernamehere\username cmd

Für ein Domain- Konto

runas /profile /user:domainname\username cmd

ODER so, wie ich es mag

runas /profile /user:username@domainname cmd

Hinweis: Eine neue Eingabeaufforderung wird geöffnet (CP2). Dies ist der Benutzer, unter dem Sie sich anmelden möchten.

Öffnen Sie CP1 und geben Sie Folgendes ein:

taskkill /f /IM explorer.exe

Öffnen Sie CP2 und geben Sie Folgendes ein:

explorer.exe

Je nach Computer wird möglicherweise ein Profil für den Benutzer erstellt, wenn er sich noch nie dort angemeldet hat. Sie können sich den Aufwand später ersparen, indem Sie die Eingabeaufforderungsfenster für eine spätere Verwendung geöffnet lassen .

Wenn Sie mit Ihrer Arbeit fertig sind, machen Sie dasselbe in umgekehrter Reihenfolge.

In CP2 Typ:

taskkill /f /IM explorer.exe

Öffnen Sie CP1 und geben Sie Folgendes ein:

explorer.exe

Sie sollten sich nun wieder in dem ursprünglichen Administratorkonto befinden. Sie können eine schnelle Überprüfung durchführen, indem Sie auf die Windows-Taste tippen und nach dem aktuellen Benutzerfenster suchen.

Hoffe das hat geholfen.


3
Das ist eine tiefe Magie.
mskfisher

@mskfisher Haha, wenn du denkst, dass das verrückt ist, solltest du sehen, was ich tun musste, um herauszufinden, wie eine Psexec-Sitzung beendet werden kann, die nach dem Ausführen eines schlechten WMIC-Befehls blockiert war. ... Pskill von einer zweiten Eingabeaufforderung aus, die auf den Remotecomputer zeigte, nachdem psservices verwendet wurde, um die Prozess-ID für psexec in der ersten Eingabeaufforderung zu ermitteln!
Michael H

Nun, 4 Jahre später wurde ich an diese Frage erinnert und als ich Zeit hatte, sie zu testen. WOW!
BIBD

Unter Windows 10 fordert runas zur Eingabe des Benutzerkennworts auf.
TheAmigo

7

In Windows ist hierfür kein Mechanismus integriert. Es kann getan werden, aber Sie müssen etwas schreiben lassen, um das zu tun, was Sie wollen, und Sie müssen wahrscheinlich mit undokumentierten APIs herumspielen.

Eines der Poster hier, grawity, hat das Recht, CreateProcessAsUser () aufzurufen, aber Sie müssen zuerst ein Token mit der undokumentierten nativen API zwCreateToken erstellen. Wenn Sie den Explorer beendet und eine neue Explorer-Instanz mit CreateProcessAsUser () gestartet haben, sind Sie sich ziemlich sicher, dass Sie wollen, was Sie wollen.

Microsoft macht es Ihnen nicht leicht, was Sie tun möchten, da Sie NT nicht so verwenden möchten. Wenn Sie als Benutzer angemeldet sein müssen, um ihre Probleme zu beheben, gehen Sie in den meisten Fällen nicht optimal vor.

Sie können Änderungen an der Registrierung des Benutzers vornehmen, ohne sich anzumelden (indem Sie die Registrierungsstruktur anhängen und auf diese Weise bearbeiten). Sie können Änderungen an Dateien in ihrem Benutzerprofil vornehmen, ohne als Benutzer angemeldet zu sein. Wenn Sie "als Benutzer" E-Mails oder andere derartige Aktivitäten einrichten müssen, sollten Sie Skripts schreiben oder die integrierten Funktionen (Gruppenrichtlinien-Verwaltungsvorlagen, Einstellungen usw.) nutzen, um Ihre Dirty Work für Sie auszuführen.

Wenn Sie dies tun müssen, schauen Sie sich RunAsEx on Code Project an. Dieser Code sollte Ihnen eine ziemlich gute Vorstellung davon geben, was Sie tun müssen. Ich habe das Programm noch nicht ausprobiert, aber es sieht so aus, als würde alles richtig ablaufen.


5

Sie können den folgenden Befehl unter Windows XP und höher verwenden:

RunAs.exe

Die Befehlszeilenoptionen sind hier verfügbar .

Dies funktioniert nicht, ohne das Benutzerpasswort zu kennen. Ich glaube nicht, dass es in Windows eine Möglichkeit gibt, unter einem Benutzerkonto ohne Kennwort zu arbeiten, da die Sicherheitskennungen geladen werden.


3
Ich glaube, dass das RunAs-Programm weiterhin erfordert, dass Sie das Benutzerpasswort kennen, von dem ich glaube, dass der ursprüngliche Fragestatus nicht bekannt ist
Kevin Kuphal

Sie haben Recht ... das hatte ich vergessen.
Doug Luxem

2

(Nur eine Vermutung.) Wenn Sie über ein Konto verfügen SeCreateTokenPrivilege, können Sie ein kleines Programm schreiben, um einen Prozess mit CreateProcessAsUser()oder mit einer ähnlichen Funktion zu erstellen. (Aber nicht einmal Administratoren haben standardmäßig die Berechtigung.)


2

Obwohl ich keine persönlichen Erfahrungen mit einigen der auf dieser Site erwähnten Sudo- Lösungen habe, kann ich Nonadmin, das von dem exzellenten Aaron Margosis gestartet wurde, nur wärmstens empfehlen . Es ist eine große Hilfe, wenn Sie eingeschränkte Benutzer einführen. Ich bin hauptsächlich mit etwas gesprungen, da alle anderen Runas benutzen. Ich denke jedoch, dass die meisten oder alle dieser so genannten Sudo für Windows-Anwendungen mehr mit der Ansicht zu tun haben, als als ein anderer Benutzer ohne Passwort zu agieren.


0

Process Explorer procexp.exe unter http://live.sysinternals.com verfügt über einen Benutzer mit eingeschränkter Berechtigung (im Dateimenü ), mit dem Sie ein Programm unter Verwendung Ihrer aktuellen Anmeldeinformationen ausführen können, wobei Ihre ACL auf die einer normalen Datei reduziert ist Benutzer (Nicht-Administrator) Benutzer. Nicht genau das, was Sie wollten, aber gut zum Testen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.