尝试创建powershell脚本以执行以下任务: - 要求在创建文件夹和分配权限时使用用户名 - 使用该用户名创建NAS上的文件夹 - 创建具有相同名称的DFS文件夹并为其分配目标路径 - 为用户分配对该DFS文件夹的显式权限
我的脚本如下所示:
$Username = read-host "Type Username"
#Create new folder on the NAS and set necessary permissions
New-Item -Path \\NAS\USER_SHARE\$Username -ItemType Directory
#Create new DFS folder and target
New-DfsnFolder -Path "\\DOMAIN.local\user\$Username" -TargetPath "\\NAS\USER_SHARE\$Username"
#Assign explicit permissions to DFS folder for user
dfsutil property SD grant \\DOMAIN.local\user\$Username DOMAIN\$Username:F protect
它执行除最后一行之外的所有操作。它创建DFS文件夹但不提供权限。没有给出错误消息,只打印出dfsutil命令的帮助信息。当我使用静态用户名独立运行最后一行时,它是成功的。所以我相信$ Username的语法有一些东西:最后一行代码的F部分弄乱了它。
如何将最后一部分分开才能使其发挥作用?
答案 0 :(得分:1)
尝试调用运算符:&
。此外,对$Username
的变量调用将导致冒号问题,因此您希望在变量名称周围使用{}
。
$Params = @('property','SD','grant',
"\\DOMAIN.local\user\$Username",
"DOMAIN\${Username}:F",
'protect')
& dfsutil @Params