我很尴尬,我不得不问这个问题,但由于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或命令...
我已经在互联网上阅读了一些技巧,使用不同类型的引号或参数反引号,但没有任何方法可以帮助我。
任何人都可以告诉我这里的错误吗?
答案 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