使用icacls设置文件夹权限

时间:2018-05-16 12:34:34

标签: powershell permissions icacls

我很尴尬,我不得不问这个问题,但由于icacls的语法显然已经在powershell中发生了变化,我似乎无法组装一个有效的命令。

我要做的是:

我想从特定文件夹中删除所有权限,然后添加"当前登录用户"和" SYSTEM"完全控制。但不是管理员或其他任何东西。

我有什么:

icacls $MyFolder /inheritance:r /grant: $Domain\Env:Username:(OI)(CI)F /T /grant: SYSTEM:(OI)(CI)F /T

但每当我执行命令时,我都会收到错误

  

(OI)(CI)/ T尚未被识别为cmdlet或命令...

我已经在互联网上阅读了一些技巧,使用不同类型的引号或参数反引号,但没有任何方法可以帮助我。

任何人都可以告诉我这里的错误吗?

1 个答案:

答案 0 :(得分:3)

正如您所暗示的那样,问题不在于PowerShell中的语法icalcs已发生更改,而是在执行带参数的外部命令(可执行文件)时,PowerShell可能会出现奇怪的行为。

有几种方法可以处理参数,其中一种方法是将它们作为字符串数组传递:

$IcalcArgs = @(
    $MyFolder,
    '/inheritance:r',
    "/grant:$Domain\$($Env:Username):(OI)(CI)F",
    "/T",
    '/grant:SYSTEM:(OI)(CI)F',
    '/T'
)

& icalcs @IcalcArgs