gpt4 book ai didi

Powershell 脚本为用户创建主文件夹并设置权限

转载 作者:行者123 更新时间:2023-12-04 00:45:43 25 4
gpt4 key购买 nike

我正在做一个 powershell 脚本,它在 AD 中创建新的域用户帐户,并在具有相关权限的文件服务器中创建主目录。

我的问题是我无法获得权限集。

在下面的代码中,my_fileServer 是文件服务器名称; sso 表示单点登录 id,在下面的测试代码中设置为“user9999”。

任何帮助是极大的赞赏!

Set-Variable homeDir -option Constant -value "\\my_fileServer\Users"
Set-Variable sso -option Constant -value "user9999"

# If the folder for the user does not exist, make a new one and set the correct permissions.
if ( (Test-Path "$homeDir\$sso") -eq $false)
{
try
{
$NewFolder = New-Item -Path $homeDir -Name $sso -ItemType "Directory"
$Rights = [System.Security.AccessControl.FileSystemRights]"FullControl,Modify,ReadAndExecute,ListDirectory,Read,Write"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType =[System.Security.AccessControl.AccessControlType]::Allow
$objUser = New-Object System.Security.Principal.NTAccount "my_full_domain_name\$sso"
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule `
($objUser, $Rights, $InheritanceFlag, $PropagationFlag, $objType)
$ACL = get-acl -Path $NewFolder
$ACL.AddAccessRule($objACE)
$objReturn = Set-ACL -Path "$homeDir\$sso" -AclObject $ACL
$objReturn
}
catch
{
$msg = $_
$msg
}
}

主文件夹创建正常,但是当我检查用户的权限时,没有勾选框。
enter image description here

最佳答案

问题是你的遗传。您不允许继承子文件夹和文件(他在其文件夹中拥有的项目)的权限。这就是为什么您在基本安全窗口中看不到权限(仅“特殊权限”)的原因。如果您打开“高级安全设置”,您将看到用户可以完全控制此文件夹,而不是内容。只要您为 CREATOR OWNER 添加权限(带继承)以便所有者可以访问项目,我认为您会没事的。但是,您现在可以像这样修复它:

$InheritanceFlag = @([System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit)

除非有特殊要求,你应该让用户完全访问他的文件夹(完全继承)。具有固定继承的完整解决方案(我还清理了您的 Set-ACL 路径并删除了不必要的返回对象):
try 
{
$NewFolder = New-Item -Path $homeDir -Name $sso -ItemType "Directory"
$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 "my_full_domain_name\$sso"
$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
}

关于Powershell 脚本为用户创建主文件夹并设置权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14893462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com