使用Powershell根据操作员输入对用户文件夹进行权限

时间:2013-03-07 19:51:50

标签: string powershell input acl file-permissions

我是Powershell的新手,需要一些指导。 我需要创建一个脚本,使操作员能够根据操作符(字符串)输入创建远程用户文件夹。然后,脚本将获取该输入,创建文件夹,为其命名,然后根据输入对其进行许可。 到目前为止,我使用“创建”部分工作:

'Variables

$directory = Read-Host "Enter Path"

$username = Read-Host "Enter Username"

'Create and name directory

new-item -Path $directory -name $username -ItemType directory

使用上面的脚本,询问操作员应在何处创建文件夹,以及文件夹名称应该是什么。在我们的示例中,文件夹名称与用户名称(AD帐户名称)相同。正如我所说,这是有效的。该文件夹已创建,并且正在继承权限。 我现在需要找到一种方法来同时根据操作员对用户名称(AD帐户)的输入来限制该文件夹,并在保留继承的同时为该用户提供父/子文件夹的完全控制权。

我假设脚本需要针对AD检查NAME,以便确保NAME是有效的AD帐户..?正如我所说,我是Powershell的新手。 :)

这甚至可能吗? 谢谢!

3 个答案:

答案 0 :(得分:2)

看起来像你需要的PowerShell - Editing permissions on a file or folder

尝试阅读get-help Get-Acl -fullSet-Acl命令行开关

答案 1 :(得分:0)

你“不需要”检查AD,但这是一个好主意。

我个人更喜欢QAD cmdlet。下载PowerGUI时可以获得它们,但不需要Powergui。

要设置用户,您只需执行以下操作:

$User = Read-Host -input "enter user to grant access"
if(get-qaduser $user) {set-Acl $Path $ACLs}
else{write-host "Cannot find user"}

答案 2 :(得分:0)

PowerShell ACL有点过于复杂。我建议使用icacls命令来设置acl:

PS C:\> icacls /?

对于针对AD检查用户,您需要查询AD。这种方式很麻烦,但您不需要安装任何“http://technet.microsoft.com/en-us/library/ff730967.aspx

这种方式很简单,但您需要安装远程管理工具PowerShell AD模块。

(Get-ADuser -Filter {Name -eq $username}).count -ne 0