如何在PowerShell中输出两个不同的哈希表
我正在尝试使用第一个函数获取目录上的所有权限,并使用第二个函数获取继承中断的文件夹。然后我想使用第三个函数输出这两个结果,但是我只得到第一个结果“permission”,而没有第二个如何在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
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文件