【发布时间】:2022-01-11 14:49:47
【问题描述】:
我有一个逻辑问题,如何使脚本对非阻止用户访问 IT 组更安全一些操作用户需要阻止他们的员工访问 AD。我非常接近自动化这个过程,通过与用户名、DateDisable、DateEnable 共享给他们 CSV 文件。
Get-Date
Write-Host $b
$b = (Get-Date).ToString('M"/"d"/"yyyy')
Import-Csv "I:\Clients\Block Accounts\Accounts Deactivation.csv" | ForEach-Object {
$SamAccountName = $_."SamAccountName"
$dateDisable = $_."dateDisable"
$dateEnable = $_."dateEnable"
#How can I search users in group like PLKAT-NON-BLOCK-USERS and don't block users from this group by IF function. Can you tell me more about this solution. I will be grateful for some clues.
if ( Get-ADPrincipalGroupMembership -And $dateDisable -eq $b) {
Get-ADUser -Identity $SamAccountName | Disable-ADAccount
Write-Host "-User "$SamAccountName" Disabled"
}
$dateEnable = $_."dateEnable"
if ( $dateEnable -eq $b) {
Get-ADUser -Identity $SamAccountName | Enable-ADAccount
Write-Host "-User "$SamAccountName" Enable"
}
}
【问题讨论】:
-
请提供有关您要完成的工作的更多详细信息。似乎您仅在用户不是
PLKAT-NON-BLOCK-USERS组的成员并且基于DateTime条件时才尝试禁用用户,但尚不完全清楚条件是什么。 -
运行
Get-ADUser -Properties MemberOf- 这应该给你一个关于如何继续的线索,虽然如果你的列表很大,那么最好先使用Get-ADgroup检索组并以这种方式过滤 -
我只想检查此组 PLKAT-NON-BLOCK-USERS 中的用户,而不是所有组和除 PLKAT-NON-BLOCK-USERS 之外的其他组中的用户。这很重要。
-
感谢您的帮助,我在 foreach 循环中使用了 Get-ADGroup 和一个变量。
-
这是否意味着您的问题现在已经解决了?如果是这样,我建议关闭它。
标签: powershell automation active-directory active-directory-group activedirectorymembership