opsi1985
Messages postés15Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention29 septembre 2007
-
27 févr. 2007 à 18:10
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
28 févr. 2007 à 13:37
Bonjour,
J'espere que je suis dans le bon theme ....
j'utilise cet objet(j'espere que c'est le nom correct
) pour récupérer le propriétaire du fichier passé en parametre de cette
maniere. J'initialise donc Win32_LogicalFileSecuritySetting de la
manière suivante :
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
Set objFileSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" & path_du_fichier & "'")
<!-- END TEMPLATE: bbcode_code -->
Tout fonctionne sauf lorsque j'utilise un nom de fichier contenant le
caractère ' (apostrophe)... J'obtiens alors une erreur et mon script
s'arrète
Je pense également que l'erreur arrive avec d'autres caractère à la c...
comment puis je pallier l'erreur ? parser le path du fichier pour
remplacer ce type de caractères ? fonction magique qui va bien ?
opsi1985
Messages postés15Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention29 septembre 2007 28 févr. 2007 à 13:25
Bon, je ne sais pas quelles modifications a permis d'éviter l'erreur donc je préfere vous donnez la fonction en entier et qui semble fonctionner avec tous les noms de fichiers :
'***************FONCTION DE RECUPERATION DU PROPRIETAIRE DU FICHIER**************
Function getOwner(strFile)
'on error resume next
Dim objWMIService
Dim objSD
Dim intRetVal
Dim objFileSecuritySettings
Set objWMIService = GetObject("winmgmts:")
Set objFileSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" & strFile &"'")
intRetVal = objFileSecuritySettings.GetSecurityDescriptor(objSD)
If intRetVal = 0 Then
Else
wScript.Echo "Impossible de récupérer le descripteur de sécurité."
End If
getOwner = objSD.Owner.Name
End Function
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 27 févr. 2007 à 18:22
Puisque ton nom de fichier contient une apostrophe, essaye de l'encadrer avec des "
Et pour mettre des " dans une chaine de caractères, il faut les doubler
Donc essaye avec ceci :
Set objFileSecuritySettings objWMIService.Get( " Win32_LogicalFileSecuritySetting""" & path_du_fichier & """")
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 27 févr. 2007 à 20:31
Bonsoir,
Une autre solution serait d'utiliser le nom dos du fichier.
filespec = "D:\Mes_scripts_VBFrance\Test\Copie ' de mail_dest ' ' inataires.txt"
msgbox ShowShortName(filespec)
Function ShowShortName(filespec)
Dim fso, f, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(filespec)
s = "Le nom abrégé de " & UCase(f.Name) & "
"
s = s & "est : " & f.ShortName
ShowShortName = s
End Function