![]() |
Re: ordnerfreigabe mit passwort
Wenn ich richtig informiert bin kann man unter Windows 2000 + XP keine Ordner mit Passwort freigeben.
Das geht nur mehr mit Benutzern. edit: komisch, anscheinend geht es bei dir doch :stupid: aber dass das unter 2000 geht und unter xp nicht finde ich schon komisch |
Re: ordnerfreigabe mit passwort
Zitat:
Ich habe es jetzt mal nach deinen Vorschlägen geändert. Nur die NetShareAddNt habe ich wie gehabt übernommen, da in deiner Version der Parameter buf eine Kostante ist und mir auf die schnelle nicht eingefallen ist, wie ich das dann anpassen muss. Und so funktioniert es auch :) Außerdem entspricht meine Version genau der Win32 API Doku.. Ich muss zugeben, dass ich die SHARE_INFO_50-Struktur selbst aus der API-Docu abgeleitet habe. :oops: Wie müsste die denn aussehen? Zitat:
Zitat:
Allerdings bleibt zu vermuten, dass auch die Funktion NetShareDel dann nur unter NT/XP funktioniert. Vielleicht kannst du mir ja auch da noch einen Tipp geben. Danke Rai |
Re: ordnerfreigabe mit passwort
Zitat:
Zitat:
Zitat:
Zitat:
Gruss Nico |
Re: ordnerfreigabe mit passwort
Zitat:
Dazu sollte aber auch alles stimmen, deshalb: 1. Hat sich nochmal jemand meine UnShareFldr bzw. die NetShareDel insbesondere in Hinblick auf Win9x/ME angesehen - XP funktioniert. Bzw. 2. Stimmt die Boolean-Auswertung des Rückgabe-Wertes NET_API_STATUS = 0 als true (Freigabe erfolgreich) sonst false? Bin für alle Antworten dankbar Rai |
Re: ordnerfreigabe mit passwort
Zitat:
Später vielleicht... Zitat:
|
Re: ordnerfreigabe mit passwort
Zitat:
Zitat:
Danke :) |
Re: ordnerfreigabe mit passwort
Hallo zusammen,
ich habe eine Komponente gefunden ( ![]() Unter WinXP wird der Ordner immer mit Vollzugriff für jeden freigegeben! Will man unter W2K/XP eine Freigabe für einen oder mehrere Benutzer / Gruppen realisieren, muss man wohl oder übel SharInfo502 verwenden und einen SecurityDescriptor übergeben. Den erhält man über die Funktion GetSecurityInfo(). Hier muss man dann noch eine SID für den User angeben, die man mittels LookupAccountName() erhält. Soweit habe ich das verstanden (oder nicht? ;-) ). Ich habe nur leider keinen Wrapper für GetSecurityInfo() gefunden. Hat jemand eine API-Lib dafür? Mein Code bisher (in einer modifizierten Version der Routine "Share" der obigen Komponente):
Delphi-Quellcode:
Ich hoffe, das ist nicht zu chaotisch ... bin müde :oops:
(...)
// Erst die Buffergrößen ermitteln ... SidSize := 0; DomainNameSize := 0; LookupAccountName(nil, PChar(MyUserName), MyUserSID, SidSize, DomainName, DomainNameSize, SidType); // ... dann Speicher allokieren ... GetMem(MyUserSID, SidSize); DomainName := StrAlloc(DomainNameSize); // SID ermitteln LookupAccountName(nil, PChar(MyUserName), MyUserSID, SidSize, DomainName, DomainNameSize, SidType); // und jetzt: GetSecurityInfo(MyUserSID ...); // aber woher nehmen?!? PMySecDesc := @MySecDesc; MyShare.shi502_netname := PWideChar(MYName); MyShare.shi502_type := FResourceType; MyShare.shi502_remark := PWideChar(MYComment); MyShare.shi502_permissions := FNTPermissions; MyShare.shi502_max_uses := FMaxConnections; MyShare.shi502_current_uses := 0; MyShare.shi502_path := PWideChar(MyPath); MyShare.shi502_passwd := PWideChar(MyPW); MyShare.shi502_security_descriptor := PMySecDesc; (...) |
Re: ordnerfreigabe mit passwort
Ok, habe doch eine API-Conversation gefunden: GetSecurityInfo() wird in der unit JwaAclApi.pas der
![]() ![]() |
Re: ordnerfreigabe mit passwort
Wenn Du keine Komponente mit einem Acl-Editor-Dialog verwendest (sprich, alles von von Hand schreiben willst), hast Du viel Arbeit vor Dir.
Wenn vordefinierte Accounts ('Jeder', 'Administratoren') ausreichen, kannst Du einige SID-Konstanten verwenden. Beispiel unter ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz