ich versuche mittels u.s. Methode alle Nutzer der Gruppe Administratoren auszulesen.
Funktioniert soweit auch ganz gut, einziges Problem sind verschiedene Sprachen. Im deutschen heißt die Gruppe "Administratoren", im englischen "Administrators" etc.
Kennt ihr eine Möglichkeit, statt dem exakten Namen der Gruppe anzugeben, die ganze Sache etwas Sprachneutraler zu gestalten?
private void GetUsers(String strHost, int Line)
{
using (DirectoryEntry groupEntry = new DirectoryEntry("WinNT://" + strHost + "/Administratoren,group"))
{
int i = 0;
foreach (object member in (IEnumerable)groupEntry.Invoke("Members"))
{
using (DirectoryEntry memberEntry = new DirectoryEntry(member))
{
string fullUser = memberEntry.Path;
char[] strTrim = { 'W', 'i', 'n', 'N', 'T', ':', '/', '/'};
string shortUser = fullUser.TrimStart(strTrim);
user[i] = shortUser;
dgvItems.Rows[Line].Cells[i+2].Value = user[i];
i += 1;
}
}
}
}
Richtig, ich habe mich vielleicht unverständlich ausgedrückt. Die Passwörter sind schon bekannt, da andere Programme bereits per runas gestartet werden und mit /savecred die Passwörter gespeichert sind. Das wollte ich mir mit runas zunutze machen.
Lösung habe ich weiter oben im Beitrag editiert.
Deine Lösung funktioniert. Mein Problem war, das die Passwörter unbekannt sind und bleiben sollen. Ich kann die Leute nicht zwingen ihre Passwörter rauszurücken, damit ich Sie in eine Datei eintragen kann.
Das geht leider nicht, da das Programm von mehreren Personen genutzt wird, welche immer ein anderen Kennwort benutzen. Der einzige Ansatz war ohne das ein Passwort eingegeben werden muss oder hinterlegt werden müssen - runas ...
edit: Manchmal sieht man den Wald vor lauter Bäumen nicht...
ich möchte gern ein Programm als anderer Nutzer starten. Grundsätzlich erstmal kein Problem, jedoch soll kein Passwort eingegeben. Deshalb mittels "RunsAs" und /savecred. Ich dreh mich gerade absolut um Kreis und bitte um eure Hilfe.