我一直在考虑为我们的用户创建 Home Drives。我们最近收到了来自高级管理层的请求,要求将这些文件夹的访问权限锁定在一个系统管理员组和每个用户的个人文件夹中。
我们将这些文件夹的创建委托给我们的帮助台,但不希望他们在创建后有权访问这些文件夹。
我编写了一个 PowerShell 脚本,它创建文件夹并根据一些用户输入设置 ACL,但我无法找到一种方法让它为对目录具有有限权限的用户正确运行。如果我用我的帐户运行它,它会完全按照我的需要运行。
Set-Variable name -value (Read-Host -Prompt "Please Enter the username")
Set-Variable location -Value (Read-Host -Prompt "Please Enter the location of the user")
if ($location -eq "loc1") {Set-Variable homepath "\\server1\folder"}
elseif ($location -eq "loc2") {Set-Variable homepath "\\server2\folder"}
elseif ($location -eq "loc3") {Set-Variable homepath "\\server3\folder"}
elseif ($location -eq "loc4") {Set-Variable homepath "\\server4\folder"}
elseif ($location -eq "loc5") {Set-Variable homepath "\\server5\folder"}
#Fills variable used to set ACL on the folder.
Set-Variable domainuser -value "Domain\$name"
$newfolder = new-item -ItemType Directory -path $homepath -Name $name
$Rights = [System.Security.AccessControl.FileSystemRights]"FullControl,Modify,ReadAndExecute,ListDirectory,Read,Write"
$InheritanceFlag = @([System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit)
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType =[System.Security.AccessControl.AccessControlType]::Allow
$objUser = New-Object System.Security.Principal.NTAccount "$domainuser"
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule `
($objUser, $Rights, $InheritanceFlag, $PropagationFlag, $objType)
$ACL = Get-Acl -Path $NewFolder
$ACL.AddAccessRule($objACE)
Set-ACL -Path $NewFolder.FullName -AclObject $ACL
我知道这不是一个脚本问题/问题,而是一个环境/执行类型的事情,但我愿意接受任何关于如何最好地实现我需要的建议。如果需要的话,我不会反对存储服务帐户凭据,但我已经尝试过了,但成功有限。
一如既往,任何帮助表示赞赏!