Welcome to the Microsoft Windows Vista Community Forums - Vistaheads, YOUR Largest Resource for Windows Vista related information.
You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so , join our community today!
If you have any problems with the registration process or your account login, please contact us.
|
|
|
User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
microsoft.public.de.windows.vista.gruppenrichtlinien
|
|

09-04-2008
|
|
|
|
User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hallo zusammen
ich möchte perVB.NET-Code ermitteln, ob ein in einer Domäne angemeldeter
Benutzer am lokalen Rechner Administratorrechte hat;
mein VB.NET-Code funktioniert unter XP, aber nicht unter Vista:
Dim myWindowsIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
Dim myWindowsPrincipal As New WindowsPrincipal(myWindowsIdentity)
Return myWindowsPrincipal.IsInRole(WindowsBuiltInRole.Adm inistrator)
z.B. in dieser Situation:
bei einem User, der lokal Administratorrechte hat, aber in der Domäne nur
Benutzerrechte hat:
dann gibt die Funktion unter XP richtig 'true' zurück, unter Vista aber
'false'.
Wie kann ich unter Vista ermitteln, welche Rechte ein Benutzer am lokalen
System hat, wenn er gleichzeitig an der Domäne angemeldet ist?
Vielen Dank an alle!
Roswitha
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hi,
Roswitha Schoppe-Jantzen schrieb:
> Wie kann ich unter Vista ermitteln, welche Rechte ein Benutzer am lokalen
> System hat, wenn er gleichzeitig an der Domäne angemeldet ist?
per VB keine Ahnung, wie wäre es per Batch?
--- findadmin.bat ---
net localgroup Administratoren > %temp%\admins.txt
find /i "%username%" %temp%\admins.txt
if errorlevel 0 (
copy %temp%\admins.txt \\server\share\%username%_an_%computername%.txt
)
--- findadmin.bat ---
Ersetze \\server\share durch eine passende Freigabe in der der User
Schreibrechte hat.
Tschö
Mark
--
Mark Heitbrink - MVP Windows Server - Group Policy
Homepage: www.gruppenrichtlinien.de - deutsch
Discuss : www.freelists.org/list/gpupdate
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hallo Mark,
Danke für Deine schnelle Antwort!
Ich weiß nicht, ob ich Deinen Vorschlag richtig verstanden habe, daher noch
mal eine Nachfrage...
In meinem Programm möchte ich in Abhängigkeit davon, ob der User
Administratorrechte hat, Menüpunkte ein-bzw. ausblenden.
Habe ich Deinen Vorschlag so richtig verstanden:
Zur Laufzeit des Programms Batchdatei ausführen, danach in Datei
[_%computername%].txt schauen, ob der Username darin steht?
Viele Grüße
Roswitha
"Mark Heitbrink [MVP]" <spam-only@gruppenrichtlinien.de> schrieb im
Newsbeitrag news:uIzOJsoDJHA.5316@TK2MSFTNGP04.phx.gbl...
> Hi,
>
> Roswitha Schoppe-Jantzen schrieb:
>> Wie kann ich unter Vista ermitteln, welche Rechte ein Benutzer am lokalen
>> System hat, wenn er gleichzeitig an der Domäne angemeldet ist?
>
> per VB keine Ahnung, wie wäre es per Batch?
>
> --- findadmin.bat ---
> net localgroup Administratoren > %temp%\admins.txt
> find /i "%username%" %temp%\admins.txt
>
> if errorlevel 0 (
> copy %temp%\admins.txt \\server\share\%username%_an_%computername%.txt
> )
>
> --- findadmin.bat ---
>
> Ersetze \\server\share durch eine passende Freigabe in der der User
> Schreibrechte hat.
>
> Tschö
> Mark
> --
> Mark Heitbrink - MVP Windows Server - Group Policy
>
> Homepage: www.gruppenrichtlinien.de - deutsch
> Discuss : www.freelists.org/list/gpupdate
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hallo Mark,
ich habe die Batchdatei getestet;
1) -> unter XP geht es, allerdings steht dann dieses in der Textdatei:
*****************************
Aliasname Administratoren
Beschreibung Administratoren haben uneingeschränkten Vollzugriff auf den
Computer bzw. die Domäne.
Mitglieder
-------------------------------------------------------------------------------
Administrator
[unser Domänenname]\Domänen-Admins
[unser Domänenname]\Domänen-Benutzer
Der Befehl wurde erfolgreich ausgeführt.
*******************************
das hilft mir nicht so richtig, da ja nicht explicit der Benutzername
genannt wird...
2) unter Vista wird die Batchdatei nicht ausgeführt; nur wenn explicit
"Ausführen als Administrator" gewählt wird
(auch wenn der User Administratorrechte hat, werden zunächst standardmäßig
unter vista die Hauptbenutzerrechte benutzt
- daher sehe ich wenig Chance, zur Laufzeit diese Batchdatei auszuführen.
Viele Grüße
Roswitha
"Mark Heitbrink [MVP]" <spam-only@gruppenrichtlinien.de> schrieb im
Newsbeitrag news:uIzOJsoDJHA.5316@TK2MSFTNGP04.phx.gbl...
> Hi,
>
> Roswitha Schoppe-Jantzen schrieb:
>> Wie kann ich unter Vista ermitteln, welche Rechte ein Benutzer am lokalen
>> System hat, wenn er gleichzeitig an der Domäne angemeldet ist?
>
> per VB keine Ahnung, wie wäre es per Batch?
>
> --- findadmin.bat ---
> net localgroup Administratoren > %temp%\admins.txt
> find /i "%username%" %temp%\admins.txt
>
> if errorlevel 0 (
> copy %temp%\admins.txt \\server\share\%username%_an_%computername%.txt
> )
>
> --- findadmin.bat ---
>
> Ersetze \\server\share durch eine passende Freigabe in der der User
> Schreibrechte hat.
>
> Tschö
> Mark
> --
> Mark Heitbrink - MVP Windows Server - Group Policy
>
> Homepage: www.gruppenrichtlinien.de - deutsch
> Discuss : www.freelists.org/list/gpupdate
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hi,
Roswitha Schoppe-Jantzen schrieb:
> In meinem Programm möchte ich in Abhängigkeit davon, ob der User
> Administratorrechte hat, Menüpunkte ein-bzw. ausblenden.
Achso ... dann ist das mit der Batch total blöde. Ehrlich ;-)
Ich dachte du suchtest nur nach der Möglichkeit einer schnellen
quick and dirty Lösung, um es zu dokumentieren.
Da bin ich dann leider überfragt, aber wo ich mir das gerade noch einmal
anschause und "WindowsBuiltInRole.Administrator" richtig interpretiere,
dann ermittelt dein Programm nur den Benutzer "Administrator"
1. kann der anders heissen: Heinz, Dieter oder Willi
2. ist der bei Vista deaktiviert, weswegen Vista wohl auch "false"
zurückgibt
Du musst nicht den Benutzer, sondern die Mitglieder der Gruppe
Administratoren abfragen und auch diese nicht per Namen, denn dann
scheitert dein Programm auf englischen, französischen, spanischen
Rechner, denn je nach Sprahce heissen die Jungs ja immer anders.
Dafür hat MS die Wellknown SIDs.
http://www.gruppenrichtlinien.de/Gru...Known_SIDs.htm
Letztlich fragst du also die Gruppenmitglieder von "S-1-5-32-544" ab.
Wie man jetzt aber über VB.NET die SIDs anspricht anstelle der STRINGS
ist mir persönlich mangels Programmierkenntnissen ein Rätsel.
Aber das wäre tatsächlich der Weg, um dein Programm "Sprachfrei"
aufzubauen, was diese Abhängigkeit angeht.
Tschö
Mark
--
Mark Heitbrink - MVP Windows Server - Group Policy
Homepage: www.gruppenrichtlinien.de - deutsch
Discuss : www.freelists.org/list/gpupdate
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hallo Mark,
ich habe in der MSDN noch mal nachgelesen;
der Code" ..WindowsBuiltInRole.Administrator..".ist OK,
aber hier ist noch ein Hinweis von Microsoft, der mein Problem beschreibt-
siehe
http://msdn.microsoft.com/de-de/libr...iltinrole.aspx
dann gibt es wohl keine gute Lösung:.(das Ausführen per rechte Maustaste
fällt aus)..
Unter Windows Vista UAC werden die Berechtigungen eines Benutzers über
User-Account-Control (UAC) bestimmt. Als Mitglied der integrierten
Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit
zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken.
Standardmäßig verwenden Sie die Standardbenutzerrolle. Wenn Sie versuchen,
eine Aufgabe auszuführen, die Administratorrechte erfordert, können Sie Ihre
Rolle im Dialogfeld Zustimmung dynamisch erhöhen. Code, in dem die
IsInRole-Methode ausgeführt wird, zeigt das Dialogfeld Zustimmung nicht an.
Wenn Sie die Standardbenutzerrolle verwenden, gibt der Code auch dann false
zurück, wenn Sie Mitglied der integrierten Administratorgruppe sind. Sie
können vor dem Ausführen von Code Ihre Berechtigungen erhöhen, indem Sie mit
der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie
die Anwendung als Administrator ausführen möchten.
Viele Grüße
Roswitha
"Mark Heitbrink [MVP]" <spam-only@gruppenrichtlinien.de> schrieb im
Newsbeitrag news:OoksyHpDJHA.3904@TK2MSFTNGP02.phx.gbl...
> Hi,
>
> Roswitha Schoppe-Jantzen schrieb:
>> In meinem Programm möchte ich in Abhängigkeit davon, ob der User
>> Administratorrechte hat, Menüpunkte ein-bzw. ausblenden.
>
> Achso ... dann ist das mit der Batch total blöde. Ehrlich ;-)
>
> Ich dachte du suchtest nur nach der Möglichkeit einer schnellen
> quick and dirty Lösung, um es zu dokumentieren.
>
> Da bin ich dann leider überfragt, aber wo ich mir das gerade noch einmal
> anschause und "WindowsBuiltInRole.Administrator" richtig interpretiere,
> dann ermittelt dein Programm nur den Benutzer "Administrator"
>
> 1. kann der anders heissen: Heinz, Dieter oder Willi
> 2. ist der bei Vista deaktiviert, weswegen Vista wohl auch "false"
> zurückgibt
>
> Du musst nicht den Benutzer, sondern die Mitglieder der Gruppe
> Administratoren abfragen und auch diese nicht per Namen, denn dann
> scheitert dein Programm auf englischen, französischen, spanischen
> Rechner, denn je nach Sprahce heissen die Jungs ja immer anders.
>
> Dafür hat MS die Wellknown SIDs.
> http://www.gruppenrichtlinien.de/Gru...Known_SIDs.htm
>
> Letztlich fragst du also die Gruppenmitglieder von "S-1-5-32-544" ab.
>
> Wie man jetzt aber über VB.NET die SIDs anspricht anstelle der STRINGS
> ist mir persönlich mangels Programmierkenntnissen ein Rätsel.
> Aber das wäre tatsächlich der Weg, um dein Programm "Sprachfrei"
> aufzubauen, was diese Abhängigkeit angeht.
>
> Tschö
> Mark
> --
> Mark Heitbrink - MVP Windows Server - Group Policy
>
> Homepage: www.gruppenrichtlinien.de - deutsch
> Discuss : www.freelists.org/list/gpupdate
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Hi,
Roswitha Schoppe-Jantzen schrieb:
> 1) -> unter XP geht es, allerdings steht dann dieses in der Textdatei:
> Administrator
> [unser Domänenname]\Domänen-Admins
> [unser Domänenname]\Domänen-Benutzer
Was bedeutet? Der User ist kein Administrator, sonst stünde er da drin.
Somit ist der "find" Befehl nicht erfolgreich und der Errorlevel auch nicht
mehr "0", sondern "1".
> 2) unter Vista wird die Batchdatei nicht ausgeführt; nur wenn explicit
> "Ausführen als Administrator" gewählt wird
äh? mach mal ne CMD direkt auf und fürhe dioe Befehle aus. Ich traue UAC
ja viel zu, aber "lesen" darf die Gruppe jeder authentifizierte Benutzer.
Aber die Batch ist ja innerhalb des Programmcodses sowieso unschön.
Dein VB.Net *MUSS* eine interne Methode kennen, die das macht.
Egal ob UAC oder nicht. Du liest nur die Gruppe, du willst sie nicht
schreiben.
Tschö
Mark
--
Mark Heitbrink - MVP Windows Server - Group Policy
Homepage: www.gruppenrichtlinien.de - deutsch
Discuss : www.freelists.org/list/gpupdate
|
|

