Foro | | | | - Página 1 - |
| | ¡Hola Profaner...
Yo habe antes, mich demnächst veces algo mäher con el NT/NTFS File-Security a beschäftigen - Mostrar y ändern de Eigentümern y son Zeug para Ejemplo. Sombrero alguien así algo ya veces gemacht (con Security Descriptors gearbeitet) oder hay Interesse a el Thema? |
| | | | |
| | | | - Página 4 - |
| | | OK - ahora bist du dran. Füge veces antes de el besagten Línea una Editbox una y lasse dir el Werte ausgeben - Yo denke mein Verdacht se se bestätigen. |
| | | | |
| | CB | Das Blöde daran es, Yo en unserem Firmen-PC no eindeutige Zeilenzuordnung treffen kann - Yo kanns hay verständlicherweise sólo kompiliert testen y en mi privaten PC kriege Yo esta Fehlermeldung nada. Welchen Befehl hast Usted como en el Verdacht? Und wieso kriege Yo esta Fehler sólo Benutzerrechten?
Christian |
| | | | |
| | Ragnar Rehbein | por qué compilierst du no con XPSE ???
Yo a cada version el Yo en el einsatz habe el entsprechenden .enh - datei gespeichert. dadurch Yo siempre el richtige zeile en fehlermeldungen parat.
Yo hartnäckigen fällen (windowsschutzverletzungen) übersetze I, con {$debug kernelout} y lasse me el quellcode con debugview Mostrar.
r.r. |
| | | | |
| | | ¡Hola Christian...
Yo glaube, Yo dich el todo Tiempo no correcto verstanden: Usted hast el Problemas also en deinem Firmen-PC, y hay bist du sólo una User con eingeschränkten Rechten y kein Admin?
Yo poner aquí en mi Code Systemeinstellungen. Damit no cada Schwachkopf en el Sistema herumfummeln kann, son el Systemeinstellungen por Privilegien abgesichert.
Um dir el Daten des Security Descriptors en API Mostrar que se, muss dein Account el Privileg SeSecurityPrivilege besitzen. Der Besitz dieses Privilegs se u.a. por el Gruppe geregelt, el dein Account angehört (Administrator oder Benutzer con eingeschränkten Rechten). In el Regel son Privilegien deaktiviert, d.h. auch Admins puede no sin weiteres Systemeinstellungen en API ändern.
In mi Ver código fuente aktiviere I, con AdjustTokenPrivileges el Privilegien en el Token des aufrufenden Programms. Der Token es una una Prozess (Programa) zugeordneter Speicherbereich, el Infos encima el User enthält, el gerade el Programa ausführt - se also eingeloggt ha.
Yo schätze veces, du hast el Privileg nada, el Yo hier aktivieren voluntad... Als Folge su liefert GetFileSecurity sólo Müll zurück. Como GetFileSecurity u.a. el Größe des Security Descriptors ausliest, es Needed& wohl 0. En DIM PSECURITY_DESCRIPTOR#,Needed& se also el Zona no correcto dimensioniert. Bajo 2000 macht dss no Problemas, Yo podría me aber vorstellen, daß XP como algo anders reagiert.
Yo habe todavía una vez algo geändert y voluntad hoffen, el ahora el Fehlermeldungen ausbleiben.
Error 997 es de paso nichts Schlimmes, solange el aufrufende Función el Erfolg meldet. KompilierenMarcaSeparaciónWindowstyle 31
Windowtitle "File Security"
Window 0,0-640,440
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @SetLastError(1) !"KERNEL32","SetLastError"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
Def @GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
DEF @GetSecurityDescriptorOwner(3) !"ADVAPI32","GetSecurityDescriptorOwner"
DEF @GetSecurityDescriptorGroup(3) !"ADVAPI32","GetSecurityDescriptorGroup"
DEF @GetSecurityDescriptorDACL(4) !"ADVAPI32","GetSecurityDescriptorDacl"
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @IsValidAcl(1) !"ADVAPI32","IsValidAcl"
DEF @GetAclInformation(4) !"ADVAPI32","GetAclInformation"
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @GetAce(3) !"ADVAPI32","GetAce"
DEF @ConvertSidToStringSid(2) !"ADVAPI32","ConvertSidToStringSidA"
DEF @LocalFree(1) !"KERNEL32","LocalFree"
Declare Filename$,Fehler&,PSECURITY_DESCRIPTOR#,Needed#,Needed&
Declare NewState#,token#,Privileg#,Luid#,System$
Declare Laufwerk$,Label#,LFLAGS#,DAT#
DEclare SID#,GFLAG#
DEclare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
Declare Test&
Declare DACL_PRESENT#,P_ACL#,DACL_D#
Declare ACL_INFO#,Zähler&,ACE#,P_ACE#,ACE_SIZE&,STRSID#,P_STRSID#
Declare SID2#,IO%,ADDR_NEWSTATE&
LET Filename$=@LOADFILE$("Datei laden","Alle Dateien |*.*|Textdateien|*.TXT")
IF Filename$<>""
CLEARLIST
LET LAUFWERK$=@LEFT$(Filename$,3)
DIM Label#,256
DIM LFLAGS#,4
DIM DAT#,256
DIM STRSID#,256
DIM P_STRSID#,4
ADDSTRING "Gewählte Datei="+Filename$
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET FEHLER&=@GetVolumeInformation(@ADDR(Laufwerk$),Label#,256,0,0,LFlags#,DAT#,256)
ADDSTRING "Rückgabe von GetVolumeInformation="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Laufwerksflags="+@BIN$(@LONG(LFLAGS#,0))
IF @LONG(LFLAGS#,0) | $8 = @LONG(LFLAGS#,0)
ADDSTRING "Zugriff ist einschränkbar"
else
ADDSTRING "Zugriff ist nicht einschränkbar"
endif
ADDSTRING "Ausgelesene Partition="+@String$(Dat#,0)
dim token#,4
DIM NewState#,16
DIM Luid#,8
DIM Privileg#,33
ADDSTRING "Windowsversion="+$WINVER
Long NewState#,0=1 Nur ein Privileg soll geändert werden
Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
LET FEHLER&=@OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#)
ADDSTRING "Rückgabe von OpenProcessToken="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
Clear Privileg#
Clear LUID#
STRING Privileg#,0="SeSecurityPrivilege"
LET Fehler&=@LookupPrivilegeValue(@addr(System$),Privileg#,LUID#)
ADDSTRING "Rückgabe von LookupPrivilegeValue für SeSecurityPrivilege="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
LET IO%=%IORESULT
LET ADDR_NEWSTATE&=NewState#
LET ADDR_NEWSTATE&=ADDR_NEWSTATE&+4
@CopyMemory(ADDR_NEWSTATE&,Luid#,8)
ADDSTRING "Letzter API-Fehler nach CopyMemory="+@STR$(@GetLastError())
Let Fehler&=@AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
ADDSTRING "Rückgabe von AdjustTokenPrivileges="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
Clear NewState#
Long NewState#,0=1 Nur ein Privileg soll geändert werden
Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
Clear Privileg#
Clear LUID#
STRING Privileg#,0="SeTakeOwnershipPrivilege"
LET Fehler&=@LookupPrivilegeValue(@addr(System$),Privileg#,LUID#)
ADDSTRING "Rückgabe von LookupPrivilegeValue fur SeTakeOwnershipPrivilege="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
LET IO%=%IORESULT
LET ADDR_NEWSTATE&=NewState#
LET ADDR_NEWSTATE&=ADDR_NEWSTATE&+4
@CopyMemory(ADDR_NEWSTATE&,Luid#,8)
ADDSTRING "Letzter API-Fehler nach CopyMemory="+@STR$(@GetLastError())
Let Fehler&=@AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
ADDSTRING "Rückgabe von AdjustTokenPrivileges="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
LET IO%=%IORESULT
DIM Needed#,4
Clear Needed#
LET Fehler&=@GetFileSecurity(@ADDR(Filename$),$1 | $2 | $4 | $8,0,0,Needed#)
ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET NEEDED&=@LONG(Needed#,0)
ADDSTRING "Erforderliche Länge des Security Descriptor="+@STR$(Needed&)
CASE NEEDED&=0 : LET NEEDED&=1024
DIM PSECURITY_DESCRIPTOR#,Needed&
Clear PSECURITY_DESCRIPTOR#
@SetLastError(0)
LET Fehler&=@GetFileSecurity(@ADDR(Filename$),$1 | $2 | $4,PSECURITY_DESCRIPTOR#,NEEDED&,Needed#)
ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR#)
ADDSTRING "Rückgabe von IsValidSecurityDescriptor="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
DIM SID#,4
DIM GFlag#,4
Clear SID#
Clear GFLAG#
LET FEHLER&=@GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR#,SID#,GFLAG#)
ADDSTRING "Rückgabe von GetSecurityDescriptorOwner="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidSid(@long(SID#,0))
ADDSTRING "Rückgabe von IsValidSid für den Besitzer="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
DIM ACCOUNT_NAME#,256
DIM SIZE_ACCOUNT#,4
DIM Domain#,256
DIM SIZE_DOMAIN#,4
DIM SID_NAME_USE#,4
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET FEHLER&=@LookupAccountSid(@ADDR(System$),@Long(SID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
LET IO%=%IORESULT
ADDSTRING "Domainname="+@String$(Domain#,0)
ADDSTRING "Besitzer der Datei="+@String$(ACCOUNT_NAME#,0)
Clear STRSID#
IF @VAL(@LEFT$($WINVER,3))>=5.0
LET FEHLER&=@ConvertSidToStringSid(@Long(SID#,0),P_STRSID#)
@CopyMemory(STRSID#,@LONG(P_STRSID#,0),255)
ADDSTRING "String-SID des Besitzers="+@STRING$(STRSID#,0)
ADDSTRING "Rückgabe von ConvertSidToStringSid="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
endif
LET Fehler&=@LocalFree(@LONG(P_STRSID#,0))
ADDSTRING "Rückgabe von LocalFree für den String-SID="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Clear SID#
Clear GFLAG#
LET FEHLER&=@GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR#,SID#,GFLAG#)
ADDSTRING "Rückgabe von GetSecurityDescriptorGroup="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidSid(@long(SID#,0))
ADDSTRING "Rückgabe von IsValidSid für die primäre Gruppe="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
LET FEHLER&=@LookupAccountSid(@ADDR(System$),@Long(SID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
LET IO%=%IORESULT
ADDSTRING "Domainname="+@String$(Domain#,0)
ADDSTRING "Primäre Gruppe der Datei="+@String$(ACCOUNT_NAME#,0)
DIM DACL_PRESENT#,1
DIM P_ACL#,4
DIM DACL_D#,4
Let Fehler&=@GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,DACL_PRESENT#,P_ACL#,DACL_D#)
ADDSTRING "Rückgabe von GetSecurityDescriptorDacl="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
ADDSTRING "Rückgabe von IsValidAcl für den DACL="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
IF Fehler&=1
DIM ACL_INFO#,12
DIM P_ACE#,4
CLEAR ACL_INFO#
Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "ACEs in ACL="+@STR$(@LONG(ACL_INFO#,0))
LET Zähler&=0
IF @STR$(@LONG(ACL_INFO#,0))<>0
While Zähler&<@LONG(ACL_INFO#,0)
Clear P_ACE#
Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
DIM ACE#,4
Clear ACE#
@CopyMemory(ACE#,@LONG(P_ACE#,0),4)
LET ACE_SIZE&=@Word(ACE#,2)
ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))
IF @BYTE(ACE#,0)=0
ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"
ElseIF @BYTE(ACE#,0)=1
ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"
ElseIF @BYTE(ACE#,0)=2
ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"
ElseIF @BYTE(ACE#,0)=3
ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"
endif
Dispose ACE#
DIM ACE#,ACE_SIZE&
Clear SID_NAME_USE#
Clear ACCOUNT_NAME#
Clear Domain#
Clear ACE#
Long SIZE_ACCOUNT#,0=255
LONG SIZE_DOMAIN#,0=255
@CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)
DIM SID2#,ACE_SIZE&-8
@CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
LET FEHLER&=@LookupAccountSid(@ADDR(System$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
ADDSTRING "Reset des API-Fehlers wird durchgeführt"
@SetLastError(0)
LET IO%=%IORESULT
ADDSTRING @STR$(Zähler&)+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)
ADDSTRING @STR$(Zähler&)+". ACE Bezogen auf Domainname="+@String$(Domain#,0)
ADDSTRING "Accessrechte des "+@STR$(Zähler&)+". ACEs=$"+@HEX$(@LONG(ACE#,4))
LET Zähler&=Zähler&+1
Dispose SID2#
Dispose ACE#
wend
Endif
Endif
LET FEHLER&=@CloseHandle(@LONG(Token#,0))
ADDSTRING "Rückgabe von CloseHandle="+@STR$(Fehler&)
ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
Dispose P_ACE#
Dispose ACL_INFO#
Dispose DACL_D#
Dispose P_ACL#
Dispose DACL_PRESENT#
Dispose SID_NAME_USE#
Dispose ACCOUNT_NAME#
Dispose SIZE_ACCOUNT#
Dispose Domain#
Dispose SIZE_DOMAIN#
Dispose SID#
Dispose GFLAG#
Dispose Luid#
Dispose Privileg#
Dispose NewState#
Dispose token#
Dispose Needed#
Dispose PSECURITY_DESCRIPTOR#
Dispose Label#
Dispose LFlags#
DISPOSE DAT#
Dispose STRSID#
Dispose P_STRSID#
@Editbox("API Rückgaben",1)
E a>
Mientras que 0=0
Waitinput
Wend
Das zweite Privileg, el Yo hier aktiviere, es de paso nötig, en de paso dazu nötig, en el Eigentümer a ändern... |
| | | | |
| | CB | Das 1. mache Yo sí - dadurch stimmen sí el Zeilennummern en el .enh no mehr con el ursprünglichen Code überein - en el enh son todos Declares en el 1. Línea, wo posición el en el .prc? Como verschiebt se alles una bißchen. Debuggen kann Yo en el Fa no, porque Yo hay kein Profano installieren kann - si la rauskriegen, Yo como fremde Progs installiere, außerdem Yo hay sólo Benutzerrechte ...
Christian |
| | | | |
| | | ¡Hola Christian...
Brauchst du hay auch no testen - Yo bloß el todo Tiempo pensamiento, du hättest el problema en deinem Rechner a Casa - como Admin. Dass el no con allen Useraccount funktioniert, es vollkommen klar y nachzuvollziehen - y el brauchen wir auch no más nachzugehen - also sólo a Casa testen. Yo habe dir sí ya veces dijo - es alles nichts para Hacker, sólo para Admins.
Yo voluntad mich demnächst aún en el SACL reinknien y luego voluntad todos Werte todavía geändert...
El Zeilennummer stimmt u.a. wegen el Leerzeilen no. |
| | | | |
| | CB | Erspart me algo Arbeit - aber interessiert hätts mich ya, wieso esta Fehlermeldung sólo Benutzerrechten auftritt...
Christian |
| | | | |
| | Ragnar Rehbein | una otro nette option Es el compileroption -M en XProfan9. Luego se una mapdatei para el zeilennummern producido.
esta debería beim encontrar el fehlerhaften zeile helfen. Yo bisher aber sólo kurz getestet. kann also no sagen como genau ellos es.
r.r. |
| | | | |
| | | ¡Hola Christian...
El Erklärung, el Yo en el Augenblick habe, Yo sí ya Nuevo. Wenn el así es, dürfte el Fehler seit el letzten Ver código fuente Fijo ser.
Noch una bastante blöde Cuestión:
Als Yo mich antes uno Tiempo el Privilegien y danach con el LSA-Security-API beschäftigt habe, Yo así el Eindruck bekommen, daß niemand de los XP y 2000 Fans (scheinbar Roland auch no) una blassen Schimmer su ha, como el Betriebsystem überhaupt en etwa arbeitet. Selbst el Sachen, el du en Registry erkannt hast, scheint hier kaum alguien ( - oder außer uns beiden gar keiner?) a wissen - o, el el wissen, behalten Ihr Wissen para se.
In como weit hast du verstanden, qué como en el Ver código fuente - y darauf bezogen en el Betriebssystem - bislang abläuft, oder son el alles böhmishe Dörfer para dich? Lo va No a Función cada API, pero sólo por lo tanto, qué hay en el Principio passiert... |
| | | | |
| | | ¡Hola Ragnar...
Besten Dank para el Referencia, aber zumindestens Yo arbeite todavía con Profano 7.5 . In como weit hast du Einblick en el Security? Yo habe langsam así el Eindruck, el Yo el einzige bin, el se jemals así beschäftigt ha... |
| | | | |
| | CB | ¡Hola Andreas! Was el Security angeht: Yo habe mich ya antes Jahren una bissel con Netzwerken y Rechtevergaben etc. auseinandergesetzt y habe dadurch ya una ungefähre Vorstellung, bloß reicht el por desgracia, no de, en Usted una große Ayuda ser a puede, ya más con el Registry - con el Yo mich algo intensiver befasst. Außerdem hats mich siempre ya interessiert, qué como en el Hintergrund así abläuft, zB beim Zugriff en una Expediente, wo innerhalb uno Sekunde unos pocos tausend Schreib- y Lesezugriffe en el Reg. stattfinden. Gibt sí bastante nette Tools dazu, de [...] por ejemplo... Speziell TokenMon (va desafortunadamente sólo bajo NT y 2000) podría Yo vorstellen daß ellos uns weiterhilft. Christian |
| | | | |
| | | ¡Hola Christian...
Das du dich bien en el Registry auskennst Yo me ya pensamiento. Yo habe deswegen una SID auch en Stringform dastellen dejar => siehe auch dazu HKEY_USERS. Wo gibts esta Tools? Sieht muy schick de! Wenn dir como sonst irgenwas unklar es - frag mich simplemente. Yo denke, Yo habs verstanden.
Ayuda voluntad Yo wohl kaum benötigen - el Sache entpuppt se como wesentlich einfacher como alles otro, Yo bislang en el Securitybereich zusammengeschustert habe.
Was Todavía bräuchte, wäre una möglichst vollständige Liste aller User y Gruppen uno Systems. An el User bin Yo bislang siempre así herangekommen: - Bajo HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory lese Yo, el Pfad asus, en el el Userprofile gespeichert son. - Yo búsqueda entonces hay después de el vorhandenen Verzeichnissen. - En el momento sehe Yo entonces después de, si en diesem Directorio una NTUSER.DAT existiert. Besser wäre sin embargo entonces LookupAccountName y IsValidSid utilizarse, en a testen, si el Directorio el Loginname uno Users es.
Usted scheinst como en el Registry auch einiges en Gruppen gefunden a haben - una Concepto cómo el listen podría? |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 6 subscriber: |