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é

Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft