Exporter (0) Imprimer
Développer tout

Annexe E : Contenu du fichier Add-TPMSelfWriteACE.vbs

S'applique à: Windows Server 2008,Windows Vista

Cette annexe traite du contenu du fichier Add-TPMSelfWriteACE.vbs qui peut être utilisé pour ajouter l’entrée de contrôle d’accès requise pour permettre à des clients nextref_vista de sauvegarder les informations de récupération du mot de passe du propriétaire du module de plateforme sécurisée dans Active Directory.

noteRemarques
Pour télécharger ce fichier, voir http://go.microsoft.com/fwlink/?LinkId=78953 (éventuellement en anglais).

Contenu du fichier

'==============================================================================
' 
' Ce script présente l’ajout d’une entrée de contrôle d’accès (ACE) 
' pour autoriser les ordinateurs à écrire les informations de récupération 
' du module de plateforme sécurisée (TPM) dans Active Directory. 
' 
' Ce script crée une ACE SELF sur un objet Domaine de premier niveau, et il part du 
' principe que l’héritage des listes de contrôles d’accès (ACL) à partir de 
' l’objet Domaine de premier niveau vers les objets Ordinateur de niveau inférieur est activé. 
' 
' Référence : "Utilisation de scripts pour gérer la sécurité Active Directory" 
' http://www.microsoft.com/technet/scriptcenter/topics/security/exrights.mspx 
' et documentation MSDN. 
' 
' Dernière mise à jour : Août 2006 ' Microsoft Corporation 
' 
' Clause d’exclusion de responsabilité 
' 
' Les exemples de scripts ne sont pas pris en charge dans le cadre des programmes ou 
' services de support Microsoft standard. Les exemples de scripts sont fournis « en l’état », 
' sans garantie d’aucune sorte. Microsoft exclut toute autre garantie implicite, notamment
' toute garantie implicite de qualité ou d’adéquation à un usage particulier. 
' Vous reconnaissez assumer tous les risques liés à l’exécution des exemples de scripts et 
' à l’utilisation de la documentation. En aucun cas la société Microsoft, ses auteurs ou toute
' personne impliquée dans la création, la production ou l’émission des scripts, ne pourront être 
' tenus pour responsables de tout autre dommage de quelque nature 
' que ce soit (y compris, mais de manière non limitative, toute perte de 
' bénéfices, interruption d’activité, perte d’informations commerciales 
' ou toute autre perte pécuniaire) résultant de l’utilisation ou de l’impossibilité d’utiliser 
' les exemples de scripts ou la documentation, même si la société 
' Microsoft a été prévenue de la possibilité de tels dommages. 
' 
'===============================================================================

' -------------------------------------------------------------------------------- 
' Constantes des entrées de contrôle d’accès (ACE) 
' --------------------------------------------------------------------------------

'- From the ADS_ACETYPE_ENUM enumeration 
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT      = &H5   'Allows an object to do something

'- From the ADS_ACEFLAG_ENUM enumeration 
Const ADS_ACEFLAG_INHERIT_ACE                = &H2   'ACE can be inherited to child objects
Const ADS_ACEFLAG_INHERIT_ONLY_ACE           = &H8   'ACE does NOT apply to target (parent) object

'- From the ADS_RIGHTS_ENUM enumeration 
Const ADS_RIGHT_DS_WRITE_PROP                = &H20  'The right to write object properties 
Const ADS_RIGHT_DS_CREATE_CHILD              = &H1   'The right to create child objects

'- From the ADS_FLAGTYPE_ENUM enumeration 
Const ADS_FLAG_OBJECT_TYPE_PRESENT           = &H1   'Target object type is present in the ACE 
Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2   'Target inherited object type is present in the ACE 

' -------------------------------------------------------------------------------- ' GUID des objets de schéma TPM et FVE ' --------------------------------------------------------------------------------

'- ms-TPM-OwnerInformation attribute 
SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}"

'- ms-FVE-RecoveryInformation object 
SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}"

'- Computer object 
SCHEMA_GUID_COMPUTER = "{BF967A86-0DE6-11D0-A285-00AA003049E2}"

'Reference: "Platform SDK: Active Directory Schema"


' -------------------------------------------------------------------------------- 
' Configuration de l’ACE pour autoriser l’écriture des informations 
' du propriétaire du module de plateforme sécurisée 
' --------------------------------------------------------------------------------

Set objAce1 = createObject("AccessControlEntry")

objAce1.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ADS_ACEFLAG_INHERIT_ONLY_ACE 
objAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT 
objAce1.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT + ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT

objAce1.Trustee = "SELF" objAce1.AccessMask = ADS_RIGHT_DS_WRITE_PROP 
objAce1.ObjectType = SCHEMA_GUID_MS_TPM_OWNERINFORMATION 
objAce1.InheritedObjectType = SCHEMA_GUID_COMPUTER


' -------------------------------------------------------------------------------- 
' NOTE: BY default, the "SELF" computer account can create 
' BitLocker recovery information objects and write BitLocker recovery properties 
' 
' No additional ACE's are needed.
' --------------------------------------------------------------------------------


' -------------------------------------------------------------------------------- 
' Connexion à une ACL discrétionnaire pour l’objet de domaine 
' --------------------------------------------------------------------------------

Set objRootLDAP = GetObject("LDAP://rootDSE") 
strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com

Set objDomain = GetObject(strPathToDomain)

WScript.Echo "Accessing object: " + objDomain.Get("distinguishedName")

Set objDescriptor = objDomain.Get("ntSecurityDescriptor") 
Set objDacl = objDescriptor.DiscretionaryAcl

 
' -------------------------------------------------------------------------------- 
' Ajout des ACE à l’ACL discrétionnaire et définition de l’ACL discrétionnaire 
' --------------------------------------------------------------------------------

objDacl.AddAce objAce1

objDescriptor.DiscretionaryAcl = objDacl 
objDomain.Put "ntSecurityDescriptor", Array(objDescriptor) 
objDomain.SetInfo

WScript.Echo "SUCCESS!"

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft