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:

  1. CopyFile (source, cible)
  2. GetNamedSecurityInfo (source, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. Imprimer la source SD en utilisant ConvertSecurityDescriptorToStringSecurityDescriptor
  4. SetNamedSecurityInfo (cible, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo (cible, GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. 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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top