AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) NetUserGetInfo schlägt fehl mit "Überlappender E/A-Vorgang..
Thema durchsuchen
Ansicht
Themen-Optionen

NetUserGetInfo schlägt fehl mit "Überlappender E/A-Vorgang..

Ein Thema von Luckie · begonnen am 14. Nov 2007 · letzter Beitrag vom 14. Nov 2007
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

NetUserGetInfo schlägt fehl mit "Überlappender E/A-Vorg

  Alt 14. Nov 2007, 12:57
Ich rufe obige API-Funktion wie folgt auf:
Delphi-Quellcode:
type
  NET_API_STATUS = DWORD;

type
  TUserInfo1 = record
    usri1_name: LPWSTR;
    usri1_password: LPWSTR;
    usri1_password_age: DWORD;
    usri1_priv: DWORD;
    usri1_home_dir: LPWSTR;
    usri1_comment: LPWSTR;
    usri1_flags: DWORD;
    usri1_script_path: LPWSTR;
  end;
  PUserInfo1 = ^TUserInfo1;

const
  NERR_Success = 0;
  USER_PRIV_ADMIN = 2;

function NetUserGetInfo(servername: LPCWSTR; username: LPCWSTR; level: DWORD; var bufptr: PUserInfo1): NET_API_STATUS;
  stdcall; external 'netapi32.dllname 'NetUserGetInfo';

function IsAdminByNetUserGetInfo: Boolean;
var
  CurrentUser : string;
  ui1 : PUserInfo1;
begin
  Result := False;
  CurrentUser := GetCurrUserName;
  if NetUserGetInfo(nil, PWideChar(WideString(CurrentUser)), 1, ui1) = NERR_Success then
  begin
    Result := ui1.usri1_priv = USER_PRIV_ADMIN;
    NetApiBufferFree(ui1);
  end
  else
    Writeln(GetLastError);
end;
Als Fehlermeldung bekomme ich
Zitat:
Überlappender E/A-Vorgang wird verarbeitet.
, was ich nicht so ganz verstehe. Ich habe diese Funktion schon öfters benutzt und sehe nicht, was ich hier anders bzw. falsch mache.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 13:15
Moin Michael,

GetLastError sagt bei dieser Funktion aber nichts aus.
Du musst Dir schon den Rückgabewert der Funktion merken, und auf NERR_SUCCESS vergleichen, bzw. diesen Wert als Fehlercode verarbeiten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 13:30
Äh, ja. Der Magen ist leer, damit programmiert es sich nicht so gut. Der Rückgabewert ist 2221: " Der Benutzername konnte nicht gefunden werden" und das passt auch, da ich mich über einen Server authentifiziert habe. Ergebnis ist übrigens False, lokal bin ich zwar Administrator auf dem Rechner, aber eben nicht in der Domain. Hingegen wenn ich das Token prüfe, bin ich lokaler Admin. Ist schon interessant.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#4

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 13:45
Kurze Frage:
Was willst du mit der Funktion IsAdminByNetUserGetInfo bewirken?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 14:39
Herausfinden, ob ein Benutzer Administrator ist oder nicht. Es gibt drei Möglichkeiten:
1. über NetUserGetInfo
2. über das Token
3. über die DACL
drittes implementiere ich gerade, habe aber noch ein paar Schwierigkeiten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 14:56
Moin Michael,

ich vermute mal, Du meinst damit, dass Du herausfinden willst, ob der User lokaler Administrator ist.
Dann solltest Du aber nicht nur den Usernamen angeben, sondern auch, wo er User ist, also <Domäne>\<User> bzw. <Computername>\<User>
Allerdings weiss ich jetzt nicht, ob die Funktion mit solchen Angaben umgehen kann.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 14:59
@Christian: Jupp, habe ich schon alles berücksichtigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Remko
Remko

Registriert seit: 10. Okt 2006
Ort: 's-Hertogenbosch, Die Niederlande
222 Beiträge
 
RAD-Studio 2010 Arc
 
#8

Re: NetUserGetInfo schlägt fehl mit "Überlappender E/A-

  Alt 14. Nov 2007, 15:20
AFAIK error 997 (overlapped I/O in progress) can be considered as success
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz