powershell - 创建 NTFS 报告并显示用户帐户是启用还是禁用
问题描述
我的任务是更新由其他人创建的脚本,但我遇到了困难。该脚本用于收集特定文件夹的 NTFS 权限。该脚本当前输出文件夹名称、有权访问该文件夹的组/用户及其权限。我想添加一列显示帐户是启用还是禁用。对于我的一生,我无法弄清楚如何将用户帐户启用或禁用添加到对象中。这是我目前正在使用的代码。我尝试进行一些修改以填充 Enabled 列,但没有成功。对powershell来说相当新,所以希望这是有道理的!
谢谢
$FoldersToCheck = "P:\Companies\"
import-module activedirectory
Function ReportNTFS($p) {
$temp = Get-ChildItem -Directory -Name -Path $p -Force -Depth 0
$fullPath += ,$p
ForEach ($x in $temp) {
$fullPath += ,($p + $x)
}
$Output = @()
$Properties = [ordered]@{'Folder Name'="Starting Folder: "+$p;'Group/User'='';'Enabled'='';'Permissions'=''}
$Output += New-Object -TypeName PSObject -Property $Properties
$Properties = [ordered]@{'Folder Name'='';'Group/User'='';'Enabled='='';'Permissions'=''}
$Output += New-Object -TypeName PSObject -Property $Properties
ForEach ($global:Folder in $fullPath) {
$a,$b = $global:Folder -split $p,2,"simplematch"
#Write-Host "path: " $b
$Acl = Get-Acl -Path $global:Folder
ForEach ($Access in $Acl.Access) {
$Properties = [ordered]@{'Folder Name'=".\"+$b;'Group/User'=$Access.IdentityReference;'Permissions'=$Access.FileSystemRights}
$Output += New-Object -TypeName PSObject -Property $Properties
$thisShortID = $Access.IdentityReference -split "QUANTA\\"
$groupList = $null
try { $groupList = Get-ADGroupMember -Identity $thisShortID[1] | select name }
catch { <# not a group #> }
finally {
#Write-Host "*is group "
ForEach ($u in $groupList) {
$Properties = [ordered]@{'Folder Name'=".\"+$b;'Group/User'=' --> '+$u.name;'Permissions'=$Access.FileSystemRights}
$Output += New-Object -TypeName PSObject -Property $Properties
}
}
try{
$global:Enabled = Get-ADGroupMember -Identity $thisShortID[1] | where {$_.objectclass -eq 'user'} | get-aduser | select name
foreach ($user in $global:enabled) { Get-ADUser -Identity $user | select Enabled }
}
catch{}
finally{
ForEach ($e in $global:enabled) {
$Properties = [ordered]@{'Folder Name'=".\"+$b;'Group/User'=' --> '+$u.name;'Enabled'=$e;'Permissions'=$Access.FileSystemRights}
$Output += New-Object -TypeName PSObject -Property $Properties
}
}
}
$Properties = [ordered]@{'Folder Name'='';'Group/User'='';'Enabled'='';'Permissions'=''}
$Output += New-Object -TypeName PSObject -Property $Properties
}
return ,$Output
}
ForEach ($f in $FoldersToCheck) {
$reportArray = ReportNTFS($f)
}
$reportArray
}
解决方案
推荐阅读
- logic - 您可以使用多大的 ROM 来为带有 Cin 和 Cout 的 16 位加法器/减法器编程?
- django - 如何在 Django 中的所有页面上使用视图功能?
- javascript - 有没有一种方法可以在 django 的文本中创建文本字段和颜色词?
- javascript - 如何从数据中仅获取访问令牌
- javascript - 获取选定选项并返回的问题
- mysql - SQL将JSON插入表列
- javascript - 如何使用分析报告获取 Google Analytics 的页面特定数据?
- python - 以有效的方式展开 python 字典
- java - 从 DeckHand 中删除卡片
- python - 超市数据类