Ulr*_*ski 5 permissions powershell share icacls
我想知道如何icacls在PowerShell脚本中用于为计算机帐户(例如Domain \ myServer $)设置文件共享的权限。
这是我正在尝试的:
$ComputerAccount = "domain\myServer$"
$Folder = "\\TestServer\TestShare\folder1"
$rule = $ComputerAccount+':(M),(OI),(CI)'
$resICacls = Invoke-Expression "icacls $folder /grant $rule"
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
调用表达式:在线:1字符:83
+ ... ant Domain \ myServer $ :( M),(OI),(CI)
+ ~~
变量引用无效。'$'后面没有有效的变量名
字符。考虑使用$ {}来分隔名称。
在c:\ Binary \ testacl.ps1:12 char:26
+ $ resICacls =调用表达式“ icacls $ folder / grant $ rule”
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo:ParserError:(:) [Invoke-Expression],ParseException
+ FullyQualifiedErrorId:InvalidVariableReference,Microsoft.PowerShell.Commands.InvokeExpressionCommand
我尝试了转义的不同变体,$但没有找到解决方案。任何人都有提示如何执行此操作?
尝试使用呼叫运算符(&)或cmd /c代替Invoke-Expression:
& icacls $folder /grant $rule
Run Code Online (Sandbox Code Playgroud)
cmd /c icacls $folder /grant $rule
Run Code Online (Sandbox Code Playgroud)
或使用Get-Acl/ Set-Acl更改权限:
$permissions = 'Modify'
$inheritance = 'ContainerInherit, ObjectInherit'
$acl = Get-Acl -Path $folder
$ace = New-Object Security.AccessControl.FileSystemAccessRule ($ComputerAccount, $permissions, $inheritance, 'InheritOnly', 'Allow')
$acl.AddAccessRule($ace)
Set-Acl -AclObject $acl -Path $folder
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14487 次 |
| 最近记录: |