Italia
Stammtisch & Caffè

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 circa 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 circa 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 grande Bereichsvariable mit einem String im Unicode Format, der den Namen des Zielsystems enthält.
2.Parameter: Struktur oder 28 Byte Große Bereichsvariable per 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 per die Aktion nötig sind, per die man das Handle necessario. =>
#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 per 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 per den anfragenden Prozess (MAXIMUM_ALLOWED).
4.Parameter: 4 Byte grande 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.789 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema hat 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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