Scénario pour la conversion GUID dans une chaîne B. Active Directory
J'essaie de comprendre le scénario suivant VB, qui convertit GUID Dans la chaîne de l'Active Directory:
http://support.microsoft.com/d ... 25649
Cet article montre comment convertir la forme hexadécimale de l'identifiant. GUID L'objet dans la forme de la chaîne:
Insérez le code suivant dans le fichier .vbs.
J'ai une question:
Quel est le résultat de ce script?
Vous devez avoir un compte de domaine pour exécuter la commande
?
http://support.microsoft.com/d ... 25649
Cet article montre comment convertir la forme hexadécimale de l'identifiant. GUID L'objet dans la forme de la chaîne:
Insérez le code suivant dans le fichier .vbs.
'================================================================
'Set the next line to reflect a DN for an object in the directory
'================================================================
Set obj = GetObject("LDAP://CN=Username,CN=Users,DC=DOMAIN,DC=COM")
MsgBox "The GUID string Value for user " & obj.Get("DisplayName") & _
" is " & ConvertHexStringGUIDToStringGUID(obj.GUID)
'================================================================
' ConvertHexStringGUIDToStringGUID function
'================================================================
Function ConvertHexStringGUIDToStringGUID(strOctet)
Dim tmpGUID, GUIDStr
'Convert the string by flipping the bits around.
GUIDStr = Mid(strOctet, 7, 2)
GUIDStr = GUIDStr + Mid(strOctet, 5, 2)
GUIDStr = GUIDStr + Mid(strOctet, 3, 2)
GUIDStr = GUIDStr + Mid(strOctet, 1, 2)
GUIDStr = GUIDStr + Mid(strOctet, 11, 2)
GUIDStr = GUIDStr + Mid(strOctet, 9, 2)
GUIDStr = GUIDStr + Mid(strOctet, 15, 2)
GUIDStr = GUIDStr + Mid(strOctet, 13, 2)
GUIDStr = GUIDStr + Mid(strOctet, 17, Len(strOctet))
tmpGUID = "{" & Mid(GUIDStr, 1, 8) & "-" & Mid(GUIDStr, 9, 4) & _
"-" & Mid(GUIDStr, 13, 4) & "-" & Mid(GUIDStr, 17, 4) & _
"-" & Mid(GUIDStr, 21, 15) & "}"
ConvertHexStringGUIDToStringGUID = tmpGUID
End Function
J'ai une question:
Quel est le résultat de ce script?
Vous devez avoir un compte de domaine pour exécuter la commande
Set obj = GetObject("LDAP://CN=Username,CN=Users,DC=DOMAIN,DC=COM")
?
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Christine
Confirmation de:
Ne réussira pas.
Quant à votre première question:
La propriété renvoie la chaîne de valeurs hexadécimales ordonnées conformément à
http://msdn.microsoft.com/en-u ... .aspx
. Depuis la première 4 Les octets sont stockés comme DWORD, Derrière lequel suivre 2 WORD, tu devrais prendre
http://en.wikipedia.org/wiki/Endianness
Dans le compte. Voitures Intel stockée WORD et DWORD directement octet (
http://en.wikipedia.org/wiki/L ... _byte
first), Donc, vous devez d'abord changer l'ordre des octets 4 octets. Le reste de la structure de données est une gamme d'octets, de sorte que ces octets sont déjà dans le bon ordre.
Exemple:
Supposons que vous ayez une telle ligne hexadécimale:
Vous l'auriez brisé comme ceci:
En raison du codage de vélo, vous devez modifier l'ordre du premier. 4 octet (Chaque hexadécimal à 2 chiffres représente 1 octet):
C'est ce que cette partie du code fait (mes commentaires):
Le reste de la chaîne est une gamme d'octets, de sorte que ces octets sont utilisés dans l'ordre suivant:
Les instructions suivantes forment une ligne hexadécimale dans une chaîne GUID, Numéros de regroupement appropriés (8-4-4-4-12):
Le résultat est la ligne suivante:
Voir également
http://blogs.msdn.com/b/ericli ... .aspx
D'Eric Lippert pour une explication plus détaillée.