我在下面创建了一个 PS 脚本,该脚本在我们的联合域中搜索特定域,并输出最后一次登录
Get-Mailbox -RecipientTypeDetails UserMailbox -Resultsize Unlimited |
where {$_.emailAddresses -like "*@example.co.uk" } |
Get-MailboxStatistics |
Select-Object DisplayName,PrimarySmtpAddress,LastLogonTime |
Export-CSV "C:\temp\O365-LastLogon-Info.csv" -NoTypeInformation -Encoding UTF8
到目前为止,它只提取显示名称和上次登录信息,并且由于某种原因,它没有提取电子邮件地址。
答案1
下面的 PowerShell 会按照您的意愿将预期结果输出到 csv 文件中。仅将命令PrimarySmtpAddress
的属性值输出Get-Mailbox
通过管道传输到ForEach-Object
循环。
使用变量PrimarySmtpAddress
在循环中保存值,然后使用计算属性引用该值来命名列并使用命令的输出在表达式中设置值Select-Object
。
电源外壳
(Get-Mailbox -RecipientTypeDetails UserMailbox -Resultsize Unlimited |
? { $_.emailAddresses -like "*@uspotus.us" }).PrimarySmtpAddress | % {
$p = "";
$p = $_;
$_ | Get-MailboxStatistics | Select DisplayName, @{N='PrimarySmtpAddress'; E={$p}}, LastLogonTime;
} | Export-CSV "C:\temp\O365-LastLogon-Info.csv" -NoTypeInformation -Encoding UTF8;
输出示例
DisplayName PrimarySmtpAddress LastLogonTime
----------- ------------------ -------------
Barrack Obama [email protected] 11/4/2021 11:18:11 PM
支持资源
-
'
?
' 符号和 Where 都是 Where-Object 的别名。如果您明确想要运行 Where-Object 命令,请运行 Where-object 或 '?
' -
标准别名对于 Foreach 对象:'
%
' 符号,ForEach -
Select-Object 的标准别名:
select