Deutsch
Stammtisch & Café

LsaOpenPolicy

 


Beschreibung:

LsaOpenPolicy öffnet das Handle des Policy Objektes auf dem lokalen System oder einem Hintergrundcomputer. Das Policy Objekt Handle ist quasi „der goldene Schlüssel“ zu den Sicherheitseinstellungen die über die LSA-API getätigt werden können. Diese Funktion gibt es nur unter NT-basierten Windowssystemen.




Deklaration:

DEF @LsaOpenPolicy(4) !advapi32,LsaOpenPolicy




Parameter:

1.Parameter: Struktur oder 8 Byte Große Bereichsvariable, die Angaben über das Zielsystem enthält, dessen Policy Objekt Handle geöffnet werden soll. =>
-Byte 0-1 = Die Lange des Strings in Bytes, auf den Byte 4-7 verweist.
-Byte 2-3 = Die Länge des Bereichs in Bytes, auf den Byte 4-7 verweist.
-Byte 4-7 = Beliebig, aber ausreichend große Bereichsvariable mit einem String im Unicode Format, der den Namen des Zielsystems enthält.
2.Parameter: Struktur oder 28 Byte Große Bereichsvariable für die Angabe von Verbindungsattributen. Dieser Parameter wird zur Zeit nicht genutzt. Alle Bytes der Struktur oder der Bereichsvariablen müssen deshalb auf 0 gesetzt werden.
3.Parameter: Flags, die den gewünschten Zugriff auf das Handle angeben. Flags können mit | addiert werden. Wenn das Zielsystem dem aufrufenden Prozess nicht alle Zugriffsrechte gewährt, schlägt die Funktion fehlt. Man sollte sich deshalb genau überlegen, welche Zugriffsrechte genau für die Aktion nötig sind, für die man das Handle benötigt. =>
#Generic Zugriffsrechte#:
-$80000000 = Lesezugriff (GENERIC_READ).
-$40000000 = Schreibzugriff (GENERIC_WRITE).
-$20000000 = Recht zum Ausführen (GENERIC_EXECUTE).
-$10000000 = Recht zum Ausführen, Schreibzugriff und Lesezugriff (GENERIC_ALL).
#Standard Zugriffsrechte#:
-$01000000 = Um Zugriff auf die SACL zu erhalten (ACCESS_SYSTEM_SECURITY).
-$00020000 = Um Lesezugriff auf den Security Descriptor (ohne den SACL) zu erhalten (READ_CONTROL = STANDARD_RIGHTS_READ = STANDARD_RIGHTS_WRITE = STANDARD_RIGHTS_EXECUTE).
-$00010000 = Recht zum löschen (_DELETE).
-$00040000 = Schreibrecht auf den ACL (WRITE_DAC).
-$00080000 = Schreibrecht auf den Eigentümer (WRITE_OWNER).
-$00100000 = Erlaubt einem Prozess auf das Objekt zu warten (SYNCHRONIZE). Gibt es nicht für alle Objekttypen.
-$000F0000 = $00010000+$00020000+$00080000+$00040000 (STANDARD_RIGHTS_REQUIRED).
-$001F0000 = $00010000+$00020000+$00100000+$00080000+$00040000 (STANDARD_RIGHTS_ALL).
#Spezifische Zugriffsrechte#:
-$0001 = (POLICY_VIEW_LOCAL_INFORMATION).
-$0002 = (POLICY_VIEW_AUDIT_INFORMATION)
-$0004 = (POLICY_GET_PRIVATE_INFORMATION).
-$0008 = (POLICY_TRUST_ADMIN).
-$0010 = (POLICY_CREATE_ACCOUNT).
-$0020 = (POLICY_CREATE_SECRET).
-$0040 = (POLICY_CREATE_PRIVILEGE).
-$0080 = (POLICY_SET_DEFAULT_QUOTA_LIMITS).
-$0100 = (POLICY_SET_AUDIT_REQUIREMENTS).
-$0200 = (POLICY_AUDIT_LOG_ADMIN).
-$0400 = (POLICY_SERVER_ADMIN).
-$0800 = (POLICY_LOOKUP_NAMES).
-$FFFF = Alle spezifischen Rechte (SPECIFIC_RIGHTS_ALL).

-$02000000 = Alle erlaubten Zugriffsrechte für den anfragenden Prozess (MAXIMUM_ALLOWED).
4.Parameter: 4 Byte große Bereichsvariable, die das Handle des Poolicy Objektes aufnimmt.



Rückgabewert:

0 bei Erfolg, ansonsten ein NT-Status Fehlercode (LongInt), der mit LsaNtStatusToWinError in einen Systemfehlercode umgewandelt werden kann.


Beispiele:

KompilierenMarkierenSeparieren
DEF @LsaOpenPolicy(4) !"advapi32","LsaOpenPolicy"
DEF @LsaClose(1) !"advapi32","LsaClose"
DEF @LsaNtStatusToWinError(1) !"advapi32","LsaNtStatusToWinError"
Declare Fehler&,UNICODE#,Attribut#,POLICY_Handle#
Declare Policy_Handle&
Struct LSA_UNICODE_STRING=Length%,MaximumLength%,Buffer&
DIM UNICODE#,LSA_UNICODE_STRING
Clear UNICODE#
Struct LSA_OBJECT_ATTRIBUTES=Length&,RootDirectory&,Length%,MaximumLength%,Buffer&,Attributes&,SecurityDescriptor#(4),SecurityQualityOfService#(4)
DIM Attribut#,LSA_OBJECT_ATTRIBUTES
Clear Attribut#
Dim POLICY_Handle#,4
Windowstyle 31
Windowtitle "Policyobjekthandle"
Window 0,0-640,440
LET Fehler&=@LsaOpenPolicy(0,Attribut#,16 | 2048,POLICY_Handle#)
Print "Rückmeldung von LsaOpenPolicy="+@STR$(Fehler&)
Let Fehler&=@LsaNtStatusToWinError(Fehler&)
PRINT "LsaOpenPolicy Rückmeldung umgewandelt in Windows Fehlercode="+@STR$(Fehler&)
LET Policy_Handle&=@LONG(POLICY_Handle#,0)
Print "Geliefertes Handle="+@STR$(Policy_Handle&)
LET Fehler&=@LsaClose(Policy_Handle&,0)
Print "Rückmeldung von LsaClose="+@STR$(Fehler&)
Let Fehler&=@LsaNtStatusToWinError(Fehler&)
PRINT "LsaClose Rückmeldung umgewandelt in Windows Fehlercode="+@STR$(Fehler&)

While 0=0

    Waitinput

Wend

 
08.04.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.786 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie