Deutsch
Includes

Eigentümer einer Datei setzen

 
Die Include SET_FILE_OWNER.INC ändert den Eigentümer einer Datei. Eigentümer können nur der aktuelle User oder die Gruppen werden, die im Token des aktuellen Users dafür gekennzeichnet sind. Zur Übenahme muß das Privileg SeTakeOwnership im Token des aktuellen Users vorhanden sein (die Aktivierung übernimmt die Include). Außerdem müssen die Zugriffsrechte WRITE_OWNER READ_CONTROL im Security-Descriptor der Datei für den aktuellen User bestehen.
Die Include läßt sich relativ einfach auf andere Objekte (Registry, Prozesse, Threads) erweitern oder umschreiben.
KompilierenMarkierenSeparieren
DEF @OW_IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @OW_GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @OW_GetLastError(0) !"KERNEL32","GetLastError"
DEF @OW_SetLastError(1) !"KERNEL32","SetLastError"
DEF @OW_GetSecurityDescriptorOwner(3) !"ADVAPI32","GetSecurityDescriptorOwner"
DEF @OW_IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @OW_LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @OW_SetSecurityDescriptorOwner(3) !"ADVAPI32","SetSecurityDescriptorOwner"
Def @OW_GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
DEF @OW_LookupAccountName(7) !"advapi32","LookupAccountNameA"
DEF @OW_InitializeSecurityDescriptor(2) !"ADVAPI32","InitializeSecurityDescriptor"
DEF @OW_SetFileSecurity(3) !"ADVAPI32","SetFileSecurityA"
DEF @OW_LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OW_OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @OW_AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @OW_GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @OW_CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @OW_GetLastError(0) !"KERNEL32","GetLastError"
Declare LOG_EINTRÄGE&

