该工具查询 Azure AD/O365 租户中的以下配置,这些配置可以揭示难以发现的权限和配置设置,从而帮助组织保护这些环境。
Exchange Online (O365):
Azure AD:
查询租户合作伙伴信息: 要查看租户合作伙伴信息,包括分配给合作伙伴的角色,您必须以全局管理员身份登录 Microsoft 365 管理中心:
https://admin.microsoft.com/AdminPortal/Home#/partners
需要以下 PowerShell 模块,它们将自动安装:
注意:要返回被查询配置的完整范围,需要以下角色:
当没有全局管理员权限时,工具会通知您因此哪些信息将不可用。
未指定参数:将在脚本运行目录中自动创建一个以日期和时间命名的文件夹 (YYYYDDMMTHHMM)。默认身份验证方法会对每个连接提示输入,以兼容 MFA。
.\Get-CRTReport.ps1
-BasicAuth 参数:
[可选] 如果您的用户主体未强制使用 MFA,您可以使用此参数,它将只提示一次身份验证,并使用 Get-Credential 存储凭据。(不推荐)
.\Get-CRTReport.ps1 -BasicAuth
-JobName 参数:
[可选] 使用 JobName 参数来区分不同租户。如果未指定 JobName,将在工作目录中放置一个日期/时间格式的文件夹。
.\Get-CRTReport.ps1 -JobName MyJobName
-WorkingDirectory 参数:
[可选] 如果您想为任务指定不同的工作目录,可以使用此参数。默认工作目录是脚本运行所在的目录。
.\Get-CRTReport.ps1 -JobName MyJobName -WorkingDirectory 'C:\Path\to\Job\Folder'
-Commands 参数:
[可选] 使用此参数,指定要运行的特定命令,用引号括起,逗号或空格分隔。
.\Get-CRTReport.ps1 -JobName MyJobName -WorkingDirectory 'C:\Path\to\Job\Folder' -Commands "Command1,Command2"
-AzureEnvironmentName 和 -ExchangeEnvironmentName 参数:
[可选] 使用此参数指定 Azure 或 Exchange 环境名称。使用 Tab 自动补全可以搜索可接受的值。
.\Get-CRTReport.ps1 -ExchangeEnvironmentName O365USGovGCCHigh -AzureEnvironmentName AzureUSGovernment
可用命令:
FedConfig
FedTrust
ClientAccess
RemoteDomains
SMTPForward
TransportRules
FullAccessGranted
AnyAccessGranted
SendAsGranted
EXOPowerShell
AuditBypassEnabled
HiddenMailboxes
KeyCredentials
O365AdminGroups
DelegateAppPerms
AdminAuditLogConfig
-Interactive 参数:
[可选] 某些命令可能需要很长时间处理,具体取决于租户中的数据量。使用 Interactive 参数,您可以在模块运行前选择跳过任何特定命令。
.\Get-CRTReport.ps1 -JobName MyJobName -WorkingDirectory 'C:\Path\to\Job\Folder' -Interactive
每次运行时,CRT 会为每个查询输出 json 格式的报告,以及更易读的 .TXT 和 .CSV 格式:
未指定参数:将在脚本运行目录中自动创建一个以日期和时间命名的文件夹 (YYYYDDMMTHHMM)。为了支持 MFA,默认身份验证方法会提示用户为每个连接登录。
YYYYDDMMTHHMM\output.log(控制台日志的硬拷贝)YYYYDDMMTHHMM\_CRTReportSummary.txt(运行脚本的摘要和调查提示指南)YYYYDDMMTHHMM\Reports\<report>.csv(CSV 输出格式的报告,适用时)YYYYDDMMTHHMM\Reports\<report>.txt(TXT 输出格式的报告,适用时)YYYYDDMMTHHMM\Reports\json\<report>.json(每个报告附带 JSON 输出,以增加详细程度)Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission | Where-Object { ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | Export-Csv "AnyAssignedPerms.csv" -NoTypeInformation -Encoding Default
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission | Where-Object { ($_.AccessRights -eq "FullAccess") -and ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | Export-Csv "FullAccessPerms.csv" -NoTypeInformation -Encoding Default
如果您发现了错误,请使用“Issues”标签报告新问题,或在现有问题上添加评论。
如果您对该工具有任何建议或需要紧急升级,请发送电子邮件至:[email protected]。