Copie des autorisations de sécurité de fichier
Question
Je copie un fichier du dossier A dans le dossier B, puis je tente de copier les autorisations de fichier. Voici les étapes de base que j'utilise:
- CopyFile (source, cible)
- GetNamedSecurityInfo (source, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- Imprimer la source SD en utilisant ConvertSecurityDescriptorToStringSecurityDescriptor
- SetNamedSecurityInfo (cible, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- GetNamedSecurityInfo (cible, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
- Imprimer la mémoire cible en utilisant ConvertSecurityDescriptorToStringSecurityDescriptor
Au n ° 3, je reçois ce SD:
G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;FA;;;S-1-5-21-1454471165-1482476501-839522115-1004)
Au numéro 6, je reçois
G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)
L'appel à SetNamedSecurityInfo renvoie ERROR_SUCCESS, mais les résultats correspondent au fichier source et le fichier cible ne contient pas les mêmes SD. Pourquoi donc? Qu'est-ce que je fais mal ici?
La solution
SHFileOperation
peut copier des fichiers avec leurs attributs de sécurité, mais à partir de votre autre question Je vois que vous craignez que cela ne fonctionne pas dans un service. Peut-être que les discussions de groupe de discussion suivantes vous fourniront des informations utiles:
Autres conseils
Robocopy à partir du kit d’outils serveur http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Copiera tous les settigs et les ACL NTFS, il est également plus robuste et plus fiable que copier / xcopy