09-04-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Guten Abend,
Roswitha Schoppe-Jantzen schrieb:
> In meinem Programm möchte ich in Abhängigkeit davon, ob der User
> Administratorrechte hat, Menüpunkte ein-bzw. ausblenden.
>
> [...]
>
> das Ausführen per rechte Maustaste fällt aus
Du möchtest Funktionen bereitstellen, die nur durch Mitglieder der Gruppe
"Administratoren" genutzt werden können, richtig?
Dann stelle doch im Manifest auf höchste verfügbare Rechte. Sofern jemand
Mitglied der Gruppe Administratoren ist, muss die Anwendung nicht explizit
als Administrator gestartet werden, es erscheint automatisch die Nachfrage
(kein manuelles eingreifen notwendig). Standardnutzer werden nicht
belästigt.
Sollte dies der Versuch sein, eine Art Rechtemanagement in der Anwendung zu
integrieren (ohne das die Anwendung mit erhöhten Rechten läuft), wirst du
eigene Gruppen erstellen müssen, auf die du dann mit "isInRole" prüfen
kannst - das ist ja auch keine große Sache.
--
Grüße,
Thomas
|
|

09-05-2008
|
|
|
|
Re: User-Rechte unter Vista am lokalen Rechner, angemeldet an einer Domäne
Moin,
Roswitha Schoppe-Jantzen schrieb:
> ich möchte perVB.NET-Code ermitteln, ob ein in einer Domäne angemeldeter
> Benutzer am lokalen Rechner Administratorrechte hat;
> mein VB.NET-Code funktioniert unter XP, aber nicht unter Vista:
unter Vista wird dir UAC dazwischenfunken. Du darfst also nicht nur auf
die Mitgliedschaft der Gruppe "Administratoren" schauen, sondern musst
das Access Token des laufenden Prozesses abfragen. Wie das geht, weiß
ich nicht (bin kein Entwickler), sollte aber recherchierbar sein.
Schöne Grüße, Nils
--
Nils Kaczenski - MVP Windows Server
www.faq-o-matic.net
Antworten bitte nur in die Newsgroup!
PM: Vorname at Nachname .de
https://mvp.support.microsoft.com/pr...Nils.Kaczenski
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT +1. The time now is 14:56.
|
|