所以我正在尝试学习PowerShell,我实际上并不知道如何为目录及其文件提供完全权限。搜索信息我发现icacls命令是提供权限的最有用的工具,我尝试过类似的东西,但它返回一个错误,说OI不是cmdlet。 我的脚本如下:
param(
[int]$nIteration,
[string]$directory
)
$n = 0
$name = "file"
while ($n -ne $nIteration)
{
New-Item -path . -name $name$n -itemtype "file" -value "This is a text string."
New-Item -ItemType directory -Name $directory$n
Move-Item -Path .\$name$n -Destination $directory$n
icacls --% ".\$directory$n" /grant media:(OI)F
$n = $n+1
}
感谢您的帮助!
注意:媒体是我的用户。
答案 0 :(得分:0)
PowerShell解析器认为()
是在调用icacls.exe
之前要评估的单独表达式。
使用stop-parsing运算符(--%
)将参数作为字符串处理:
icacls --% "C:\users\media\desktop\p1pow" /grant media:(OI)F
--%
运算符也会禁用字符串扩展,因此在参数之后使用包含变量和子表达式:
icacls ".\$directory$n" --% /grant media:(OI)F
有关详细信息,请参阅Get-Help about_Parsing