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