如何在PowerShell中输出两个不同的哈希表

如何在PowerShell中输出两个不同的哈希表,powershell,hashtable,Powershell,Hashtable,我正在尝试使用第一个函数获取目录上的所有权限,并使用第二个函数获取继承中断的文件夹。然后我想使用第三个函数输出这两个结果,但是我只得到第一个结果“permission”,而没有第二个 function Get-Permissions3($folder) { $Paths = Get-ChildItem $folder -Recurse foreach ($p in $Paths) { $Permissions = (Get-Acl $p.FullName).Ac

我正在尝试使用第一个函数获取目录上的所有权限,并使用第二个函数获取继承中断的文件夹。然后我想使用第三个函数输出这两个结果,但是我只得到第一个结果“permission”,而没有第二个

function Get-Permissions3($folder) {
    $Paths = Get-ChildItem $folder -Recurse 
    foreach ($p in $Paths) {
        $Permissions = (Get-Acl $p.FullName).Access
        $Permissiontable = $Permissions |
                           Select-Object @{name="FullName";expression={$p.FullName}},
                               @{name="IdentityReference";expression={$_.IdentityReference}},
                               @{name="FileSystemRights";expression={$_.FileSystemRights}},
                               @{name="IsInherited";expression={$_.IsInherited}}
        $Permissiontable
    }
} 

function Get-BrokenInheritance($Directory) {
    $D = Get-ChildItem $Directory -Directory -Recurse |
         Get-Acl |
         where {$_.Access.IsInherited -eq $false}
    $BrokenInheritance = $D | Select-Object @{name="Without Inheritance";expression={$_.Path}}
    $BrokenInheritance
}

function Get-FolderAnalysis($Path) {
    Write-Output "Output Permissions"
    Get-Permissions3($Path)

    Write-Output "Output Broken Inheritance"
    Get-BrokenInheritance($Path)
}

在第三个函数中,即
Get FolderAnalysis
,实际上并没有将前两个函数的结果进行组合。您在单独的行中调用它们,仅此而已。因此,您无法同时看到两种输出。通过使用
计算属性
可以克服这一问题,如下所示-

Function Get-FolderAnalysis($Path)
{  
    Write-Output "Output Permissions"
    $Permissions = Get-Permissions3($Path)

    Write-Output "Output Broken Inheritance"
    $BrokenInheritance = Get-BrokenInheritance($Path)

    $Permissions | Select-Object *, @{ name="Output Broken Inheritance"; expression={Get-BrokenInheritance($Path)}}
}

但我只需要已禁用的文件夹的名称Inheritance@Morenkashi如果您只想知道继承中断的文件夹的名称,请执行以下操作:ls-path c:\temp-Recurse | Get Acl |%{$|{$|其中{$| access.isinherited-eq$false}这对我有效是它的工作,但我想将其导出到CSV文件