powershell - Get-ADPrincipalGroupMembership 在 Expression 中按我需要的方式工作
问题描述
我正在编写一个 PowerShell 脚本来提取用户信息的 AD 报告。报告的大部分工作都很好,但我在让组成员正常工作时遇到问题。
Get-ADPrincipalGroupMembership -identity | select name
它自己工作,只给我一个干净的权限列表,但是将信息传递到选择名称中并不能在我的表达式中工作。它什么也不返回。如何仅过滤每个组的名称,同时仍传递每个要处理的用户。
到目前为止,我尝试过的任何方法都无法返回格式化列表。我总是以太多数据或空列结束。我也尝试过在事后清理数据,但我无法让正则表达式做我想做的事情。下面列出了我的(非功能性)草稿。
#Clean up Group Membership data
$test = Import-Csv $csvfile
$test | ForEach-Object {
$_.Group_Membership = $_.Group_Membership.Replace('(?<=OU=").*?(?=/,)', ' ')
$_.Group_Membership = $_.Group_Membership.Replace('(?<=DC=").*?(?=/,)', ' ')
}
$test | Export-Csv $csvfile -NoType
$AllADUsers = Get-ADUser -Server $ADServer -SearchBase $SearchBase -Properties * -Filter *
$AllADUsers |
Select-Object @{Label="First Name";Expression={$_.GivenName}},
@{Label="Last Name";Expression={$_.Surname}},
@{Label="Display Name";Expression={$_.DisplayName}},
@{Label="Username";Expression={$_.SamAccountName}},
@{Label="Job Title";Expression={$_.Title}},
@{Label="Company";Expression={$_.Company}},
@{Label="Email";Expression={$_.Mail}},
@{Label="Account Status";Expression={if (($_.Enabled -eq 'TRUE')) {'Enabled'} else {'Disabled'}}},
@{Label="Last LogOn Date";Expression={$_.LastLogonDate}},
@{Label="Group_Membership";Expression={$_.SamAccountName | Get-ADPrincipalGroupMembership}} |
Export-Csv -Path $csvfile -NoTypeInformation
运行此脚本后,我想要一个 CSV 文件,其中列出了上述信息和安全组列表,但它现在的工作方式,我得到了一切,而且很乱。
解决方案
如建议here- link,您可以使用
Get-ADPrincipalGroupMembership -identity test | out-string -stream | sls -caseSensitive "name"
推荐阅读
- java - 除非静音,否则 Webview 视频 (iframe) 不会播放
- laravel - phpunit 测试 guzzle 响应为空对象
- vba - 使用循环查找值的组合框
- javascript - 如何在 JavaScript 中返回 1 2 3 4 5 ... 模式,但以下数字从新行开始?
- android-studio - 我的 android 工作室中的印度语言显示在空白处
- excel - 使用通配符按名称搜索形状
- html - 调整图像 HTML 大小
- c++ - RANSAC平面分割的结果取决于点云的大小?
- sql-server - 二维 git 存储库。开发/测试/实时以及数据库开发中的堆叠变化
- python - 有没有办法在python中返回一个目录?