Exécuter icacls dans Powershell pour accorder l'accès à un partage de fichiers pour le domaine de l'ordinateur
je me demande comment utilise icacls à l'intérieur d'un script powershell pour configurer les autorisations sur un partage de fichiers pour un compteordinateur de Domaine\monserveur$
C'est ce que j'essaie:
$ComputerAccount = "domain\myServer$"
$Folder = "\\TestServer\TestShare\folder1"
$rule = $ComputerAccount+':(M),(OI),(CI)'
$resICacls = invoke-expression "icacls $folder /grant $rule"
I got this error message:
invoke-expression : At line:1 char:83
+ ... ant Domain\myServer$:(M),(OI),(CI)
+ ~~
Variable reference is not valid. '$' was not followed by a valid variable name character. Consider using ${} to delimit the name.
At c:\Binary\testacl.ps1:12 char:26
+ $resICacls = invoke-expression "icacls $folder /grant $rule"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : InvalidVariableReference,Microsoft.PowerShell.Commands.InvokeExpressionCommand
J'ai essayé différentes variantes d'échapper à l' $ mais pas trouvé de solution.
Quelqu'un a une astuce comment faire?
Merci!
OriginalL'auteur Ulrich Trentowski | 2014-10-30
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser l'opérateur d'appel (
&
) oucmd /c
au lieu deInvoke-Expression
:ou de l'utilisation
Get-Acl
/Set-Acl
de modification des autorisations:OriginalL'auteur Ansgar Wiechers
Expression De Invoke -Command:
icacls foldername /grant groupName:"(CI)(OI)M"
Cela fonctionne bien. Donc je suppose que si vous le mettez à la commande dans le guillemet simple (c'est à dire
''
), cela fonctionnera. Par exemple:OriginalL'auteur Maciej