PROC SET_FILE_OWNER

    Parameters Filename_OW_$,OWNER_OW_$,Datei_NUMMER%,LOG_NUMMER&
    Declare NEEDED_ow_#,SIDa_ow_#,Fehler_ow_&,NEEDED_ow_&,PSECURITY_DESCRIPTOR_ow_#
    Declare SID_ow_#,GFLAG_ow_#,System_ow_$
    Declare SID_NAME_USE_ow_#,ACCOUNT_NAME_ow_#,Domain_ow_#
    Declare SIZE_ACCOUNT_ow_#,SIZE_DOMAIN_ow_#
    Declare LAUFWERK_OW_$,Label_OW_#,LFlags_OW_#,DAT_OW_#
    Declare OldOwner_OW_$,TOKEN_OW_#
    Declare NewState_OW_#,Privileg_OW_#,LUID_OW_#
    Declare ADDR_NEWSTATE_OW_&
    DIM Label_OW_#,256
    DIM LFlags_OW_#,4
    DIM DAT_OW_#,256
    LET LOG_EINTRÄGE&=LOG_NUMMER&
    LET OldOwner_OW_$=""

    IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

        APPEND #Datei_Nummer%
        PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Zu bearbeitende Datei: "+FILENAME_ow_$
        CLOSE #Datei_Nummer%
        LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

    endif

    LET LAUFWERK_OW_$=@LEFT$(FILENAME_ow_$,3)
    LET Fehler_ow_&=@OW_GetVolumeInformation(@ADDR(LAUFWERK_OW_$),Label_OW_#,256,0,0,LFlags_OW_#,DAT_OW_#,256)

    IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

        APPEND #Datei_Nummer%
        PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von GetVolumeInformation: "+@STR$(Fehler_OW_&)
        CLOSE #Datei_Nummer%
        LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

    endif

    IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

        APPEND #Datei_Nummer%
        PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
        CLOSE #Datei_Nummer%
        LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

    endif

    IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

        APPEND #Datei_Nummer%
        PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Laufwerksflags: "+@BIN$(@LONG(LFLAGS_OW_#,0))
        CLOSE #Datei_Nummer%
        LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

    endif

    IF @LONG(LFLAGS_OW_#,0) | $8 = @LONG(LFLAGS_OW_#,0)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Zugriff auf Datei/Ordner ist einschränkbar"
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Ausgelesene Partition: "+@String$(Dat_OW_#,0)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        dim token_OW_#,4
        DIM NewState_OW_#,16
        DIM Luid_OW_#,8
        DIM Privileg_OW_#,33
        Clear NewState_OW_#
        Long NewState_OW_#,0=1 Nur ein Privileg soll geändert werden
        Long NewState_OW_#,12=$00000002 Das Privileg soll eingeschaltet werden
        Clear Privileg_OW_#
        Clear LUID_OW_#
        LET FEHLER_OW_&=@OW_OpenProcessToken(@OW_GetCurrentProcess(),$0020 | $0008,Token_OW_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von OpenProcessToken: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        STRING Privileg_OW_#,0="SeTakeOwnershipPrivilege"
        LET Fehler_OW_&=@OW_LookupPrivilegeValue(@addr(System_OW_$),Privileg_OW_#,LUID_OW_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von LookupPrivilegeValue für SeTakeOwnershipPrivilege: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET ADDR_NEWSTATE_OW_&=NewState_OW_#
        LET ADDR_NEWSTATE_OW_&=ADDR_NEWSTATE_OW_&+4
        @OW_CopyMemory(ADDR_NEWSTATE_OW_&,Luid_OW_#,8)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler nach CopyMemory: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        Let Fehler_OW_&=@OW_AdjustTokenPrivileges(@LONG(Token_OW_#,0),0,NewState_OW_#,0,0,0)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von AdjustTokenPrivileges: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        DIM Needed_ow_#,4
        Clear Needed_ow_#
        LET Fehler_ow_&=@OW_GetFileSecurity(@ADDR(FILENAME_ow_$),$1 | $2 | $4,0,0,Needed_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von GetFileSecurity: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET NEEDED_ow_&=@LONG(Needed_ow_#,0)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Erforderliche Länge des Security Descriptor: "+@STR$(NEEDED_ow_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        CASE NEEDED_ow_&=0 : LET NEEDED_ow_&=1024
        DIM PSECURITY_DESCRIPTOR_ow_#,NEEDED_ow_&
        Clear PSECURITY_DESCRIPTOR_ow_#
        @OW_SetLastError(0)
        LET Fehler_ow_&=@OW_GetFileSecurity(@ADDR(FILENAME_ow_$),$1 | $2 | $4,PSECURITY_DESCRIPTOR_ow_#,NEEDED_ow_&,Needed_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von GetFileSecurity: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET Fehler_ow_&=@OW_IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von IsValidSecurityDescriptor: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        DIM SID_ow_#,4
        DIM GFlag_ow_#,4
        Clear SID_ow_#
        Clear GFLAG_ow_#
        LET Fehler_ow_&=@OW_GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR_ow_#,SID_ow_#,GFLAG_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von GetSecurityDescriptorOwner: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET Fehler_ow_&=@OW_IsValidSid(@long(SID_ow_#,0))

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von IsValidSid: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        DIM ACCOUNT_NAME_ow_#,256
        DIM SIZE_ACCOUNT_ow_#,4
        DIM Domain_ow_#,256
        DIM SIZE_DOMAIN_ow_#,4
        DIM SID_NAME_USE_ow_#,4
        Clear SID_NAME_USE_ow_#,System_ow_$
        Clear ACCOUNT_NAME_ow_#,Domain_ow_#
        LONG SIZE_ACCOUNT_ow_#,0=255
        LONG SIZE_DOMAIN_ow_#,0=255
        LET Fehler_ow_&=@OW_LookupAccountSid(@ADDR(System_ow_$),@Long(SID_ow_#,0),ACCOUNT_NAME_ow_#,SIZE_ACCOUNT_ow_#,Domain_ow_#,SIZE_DOMAIN_ow_#,SID_NAME_USE_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von LookupAccountSid: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET OldOwner_OW_$=@String$(ACCOUNT_NAME_ow_#,0)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Besitzer der Datei: "+@String$(ACCOUNT_NAME_ow_#,0)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Control Flag: "+@STR$(@Long(GFLAG_ow_#,0))
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        Dispose SID_ow_#
        DIM SID_OW_#,1
        Clear SID_OW_#,SIZE_ACCOUNT_OW_#,Domain_OW_#,SIZE_Domain_OW_#,SID_NAME_USE_OW_#
        LONG SIZE_ACCOUNT_OW_#,0=1
        LONG SIZE_Domain_OW_#,0=256
        LET FEHLER_OW_&=@OW_LookupAccountName(@ADDR(System_OW_$),@addr(OWNER_OW_$),SID_OW_#,SIZE_ACCOUNT_OW_#,Domain_OW_#,SIZE_Domain_OW_#,SID_NAME_USE_OW_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von LookupAccountName: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        Dispose SID_OW_#
        DIM SID_ow_#,@LONG(SIZE_ACCOUNT_OW_#,0)
        Clear SID_OW_#,Domain_OW_#,SIZE_Domain_OW_#,SID_NAME_USE_OW_#
        LONG SIZE_Domain_OW_#,0=256
        LET FEHLER_OW_&=@OW_LookupAccountName(@ADDR(System_OW_$),@addr(OWNER_OW_$),SID_OW_#,SIZE_ACCOUNT_OW_#,Domain_OW_#,SIZE_Domain_OW_#,SID_NAME_USE_OW_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von LookupAccountName: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET FEHLER_OW_&=@OW_InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR_ow_#,$1)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von InitializeSecurityDescriptor: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET FEHLER_OW_&=@OW_SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR_ow_#,SID_OW_#,0)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von SetSecurityDescriptorOwner: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET FEHLER_OW_&=@OW_IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von IsValidSecurityDescriptor für den geänderten Security Descriptor: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        LET FEHLER_OW_&=@OW_SetFileSecurity(@ADDR(Filename_OW_$),$1,PSECURITY_DESCRIPTOR_ow_#)

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Rückgabe von SetFileSecurity: "+@STR$(Fehler_OW_&)
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Letzter API-Fehler: "+@STR$(@OW_GetLastError())
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

        Dispose Luid_OW_#
        Dispose Privileg_OW_#
        Dispose NewState_OW_#
        Dispose token_OW_#
        Dispose SID_NAME_USE_ow_#
        Dispose ACCOUNT_NAME_ow_#
        Dispose Domain_ow_#
        Dispose SIZE_ACCOUNT_ow_#
        Dispose SIZE_DOMAIN_ow_#
        Dispose NEEDED_ow_#
        Dispose PSECURITY_DESCRIPTOR_ow_#
        Dispose SID_ow_#
        Dispose GFLAG_ow_#

    else

        IF @and(Datei_Nummer%>0,Datei_NUMMER%<16)

            APPEND #Datei_Nummer%
            PRINT #Datei_Nummer%,@str$(LOG_EINTRÄGE&)+"="+"Zugriff ist nicht einschränkbar"
            CLOSE #Datei_Nummer%
            LET LOG_EINTRÄGE&=LOG_EINTRÄGE&+1

        endif

    endif

    Dispose Label_OW_#
    Dispose LFlags_OW_#
    Dispose DAT_OW_#
    CASE OldOwner_OW_$<>"" : Return OldOwner_OW_$

endproc

 
15.12.2005  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.399 Betrachtungen

Unbenanntvor 0 min.
Stringray05.01.2022
Uwe Lang29.11.2021
Manfred Barei31.07.2020
Georg Teles21.05.2020
Mehr...

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