| El Incluir SET_FILE_OWNER.INC ändert el Eigentümer uno Expediente. Eigentümer puede sólo el aktuelle User o Gruppen voluntad, el en el Token des aktuellen Users dafür gekennzeichnet son. A Übenahme muß el Privileg SeTakeOwnership en el Token des aktuellen Users disponible ser (el Aktivierung übernimmt Incluya el). Außerdem necesario el Zugriffsrechte WRITE_OWNER READ_CONTROL en el Security-Descriptor el Expediente para el aktuellen User bestehen. El Incluir läßt se relativ simplemente otro Objetos (Registry, Prozesse, Hilos) erweitern oder umschreiben. KompilierenMarcaSeparaciónDEF @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
Disponer LFlags_OW_#
Disponer DAT_OW_#
CASE OldOwner_OW_$<>"" : Volver OldOwner_OW_$
ENDPROC
|
|