来自 Exchange 和 AD 的 Powershell 报告

Powershell report from Exchange and AD

我有这个脚本,它可以向我报告启用了 OWA 的 AD 用户。

我需要添加到这个欠禁用的用户。

有人知道我如何更改此脚本以获得该结果吗?

Import-Module "ActiveDirectory"

$mailboxes = Get-CASMailbox -ResultSize 10000

"DisplayName;ActiveSync;Owa;SamAccountName;ExpiriationDate;AccountStatus;Department;Title;Description;Company;Office;LastLogonTime;"

foreach ($m in $mailboxes) {
  $Display=$false
  if ($m.OWAEnabled        -eq $true) { $Display=$true }
  if ($Display -eq $true) {
    $a = Get-ADUser $m.DistinguishedName -properties *
    $s = Get-MailboxStatistics $m.DistinguishedName
    "{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};" -f $m.DisplayName,$m.ActiveSyncEnabled,$m.OWAEnabled,$m.samAccountName,$a.AccountExpirationDate,[string]$a.Enabled,$a.Department,$a.title,$a.description,$a.company,$a.office,$s.LastLogonTime
  }

}

这一行

if ($m.OWAEnabled        -eq $true) { $Display=$true }

表示:如果OWAEnabled 属性设置为$true,则显示用户

您只需将其更改为

$Display=$true

意思:无论如何都会显示用户

为了进一步简化,您甚至可以删除仅用于过滤的与 $Display 相关的所有内容:

Import-Module "ActiveDirectory"

$mailboxes = Get-CASMailbox -ResultSize 10000

"DisplayName;ActiveSync;Owa;SamAccountName;ExpiriationDate;AccountStatus;Department;Title;Description;Company;Office;LastLogonTime;"

foreach ($m in $mailboxes) {
    $a = Get-ADUser $m.DistinguishedName -properties *
    $s = Get-MailboxStatistics $m.DistinguishedName
    "{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};" -f $m.DisplayName,$m.ActiveSyncEnabled,$m.OWAEnabled,$m.samAccountName,$a.AccountExpirationDate,[string]$a.Enabled,$a.Department,$a.title,$a.description,$a.company,$a.office,$s.LastLogonTime    
}

如果您开始使用 AD PowerShell cmdlet,您应该学习基础知识以了解您使用的脚本的真正作用,否则您可能最终会毁掉您的 AD :)。