powershell - 如果用户属于这个组,显示这个,如果不是,显示这个
问题描述
我是 powershell 的新手,开始学习语法和需要什么逻辑,但我已经很好地尝试了。
我需要弹出一个执行以下操作的条件字段
如果用户是“域管理员”组的成员,则显示“管理员”
如果用户是“ReadOnlyAccess”组的成员,则显示“Read Only”
但是我的脚本并没有完全做到这一点,我徘徊在如何更改我的脚本以获得我需要它做的事情。
这是我下面的脚本:
Import-Module ActiveDirectory
$OUPath = "OU=1_Users,DC=DGDomain,DC=Local"
$filepath = "C:\temp\users.csv"
$readonlygroup = "ReadOnlyAccess"
$readonlygroupmembers = Get-ADGroupMember -Identity $readonlygroup | Get-ADUser -Properties SamAccountName | Select SamAccountName
$admingroup = "Domain Admins"
$admingroupmembers = Get-ADGroupMember -Identity $admingroup | Get-ADUser -Properties SamAccountName | Select SamAccountName
$users = Get-ADUser -Filter * -Properties * -SearchBase $OUPath |
Where-Object { $_.Enabled -eq $true } |
Select SamAccountName
Get-ADUser -Filter * -Properties * -SearchBase $OUPath |
Where-Object { $_.Enabled -eq $true } |
Select SamAccountName,
DisplayName,
@{Label = "Access Level"
Expression = {
foreach ($user in $users) {
if ($readonlygroupmembers -contains $users)
{ "Read Only" }
else {
if ($admingroupmembers -contains $users)
{ "Administrator" }
else
{ "None" }
}
} } } |
Export-csv $filepath -NoTypeInformation
解决方案
这应该可以解决问题:
$OUPath = "OU=1_Users,DC=DGDomain,DC=Local"
$filepath = "C:\temp\users.csv"
$readonlygroup = "ReadOnlyAccess"
$readonlygroupmembers = (Get-ADGroupMember -Identity $readonlygroup | Get-ADUser -Properties SamAccountName).SamAccountName
$admingroup = "Domain Admins"
$admingroupmembers = (Get-ADGroupMember -Identity $admingroup | Get-ADUser -Properties SamAccountName).SamAccountName
$users = Get-ADUser -Filter { Enabled -eq $true } -SearchBase $OUPath -Properties DisplayName
foreach ($user in $users) {
if ($user.SamAccountName -in $admingroupmembers) { $groupMembership = 'DomainAdmin'}
elseif ($user.SamAccountName -in $readonlygroupmembers) { $groupMembership = 'ReadOnly' }
else {$groupMembership = 'None'}
[PSCustomObject]@{
DisplayName = $user.DisplayName
SamAccountName = $user.SamAccountName
AccessLevel = $groupMembership
}
}
Export-csv $filepath -NoTypeInformation
推荐阅读
- flutter - Flutter/Dart:将字符串拆分为所有可能的组合
- bash - Bash 批量创建文件
- r - 函数返回多少次名称在 R 中被准确地告知 n
- java - 在执行文件操作时在 java 应用程序中打开太多文件描述符
- excel - 识别所有已被条件格式化的单元格
- antlr4 - 将 ANTLR 解析树转换为字符串,然后将其还原
- php - 如何将另一种语言日期格式转换为英语语言格式 (Ymd)?
- windows - 如何在 Lua 中创建具有 Windows-1251 编码的文本文件?
- angular - 日期选择器和时间选择器验证
- java - 在android studio中查找下周四的日期