Re: Alle PC-Namen eines Netzwerkes erhalten
Das wäre echt cool! Aber falls du keine Zeit hast, dann musst du es natürlich nicht machen. ;)
|
Re: Alle PC-Namen eines Netzwerkes erhalten
Moin Matze,
probier mal, ob das hier bei euch funktioniert.
Delphi-Quellcode:
type
NET_API_STATUS = DWORD; PWKSTA_USER_INFO_0 = ^WKSTA_USER_INFO_0; WKSTA_USER_INFO_0 = packed record wkui0_username : PWChar; end; function NetWkstaUserEnum( const servername : PWChar; const level : DWord; const bufptr : Pointer; const prefmaxlen : DWord; const entriesread : PDWord; const totalentries : PDWord; const resumehandle : PDWord ) : NET_API_STATUS; stdcall; external 'netapi32.dll'; function NetApiBufferFree( const Buffer : Pointer ) : NET_API_STATUS; stdcall; external 'netapi32.dll'; const NERR_Success = 0; MAX_PREFERRED_LENGTH = DWORD(-1); implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var pwuiWork : PWKSTA_USER_INFO_0; pwuiRead : PWKSTA_USER_INFO_0; dwEntriesRead : DWORD; dwTotalEntries : DWORD; i : integer; dwResult : DWORD; pwsServer : PWideChar; begin pwsServer := ''; dwResult := NetWkstaUserEnum(pwsServer,0,@pwuiRead,MAX_PREFERRED_LENGTH,@dwEntriesRead,@dwTotalEntries,nil); if dwResult <> NERR_SUCCESS then begin ShowMessage(SysErrorMessage(dwResult)+#13#10+IntToStr(dwResult)); end; try pwuiWork := pwuiRead; for i := 1 to dwEntriesRead do begin ShowMessage(pwuiWork.wkui0_username); inc(pwuiWork); end; finally NetApiBufferFree(pwuiRead); end; end; |
Re: Alle PC-Namen eines Netzwerkes erhalten
Vielen Dank. Du bist aber schnell! :thumb:
Ich sag dir in den nächsten Tagen Bescheid. |
Re: Alle PC-Namen eines Netzwerkes erhalten
Moin Matze,
für weiteres in dieser Richtung, wäre es dann aber angebracht einen neuen Thread zu eröffnen, denn das hat mit den Rechnern im Netz absolut nichts mehr zu tun. ;-) |
Re: Alle PC-Namen eines Netzwerkes erhalten
OK, Moment, wird gemacht...
|
Re: Alle PC-Namen eines Netzwerkes erhalten
Hi!
Das Programm ist geil! Saubere Leistung! Mfg Sniper-GFX |
Re: Alle PC-Namen eines Netzwerkes erhalten
Benutzer kannst du nur als Admin zuverlässig auflisten. Bzw als jemadn, der Rechte in der Remote-Registry hat (zB mein LoggedOn2 macht das so).
Christians Methode ist weit von zuverlässig entfernt. Leider hat sich MS damit wohl eher so einen Scherz erlaubt. Scheint ne Art Fake-API zu sein. Jedenfalls erreicht man das gleiche, wenn man bestimmte Shares auf einem Fremdrechner auflistet (nämlich die Sessions eines Benutzers). Leider sind die Sessions manchmal Zombies und manchmal sind User eingeloggt, aber NetEnum... listet nix. Ergo ... Mist :-/ BTW: Wenn das obige hackermäßig war, was ist denn dann TRACERT ... ROFL. |
Re: Alle PC-Namen eines Netzwerkes erhalten
Moin Assarbad,
es ging hierbei vermutlich nicht um die Zeilen hier weiter oben auf der Seite, sondern um das Attachement von der vorigen ;-) Die Nummer mit der Registry hab' ich schon lange auf dem Zettel. Mal sehen, wann ich endlich mal dazu komme. Für eine erfolreiche Ausführung von RegConnectRegistry brauchst Du allerdings auch entsprechende Zugriffsrechte auf den Remote Rechner. Als "normaler" User gibt's da nur ein Access Denied. Das NetWkstaUserEnum nicht so das gelbe vom Ei ist, ist mit Sicherheit richtig, wie ich inzwischen feststellen musste, denn auch "NET SEND username" benutzt diese Funktion nicht :? (allerdings auch nicht die Registry-Methode) Zitat:
|
Re: Alle PC-Namen eines Netzwerkes erhalten
Zitat:
Ich bin dafür, ein Forum aufzumachen, in dem Info-Lehrer, welche in Delphi unterrichten müssen (mit Alterskontrolle) von Nicht-Schülern supported werden ;) ... laßt den Kampf beginnen :-D |
Re: Alle PC-Namen eines Netzwerkes erhalten
Moin Assarbad,
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 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