Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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中的二进制值从哈希表中提取值_Powershell_Binary_Hashtable_Operations - Fatal编程技术网

尝试根据Powershell中的二进制值从哈希表中提取值

尝试根据Powershell中的二进制值从哈希表中提取值,powershell,binary,hashtable,operations,Powershell,Binary,Hashtable,Operations,好的,我有一个有趣的问题,我正在工作。我们正在将我们的用户、应用程序和共享存储迁移到一个完全不同的系统;然而,PERM是由本地组和域级全局组组成的。问题是本地组无法直接迁移,所以我必须使用全局组所属的矩阵以及设备本地组的矩阵来更正这些权限。这很简单,我能做到 现在我遇到的问题是,用户可能通过本地组(比如读和写)获得权限,然后通过全局权限获得一组单独的权限(比如修改和读和执行)。因此,我的解决方案是建立一个分配给二进制值(即1=读取,2=写入,4=读取和执行)的权限列表,然后给我一个值,我可以使用

好的,我有一个有趣的问题,我正在工作。我们正在将我们的用户、应用程序和共享存储迁移到一个完全不同的系统;然而,PERM是由本地组和域级全局组组成的。问题是本地组无法直接迁移,所以我必须使用全局组所属的矩阵以及设备本地组的矩阵来更正这些权限。这很简单,我能做到

现在我遇到的问题是,用户可能通过本地组(比如读和写)获得权限,然后通过全局权限获得一组单独的权限(比如修改和读和执行)。因此,我的解决方案是建立一个分配给二进制值(即1=读取,2=写入,4=读取和执行)的权限列表,然后给我一个值,我可以使用该值执行二进制或操作,以确保他们从组中获得所有应有的权限

现在我的问题是,一旦我有了OR二进制值,我怎么能对现有列表使用它来提取要在set acl调用中分配的个人权限?非常感谢您的任何想法和建议。

鉴于哈希表:

$permissions = @{read=1;write=2;readAndExecute=4}
以及二进制或运算的值:

$oredBinary = 7 # All permissions
您可以这样检查:

$permissions.GetEnumerator() | Where-Object { ($_.Value -band $oredBinary) -ne 0} | Select @{n='Permissions';e={$_.Name}}

您需要将多少个位合并到一起?