来自Exchange和AD的Powershell报告

时间:2015-11-12 09:22:36

标签: powershell active-directory exchange-server

我有这个脚本可以让我报告有关启用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
  }

}

1 个答案:

答案 0 :(得分:-1)

这一行

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:)。