使用 powershell 中的文本文件中的规则使用 icacls 设置权限

Set permissions with icacls with rules from a textfile in powershell

我正在尝试在 Powershell 中使用 Icacls 来设置本地权限。我有一个文本文件,我从中获得了权限。我是这样做的,因为我想更改很多文件夹的权限,我不想每次都更改脚本。

文本文件看起来像这样(使用了德语名称):

/grant:r SYSTEM:(OI)(CI)(F) /grant:r Administratoren:(OI)(CI)(F) /grant:r mydomain\Domänen-Admins:(OI)(CI)(F) /inheritance:r
/grant:r mydomain\user1:(OI)(CI)(R) /grant:r myodomain\user2:(OI)(CI)(C)   
/grant:r mydomain\user2:(OI)(CI)(F) /deny mydomain\user2:(DE)

我的代码如下所示:

$AccessLine=cat .\Lines.txt
$ica=$AccessLine[0..2]
icacls.exe $path "ica"     #$path is the path of folder which should be modified

总是说给出的参数无效。我无法按照 icacls $path 编写 /grant:r 部分,因为我还需要设置 /deny 权限。我想只用一个命令设置所有权限。这可能吗?

您有 3 组命令需要 运行。 $ica=$AccessLine[0] 行有效,因为您只调用其中一行。您正在请求一个循环,以便可以处理每一行。

$AccessLines = cat .\Lines.txt
$AccessLines | ForEach-Object{& icacls.exe $path $_} 

FWIW catGet-Content 的别名,returns 文件作为行数组。