Laden...

Aktuell Vorhandene Systembenutzer auslesen

Erstellt von opelfix vor 12 Jahren Letzter Beitrag vor 12 Jahren 4.310 Views
Thema geschlossen
O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren
Aktuell Vorhandene Systembenutzer auslesen

hallo Community,

leider ergaben Google sowie die Forensuche kein gewünschtes ergebniss.

Als erstes will ich anmerken das ich noch kein Pro auf dem Gebiet der Programmierung bin. Ich weiss zwar schon bissel was über C# aber eben nicht alles 😃

Mein aktuelles Projekt beinhaltet unter anderem die möglichkeit als Administrator (wegen den Rechten) in den User einstellungen von Firefox verschiedene Proxyserver zu hinterlegen.

Der Admin soll dies Aber nicht erst machen können wenn er sich auf den jeweilligen Accounts eingeloggt hat sondern Zentral von seinem Account aus. Dazu habe ich kurzerhand Eine Listbox in die Form getan.

So nun habe ich aber nichts passendes gefunden mit was ich ALLE im System vorhandenen User auslesen und anzeigen kann.

Ich hoffe ihr könnt mir weiter helfen.

Achja ich denke mal das es Ratsam ist das ganze in einer eigenen Klasse zu realisieren.

Ich weiss ich könnte das auch statisch machen aber das ganze soll irgendwann veröffentlicht werden und da jeder benutzer auf jedem rechner andere rechte, andere namen usw hat, ist es zwingend erforderlich das dies ausgelesen wird!

Ich danke euch schonmal für eure hilfen!

hauptsache ne Signatur!!!

K
79 Beiträge seit 2006
vor 12 Jahren

Das auslesen der Benutzer ist über DirectoryEntry möglich

O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren

danke für den tipp.

Das ganze soll aber auch auf eigenständigen Homepc´s ohne Domänen Controller, ohne AD, etc funktionieren.

Ebenso soll das Tool auch unter Linux seinen Dienst verrichten!

*edit* Das Tool soll auch nur für Private zwecke eingesetzt werden. Daher ist eine AD umgebung eher unwahrscheinlich
*/edit*

hauptsache ne Signatur!!!

A
764 Beiträge seit 2007
vor 12 Jahren

Du könntest über das user-Verzeichnis gehen. Da müsstest du imho eh rein, um den Firefox zu konfigurieren.

G
538 Beiträge seit 2008
vor 12 Jahren

Das hier sollte helfen:

How to get list of users

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren

danke fü eure Tips

Da ich wie gesagt noch nicht Sooo Viel ahnung von c# bzw VS habe.

using System.DirectoryServices;

Das bemängelt er. Warum btw wo genau liegen die Sevices mit drinne?

*edit*

OMg ich noob als ob ich nichts gelernt hätte .... naja gefah erkannt fehler gebannt

*/edit*


        private void usr_listbox()
        {
            //hier werden die Aktuell vorhandenen Benutzer des Systems ausgelesen
            //und angezeigt als Auswahl
            DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
            DirectoryEntry admGroup = localMachine.Children.Find("Administratoren", "Benutzer");
            object members = admGroup.Invoke("members", null);
            foreach (object groupMember in (System.Collections.IEnumerable)members)
            {
                DirectoryEntry member = new DirectoryEntry(groupMember);
                usr_lb.Items.Add(member.Name);
                usr_lb2.Items.Add(member.Name);
            }

das habe ich jetzt als Code abe e bemängelt das er den übermittelten Vezeichnisspfad nicht finden kann. Liegt denk ich daran das ich Keine AD habe.

hauptsache ne Signatur!!!

K
79 Beiträge seit 2006
vor 12 Jahren
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
            DirectoryEntry admGroup = localMachine.Children.Find("Administratoren", "Benutzer");

Ich vermute jetzt mal er bleibt in der Zeile

DirectoryEntry admGroup = localMachine.Children.Find("Administratoren", "Benutzer");

Da es wohl keinen Benutzer gibt der Administratoren heißt.

O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren

omg stimmt ja, die sind ja nicht wirklich da.

Jetzt stellt sich mir die Frage. ob:


DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
            DirectoryEntry admGroup = localMachine.Children.Find("", "");

was anzeigt, Nämlich alle im System vorhandenen Benutzer

hauptsache ne Signatur!!!

K
79 Beiträge seit 2006
vor 12 Jahren

Bevor du die Frage im Forum stellst, könntest du es auch versuchen. Bzw. versuchen zu verstehen was der Code macht.

Du kannst die Ergebnisse mit z.B.

localMachine.Children.SchemaFilter.Add("user");

filtern wenn du nur die Benutzer haben möchtest. Wie das ganze jedoch auf Linux funktioniert kann ich dir nicht sagen.

O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren

Linux lass ich im Moment aussen vor da ich da eh nahezu von null anfangen muss! Linux Kann ja noch nicht wirklich .NET bzw windows Forms.

also was der Code macht versteh ich ja, zumindest zum teil!


DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);

erstellt im DirectoryEntry einen neuen Eintrag für die lokale Maschine


DirectoryEntry admGroup = localMachine.Children.Find("Administratoren", "Benutzer");

soll eigentlich die User Finden aber hier liegt der Hund Begraben. "Das angeforderte Verzeichnisobjekt ist unbekannt." bekomm ich als Errormeldung!

daraus ergibt das er ein objekt nicht findet. ich dachte mir er findet Benutzer und Administrator nicht. Doch auch wenn ich daraus "", "" mache kommt die Exception. also muss es an admGroup liegen zumindest denk ich mir das!

hauptsache ne Signatur!!!

K
79 Beiträge seit 2006
vor 12 Jahren

Falsch er sucht bei:

DirectoryEntry admGroup = localMachine.Children.Find("Administratoren", "Benutzer");

nach einem Benutzer der Adminsitratoren heißt.

O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren

okok wenn dem so ist warum findet er dann


DirectoryEntry admGroup = localMachine.Children.Find("ean", "Benutzer");

nicht? Den Benutzer gibts es Definitiv! auch die Gruppe!

hauptsache ne Signatur!!!

A
764 Beiträge seit 2007
vor 12 Jahren

Probier doch mal "user" anstatt "Benutzer".

O
opelfix Themenstarter:in
16 Beiträge seit 2011
vor 12 Jahren

danke das hat den Fehler behoben. Nun nörgelt er aber an der nächsten zeile rum

[entfernt]

hauptsache ne Signatur!!!

Hinweis von herbivore vor 12 Jahren

Wie schon weiter oben gesagt, kannst du hier bitte nicht wegen jeder kleinen Unklarheit oder Schwierigkeit nachfragen. Siehe dazu auch [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

Du solltest jetzt genug Informationen haben, um allein weiter zu kommen.

Thema geschlossen