Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过powershell进行NTFS许可_Powershell_Permissions_Ntfs - Fatal编程技术网

通过powershell进行NTFS许可

通过powershell进行NTFS许可,powershell,permissions,ntfs,Powershell,Permissions,Ntfs,我尝试通过powershell为域本地组设置NTFS权限。 因此,我遵循本教程: 我修改了该代码以创建以下代码段: 函数集\u NTFS\u权限($group,$folder){ $rule=”“#只是为了确保它是空的 $user\u read=“gfo\”+$group+“\u read” #$read_permissions=@(“ReadAndExecute”,“Synchronize”) $read\u permissions=“ReadAndExecute,Synchronize”

我尝试通过powershell为域本地组设置NTFS权限。 因此,我遵循本教程:

我修改了该代码以创建以下代码段:

函数集\u NTFS\u权限($group,$folder){
$rule=”“#只是为了确保它是空的
$user\u read=“gfo\”+$group+“\u read”
#$read_permissions=@(“ReadAndExecute”,“Synchronize”)
$read\u permissions=“ReadAndExecute,Synchronize”
$user\u write=“gfo\”+$group+“\u edit”
$write\u permissions=“删除子目录和文件,写入、读取和执行,同步”
$acl=获取acl$文件夹#调用当前权限
$acl.SetAccessRuleProtection($True,$True)#保护继承权限(上级|下级)
$rule=New Object System.Security.AccessControl.FileSystemAccessRule($user\u read,$read\u permissions,'ContainerInherit,ObjectInherit','None','Allow'))
$acl.AddAccessRule($rule)
设置Acl$文件夹$Acl
$rule=New Object System.Security.AccessControl.FileSystemAccessRule($user\u write,$write\u permissions,'ContainerInherit,ObjectInherit','None','Allow'))
$acl.AddAccessRule($rule)
设置Acl$文件夹$Acl
}
$folder='\\domain.local\path\path\path'
$group='DL\u fs\u路径'
设置\u NTFS\u权限$group$文件夹
获取Acl$文件夹|格式列表
这个很好用

当我在另一个函数中使用该函数时,问题就开始了。 在那里,我创建了几个文件夹和组(可以使用),然后我想允许这些组访问这些文件夹。 为此,我使用一些变量调用上面的函数(这些变量被正确地传输…在将它们传递到函数之前写入宿主函数,然后在函数的开头再次写入宿主函数)

Ausnahme beim Aufrufen von“AddAccessRule”mit 1参数(en):“无法翻译某些或所有标识引用。”
在C:\Scripts\filestruct.ps1:20 Zeichen:5中
+$acl.AddAccessRule($rule)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~
+CategoryInfo:NotSpecified:(:)[],MethodInvocationException
+FullyQualifiedErrorId:IdentityNotMappedException

有人知道为什么在传递静态数据时它会起作用,而不是在传递变量时?

你从另一个函数传递给这个函数的是什么?组是ADGroup对象吗?字符串仅是组名的对象?正在传递的文件夹是字符串还是DirectoryInfo对象?Write Host有时会对属性做出一些假设,如果对象不是简单的字符串,其他东西就不会这样做。