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

2024-06-25

我正在做一个 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
    }
}

The home folder gets created OK, but when I check the permissions for the user, no box is ticked. 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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 用于进程间共享内存的非 Boost STL 分配器?

    由于我工作地点的政策 我无法使用高于 1 33 1 的 Boost 版本 也无法使用高于 4 1 2 的 GCC 版本 是的 它是垃圾 但我对此无能为力 Boost 1 33 1 不包含进程间库 也就是说 我的一个项目需要放置一个std m
  • php 中每个数据库扩展的字符串如何转义?

    在任何人对这个问题的性质做出结论之前 我已经知道了参数化 准备好的语句 http en wikipedia org wiki Prepared statements Parameterized statements并尽可能使用它们 不幸的是
  • 矩形位于另一个矩形内

    是否可以像图片上那样从 xml 创建可绘制对象 第一个矩形包含第二个矩形 如果是 请向我解释一下如何做 如果你想要简单的矩形 你可以使用图层列表 http developer android com guide topics resourc
  • 使用 karma 生成指针向量的输出

    我在使用 karma 为 boost shared ptrs 向量中保存的结构生成输出时遇到一些麻烦 我有一个使用无法编译的整数的小测试用例 我在想我可以使用 deref iterator 自定义点来处理这种情况 或者开箱即用的精神可能会注
  • 具有变化比例的 gganimate(轴限制)

    我想使用创建一个 gifgganimate 但我的轴范围在一帧中变化很大 这导致所有后续帧都被挤压 In ggplot2的方面 有一个选择scales free 有没有办法让每一帧都有自由比例gganimate 这是一个例子 library
  • React 将图像 src 作为对象返回

    我有一个这样定义的变量 const team name Foo bio FooBar image foo name Bar bio FooBar image bar 图像导入的位置如下 import foo from assets foo
  • BlackBerry Curve 8520 中的“隧道失败”异常

    手机型号 bb curve 8520 手机版本 4 6 1 314 运营商 印度航空公司 接入点 airtelgprs com 没有用户名和密码 我正在使用以下代码 String url http
  • React 本机应用程序中未找到类相对布局错误

    有没有人可以告诉我这个错误是在我将闪屏设置为我的反应本机应用程序后启动的 我的应用程序在添加启动屏幕之前正在运行 我认为布局文件夹中的 launch screen xml 文件有问题 打开错误SS https i stack imgur c
  • 让 PHPmailer 成为 Gmail 的“更安全的应用程序”

    我们可以在 PHPmailer 中实施哪些安全措施 使其成为更安全的 Gmail 应用程序 https support google com accounts answer 6010255 https support google com
  • Laravel / Eloquent whereIn 为 null

    如何应用 Laravel 的 Eloquent whereIn 使其包含 null 我试过了 User whereIn column null 1 2 gt get And User whereIn column DB raw null 1
  • PHP 会话未保存在内存缓存中

    使用 Amazon Linux 在 AWS 上运行使用 php 5 4 的应用程序 PHP 版本是 PHP 5 4 28 从AWS存储库安装的memcache lib是php54 pecl memcache 3 0 8 1 11 amzn1
  • 如何解决此错误:Py4JJavaError:调用 o70.showString 时出错?

    目前我正在开发 PySpark 和 DataFrame 我创建了一个数据框 from pyspark sql import import pandas as pd spark SparkSession builder appName Dat
  • 不支持请求方法“POST”

    以下配置引发错误 请求方法 POST 不受支持 我已经读到 存储 api 不会请求使用 POST 方法的对象作为缓存中的键 但我不知道如何添加路由 该路由体现了这些请求的 networkOnly 策略 规格 设置取自https github
  • 如何在 Win 10 UWP 项目上查找本地 IP 地址

    我目前正在尝试将管理控制台应用程序移植到 Windows 10 UWP 应用程序 我在通过以下控制台代码使用 System Net Dns 时遇到问题 如何获取设备IP 这是我尝试移植的控制台应用程序代码 public static str
  • 如何在控制器中模拟 Automapper (IMapper)

    我正在尝试为现有的 MVC Web 应用程序编写单元测试 我在自动映射器中面临一些问题 IMapper 每当使用地图函数时它都会返回null value 我的控制器代码 public class UserAdministrationCont
  • Marshmallow 上的 getSerial() 方法

    我是 Java 和 android 新手 我基本上需要从我的设备检索硬件序列号 我尝试过以下方法 import android content import android os Build public static String rec
  • 为什么我的 FB 应用程序在 IE 中永远循环?

    我有一个 Facebook 应用程序 在 IE 中运行时会永远循环 在其他浏览器中它工作正常 我需要你的帮助来调试它 但在此之前我需要提及我是如何实现它的 FB 建议当用户尝试访问应用程序时 我们应该将用户重定向到应用程序授权页面 从那里
  • java为oracle VARCHAR2返回空字符串值

    我有以下代码 它似乎工作正常 但它不显示 personCode 字符串的任何值 PERSON CODE 是 Oracle 9i 数据库中的 VARCHAR2 我在我的项目中使用 Java SE 1 7 和 ojdbc7 jar 我是 Jav
  • 用数组值替换字符串中的模板

    我有一个字符串 可以有简单的模板 我有一个包含替换值的数组 目前我正在用循环来做 但我想把它改成preg replace 你能帮助我吗 Example values array id gt 120 name gt Jim string He
  • Powershell脚本为用户创建主文件夹并设置权限

    我正在做一个 powershell 脚本 它在 AD 中创建新的域用户帐户 并在文件服务器中创建具有相关权限的主目录 我的问题是我无法获得权限设置 在下面的代码中 my fileServer是文件服务器名称 sso 表示单点登录 id 在下