[玩转系统] 简化 Active Directory 管理的 5 个想法
作者:精品下载站 日期:2024-12-14 08:13:03 浏览:13 分类:玩电脑
简化 Active Directory 管理的 5 个想法
管理 Active Directory 用户和组是 IT 管理的核心、重复性任务之一。参加网络研讨会并阅读这篇博文,了解 PowerShell 在何处以及如何帮助 IT 管理员节省时间并摆脱重复的、西西弗斯式的任务。
各种规模的组织都可以从自动化和脚本工具中受益,这些工具可以帮助减少管理环境所需的劳动力。通过使用 PowerShell 等脚本工具并将其应用于 Active Directory 场景,也可以获得这种效率。在本文中,我们将回顾 PowerShell 为日常管理任务以及处理后台和最终用户管理任务带来的功能。
报告
对于任何组织的 IT 部门来说,收集信息都是一个相对的金矿,因为它可以帮助完成日常任务、解决问题,甚至为未来的变更做好准备。对于 Active Directory (AD) 来说尤其如此,因为它是提供身份验证服务等的环境的核心。创建报告有助于使 AD 的内部运作更加透明,并使 IT 管理员更加了解 AD 的当前状态。我们可以收集哪些类型的信息?
不活跃用户
$InActiveUsers = Get-ADUser -Properties lastlogondate -Filter * | where LastLogonDate -lt ((get-date).AddDays(-90)) | Select Name,UserPrincipalName,LastLogonDate | % { $Date = $_.LastLogonDate;if ($Null -eq $Date) { $_.LastLogonDate = 'Never'}; Return $_}
“非活动用户”报告
请注意,LastLogonDate 显示“从不”。没有登录的新帐户将具有空的 LastLogonDate 值,因此用于生成此输出的单行代码会将此空值转换为“从不”,以使报告更易于用户使用。选择的天数 90 天是任意的,可以根据组织自己的注销或非活动帐户政策进行定制(180 天?365 天?)。请务必排除任何服务帐户或不需要在 Active Directory 中主动登录的帐户。
帐户被锁定
有两种方法可以做到这一点:
Search-ADAccount -LockedOut -UsersOnly
和
Get-ADUser -Properties AccountLockoutTime,LockedOut,lockoutTime -Filter * | Where LockedOut -eq $True | ft Name,*lock*
定期运行其中任何一个都可以帮助减少呼叫或提供有关受感染帐户的安全相关信息。
禁用帐户
查找禁用帐户就像将“启用”值设置为 False 的位置帐户一样简单。帐户被禁用的原因有很多,共享邮箱、链接邮箱等,虽然禁用的帐户可能有效,但此报告还可以显示可能需要清理的帐户。
Get-ADUser -Filter {Enabled -eq $False} | ft
“DisabledUsers”报告
安全报告
Active Directory 安全性是管理员需要工具来帮助显示信息的另一个重要方面,以了解谁在 AD 中拥有什么角色以及可以访问哪些功能。可以通过分析 AD 中的安全组来执行此任务。需要控制架构、企业和其他管理员等组,以限制对关键基础设施的不当访问。使用 PowerShell,我们可以提取成员身份并确定这些组中有多少用户。有了这些信息,管理员就可以确定担任这些重要角色的用户是否过多或过少。此分析中使用的代码还可以扩展到内置安全组之外,并应用于组织创建的其他组或其他系统(例如本地 Exchange 服务器)。此外,如有必要,我们还可以将代码用于与 Azure AD 的混合环境。
成员资格和人数(样本报告)
# Membership list
$Admins = Get-ADGroup -filter * | where {$_.Name -eq "Administrators"} | Get-ADGroupMember
$DomainAdmins = Get-ADGroup -filter * | where {$_.Name -eq "Domain Admins"} | Get-ADGroupMember
$EnterpriseAdmins = Get-ADGroup -Identity 'Enterprise Admins' -Server $RootDomainDC | Get-ADGroupMember
$SchemaAdmins = Get-ADGroup -Identity 'Schema Admins' -Server $RootDomainDC | Get-ADGroupMember
# Membership count
$AdminCount = ($Admins).Count
$DomainAdminCount = ($DomainAdmins).Count
$EnterpriseAdminCount = ($EnterpriseAdmins).Count
$SchemaAdminCount = ($SchemaAdmins).Count
然后,管理员可以分析这些列表和计数,以确定每个相应组中的用户是否过多。评估这些组的好时机是当它们的成员超过三个时,虽然这个值有点随意,但这些组应保持在可行的范围内尽可能小。
格式化报告
除了收集信息之外,如果信息要由管理员审核或提供给管理层日常使用,正确的格式也很关键。因此,了解报告的目标受众是创建报告的输出的关键。
TXT/CSV 文件
最简单的方法是将 PowerShell cmdlet 的内容导出到原始文件以供以后分析。精炼属性,因此使用 Out-File 甚至“>”可以从 PowerShell 导出结果:
示例 1:AD 中的 DHCP 服务器
Get-DhcpServerInDC | Out-File $DHCPOutputDestination
示例 2:FSMO 角色持有者
Get-ADDomainController -Server $Domain -Filter * > DomainControllers.txt
HTML 文件
输出到 HTML 文件可以提供更易于管理员和管理层阅读的报告/信息。有几种方法可以创建这些 HTML 报告。一种是通过“ConvertTo-HTML”cmdlet 原生内置于 PowerShell 中,另一种是利用 PSWriteHTML PowerShell 模块。
转换为 HTML
通过这个简单的单行线,我们可以创建一个相对好看的图表。首先,我们需要定义 HTML 文件所需的标头,并使用该标头将 CSV 文件转换为 HTML 文件以供使用。下面是执行此操作的一组基本代码:
# Define Style for HTML file
$Header = "<style>"
$Header = $Header + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$Header = $Header + "TH{border-width: 1px;padding: 2px;border-style: solid;border-color: black;}"
$Header = $Header + "TD{border-width: 1px;padding: 2px;border-style: solid;border-color: black;}"
$Header = $Header + "</style>"
# Convert CSV to HTML
$Output = Import-CSV <Output CSV File>
$Output | ConvertTo-HTML -Head $Header | Set-Content -Path <Output HTML file>
示例输出:
HTML 格式的“DisabledUsers”报告
PS写HTML
虽然此模块比创建 HTML 图表功能强大得多,但此练习提供了一个开始使用强大的报告模块的好地方。与 ConvertTo-HTML 类似,我们有一个使用“禁用用户”变量的快速单行代码:
$DisabledUsers | Out-HtmlView
PSWriteHTML 格式的“DisabledUsers”报告
重设密码
重置密码可能很乏味,因此创建代码来创建随机密码,然后将其设置在指定的用户帐户上可以简化事情。请注意,我们需要指定两个成功标准:密码的适当长度和非字母数字字符的数量。
Function RandomPassword {
Add-Type -AssemblyName 'System.Web'
$length = 10
$nonAlphaChars = 5
$NewPassword = [System.Web.Security.Membership]::GeneratePassword($length, $nonAlphaChars)
$SecurePassword = ConvertTo-SecureString -String $NewPassword -AsPlainText -Force
Return $SecurePassword
}
随机密码
Set-ADAccountPassword Sam -Reset -NewPassword $SecurePassword
*有关[System.Web.Security.Membership]的后续阅读可以在 Microsoft Learn 上找到。
解锁账户
首先,找到被锁定的用户:
Get-ADUSer -Filter * -Properties LockedOut | Where LockedOut -eq $True
我们可以修改这一行以允许管理员选择要解锁的帐户:
$AccountsToUnlock = Get-ADUser -Filter * -Properties LockedOut | Where LockedOut -eq $True | Out-GridView -PassThru
Foreach ($AccountToUnlock in $AccountsToUnlock) { Unlock-ADAccount $AccountToUnlock }
运行此代码时,将显示一个弹出窗口,管理员可以从中选择一个或多个帐户进行解锁:
选择后,所选帐户将使用“Unlock-ADAccount”cmdlet 解锁
入职新用户
当新用户加入组织时,需要进行一些帐户设置,负责此设置的人员通常有一个要执行的任务列表,以确保新员工的第一天尽可能轻松。
按部门分配组、主驱动器和登录脚本
# Settings - Groups, HomeDirectory, HomeDrive, ScriptPath
Function ConfigureUserSettings {
Param ($User)
$Department = $User.Department
write-host "department = $Department"
If ($Department -eq 'Marketing') {
Add-ADGroupMember -Identity Marketing -Members $User
Set-ADUser $User -HomeDirectory '\fs01\homedir\Marketing$User' -HomeDrive 'M:' -ScriptPath '\adlab01-dc01\netlogon\Marketing-Logon.bat'
}
If ($Department -eq 'Human Resources') {
Add-ADGroupMember -Identity 'Human Resources' -Members $User
Set-ADUser $User -HomeDirectory '\fs01\homedir\Human Resources$User' -HomeDrive 'H:' -ScriptPath '\adlab01-dc01\netlogon\HR-Logon.bat'
}
If ($Department -eq 'Research and Development') {
Add-ADGroupMember -Identity 'Research and Development' -Members $User
Set-ADUser $User -HomeDirectory '\fs01\homedir\Resource and Development$User' -HomeDrive 'R:' -ScriptPath '\adlab01-dc01\netlogon\RnD-Logon.bat'
}
If ($Department -eq 'Information Technology') {
Add-ADGroupMember -Identity 'Information Technology' -Members $User
Set-ADUser $User -HomeDirectory '\fs01\homedir\Information Technology$User' -HomeDrive 'I:' -ScriptPath '\adlab01-dc01\netlogon\IT-Logon.bat'
}
}
# Main Body
$OU = 'OU=Mailboxes,DC=ADLab01,DC=Local'
$Users = get-aduser -SearchBase $OU -Filter * -Properties Department
Foreach ($User in $Users) {
ConfigureUserSettings $User
Write-Host "... Completed User $User ..."
}
现在可以修改上述脚本以使用其他属性来“触发”或确定应用哪些设置,例如自定义属性、组织单位 (OU) 或标题。同样,所使用的 OU 也可以修改为组织的 OU 结构。
安排此任务
由于除非运行脚本,否则这些更改无法发生,因此如果需要,自动化脚本可以减少 IT 人员的手动运行。使用跳转盒和任务计划程序,该脚本可以每天运行(或多或少),以确保为用户分配正确的组、主驱动器和登录脚本。有关如何安排它的提示,请参阅作者的博客文章“安排它!”。
离职
禁用帐户,移至“禁用帐户”OU,更改密码
当用户离开组织时,IT 通常有一个记录的流程来说明如何处理其用户帐户。有时,这包括禁用帐户、将其移动到禁用帐户 OU,甚至更改密码,这些任务都可以使用 PowerShell 完成。
$CSV = Import-CSV '\fs01\Departments\HR\Terminations\Monthly.csv'
Foreach ($Account in $CSV) {
$User = Get-ADUser $Account
$DisabledOU = 'OU=Disabled Accounts,DC=ADLab01,DC=Local'
RandomPassword
Set-ADAccountPassword $User -Reset -NewPassword $SecurePassword
$UserId = $User.ObjectGUID
Move-ADObject $UserId -TargetPath $DisabledOU
Disable-ADAccount $User
}
请注意我们在本文第一部分中使用的RandomPassword生成器功能。重用代码很重要,因为它有助于减少管理工作,而不必为每个任务重新创建代码块。
在混合环境中,如果帐户移动到的 OU 未同步,则需要小心,因为这可能会导致数据丢失以及无法访问 Azure AD、OneDrive、SharePoint、Teams 等中的用户帐户。在这些情况下,最好禁用帐户/更改密码,或者仅更改密码。
结论
管理 Active Directory 是一项复杂的任务,需要管理员拥有适合该工作的工具和知识。将这些相同的 PowerShell 技能与 Active Directory 结合使用确实可以使管理变得更加容易。自动化日常任务使管理员能够专注于其他项目。在本文中,我们简单介绍了 PowerShell 在管理 Active Directory 方面的功能,但希望现实世界中的示例也有助于激发您对未来可能会执行的任务的好奇心。
在您开始探索如何在您的环境中使用 PowerShell 之前,另一个建议是,如果您有一项需要自动化的任务,请确保保护您的脚本、凭据等,以便您的代码或访问权限无法被劫持。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag