0

我正在尝试在 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 权限。我想只用一个命令设置所有权限。这可能吗?

4

1 回答 1

0

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

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

FWIWcat是一个别名,Get-Content它以行数组的形式返回文件。

于 2015-09-11T12:31:10.913 回答