| |
|
|
|
Descripción:
LookupAccountSid ermittelt de el Security Identifier (SID) el dazugehörigen User oder Gruppennamen y el erste Domain, en el dieser SID Gefunden wurde.
Deklaration:
DEF @LookupAccountSid(7) !ADVAPI32,LookupAccountSidA
Parámetro:
1.Parámetro: Adresse des Cuerdas, el el Systemnamen enthält oder 0 para el aktuellen Computer. 2.Parámetro: Bereichsvariable con el SID. 3.Parámetro: Bereichsvariable, el el Gruppen- oder Usernamen como String aufnimmt. 4.Parámetro: 4 Byte große Bereichsvariable, el el größe des Bereichs de Parámetro 3 enthält. Wurde Parámetro 3 a klein dimensioniert, es hier später el erforderliche Größe de Parámetro 3, si la Función zurückkehrt. 5.Parámetro: Un ausreichend große Bereichsvariable, el el Domainnamen aufnimmt. 6.Parámetro: 4 Byte große Bereichsvariable, el el größe des Bereichs de Parámetro 5 enthält. Wurde Parámetro 5 a klein dimensioniert, es hier später el erforderliche Größe de Parámetro 5, si la Función zurückkehrt. 7.Parámetro: SID_NAME_USE Struktur oder 4 Byte große Bereichsvariable, el una Flag para el Art des Accounts aufnimmt, si la Función zurückkehrt..=> -$1 = Username (SidTypeUser) -$2 = Gruppenname (SidTypeGroup) -$3 = Domain (SidTypeDomain) -$4 = SidTypeAlias -$5 = SidTypeWellKnownGroup -$6 = Gelöschter Account (SidTypeDeletedAccount) -$7 = SidTypeInvalid -$8 = SidTypeUnknown
Rückgabewert:
1 en Erfolg, 0 en Fehler
Beispiele:
KompilierenMarcaSeparaciónDEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
Declare Fehler&
Proc GET_Group_Name
Parameters Name$
Declare SYS$,SEC_ID#,CBNAME_SIZE#,CBNAME#,ReferencedDomainName#,RDN_SIZE#
Declare SID_NAME_USE#,CBNAME$
SID wird erstellt.
IF @UPPER$(Name$)="JEDER"
DIM SEC_ID#,12
ElseIF @UPPER$(Name$)="ADMINISTRATOREN"
DIM SEC_ID#,16
else
DIM SEC_ID#,12
@Messagebox("Falscher Parameter!","Fehler",16)
endif
DIM CBNAME_SIZE#,4
DIM CBNAME#,256
DIM ReferencedDomainName#,256
DIM RDN_SIZE#,4
DIM SID_NAME_USE#,4
Clear SYS$,SID_NAME_USE#,CBNAME#,ReferencedDomainName#,SEC_ID#
IF @UPPER$(Name$)="JEDER"
LONG SEC_ID#,0=257
LONG SEC_ID#,4=16777216
LONG SEC_ID#,8=0
elseIF @UPPER$(Name$)="ADMINISTRATOREN"
LONG SEC_ID#,0=513
LONG SEC_ID#,4=83886080
LONG SEC_ID#,8=32
LONG SEC_ID#,12=544
endif
LONG CBNAME_SIZE#,0=255
LONG RDN_SIZE#,0=255
LET Fehler&=@IsValidSid(SEC_ID#)
ADDSTRING "Fehlercode IsValidSid="+@STR$(FEHLER&)
ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
CASE FEHLER&=1 : LET FEHLER&=@LookupAccountSid(@ADDR(SYS$),SEC_ID#,CBNAME#,CBNAME_SIZE#,ReferencedDomainName#,RDN_SIZE#,SID_NAME_USE#)
ADDSTRING "Fehlercode LookupAccountSid="+@STR$(FEHLER&)
ADDSTRING "Letzter API Fehler="+@STR$(@GetLastError())
ADDSTRING @STRING$(CBNAME#,0)
LET CBNAME$=@STRING$(CBNAME#,0)
Dispose SID_NAME_USE#
Dispose RDN_SIZE#
Dispose ReferencedDomainName#
Dispose CBNAME#
DISPOSE SEC_ID#
DISPOSE CBNAME_SIZE#
Return CBNAME$
endproc
GET_Group_Name "Jeder"
PRINT @$(0)
@Editbox(&quo gaben", 1)
[keywords:b6ef792c9b] SID Security Identifier Nutzer Benutzer Domain ermitteln herausbekommen erfahren Gruppe Gruppen Groups [/keywords:b6ef792c9b] |
|
|
| |
|
|