Powershell管理系列(二十五)PowerShell操作之获取AD账号及邮箱信息

简介:

有时候我们需要查询账号的很多属性,但是需要通过不同的命令去获取,有点类似SQL Server里面的多表连接查询,比如查询所有账号的ad账号描述,邮箱名,显示名,邮箱地址,邮箱数目,邮箱大小,存档邮箱大小,存档邮箱数目。

ad账号描述---对应AD账号的描述信息,通过Get-adUser 获取

邮箱名,显示名,邮箱地址---对应用户邮箱信息,通过get-mailbox获取

邮箱数目,邮箱大小---对应邮箱信息,通过命令get-mailbox |Get-MailboxStatistics 获取

存档邮箱大小,存档邮箱数目---对应存档邮箱信息,通过命令get-mailbox -Archive|Get-MailboxStatistics -Archive获取

这些属性通过SamAccountName这个共同的属性连接和查询,具体操作如下:


--------------------------------------------------------------------------------------------------------------------------------------------------

cls

Add-PSSnapin microsoft.exchange*

$mbxinfo=Get-mailbox -ResultSize unlimited |%{$_.SamAccountName}

$userlist = @() 

foreach ($i in $mbxinfo) 

$Description=Get-adUser $i -Properties * |%{$_.Description}

$user=get-mailbox $i

$userStatistics=get-mailbox $i |Get-MailboxStatistics

$userarchiveStatistics=get-mailbox $i -Archive|Get-MailboxStatistics -Archive

$userobject=New-object psobject 

$userobject | Add-Member -membertype noteproperty -Name AD账号描述      -value $Description

$userobject | Add-Member -membertype noteproperty -Name 邮箱名          -Value $user.Name

$userobject | Add-Member -membertype noteproperty -Name 显示名          -Value $user.DisplayName 

$userobject | Add-Member -membertype noteproperty -Name 邮箱地址        -Value $user.PrimarySmtpAddress

$userobject | Add-Member -membertype noteproperty -Name 邮箱数目        -Value $userStatistics.ItemCount

$userobject | Add-Member -membertype noteproperty -Name 邮箱大小        -Value $userStatistics.TotalItemSize

$userobject | Add-Member -membertype noteproperty -Name 存档邮箱数目    -Value $userarchiveStatistics.ItemCount

$userobject | Add-Member -membertype noteproperty -Name 存档邮箱大小    -Value $userarchiveStatistics.TotalItemSize

$userlist+=$userobject

$userlist

$userlist|export-csv -Path c:\userlist.csv -Encoding utf8 -NoTypeInformation

wKioL1ZISK6SZ2A1AAGHhn5TYxg552.png



本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1712918,如需转载请自行联系原作者


相关文章
|
4月前
|
数据安全/隐私保护 异构计算 Windows
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
|
4月前
|
存储 Shell 容器
【Azure 存储服务】使用PowerShell脚本创建存储账号(Storage Account)的共享访问签名(SASToken) : New-AzStorageContainerSASToken
【Azure 存储服务】使用PowerShell脚本创建存储账号(Storage Account)的共享访问签名(SASToken) : New-AzStorageContainerSASToken
|
7月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
183 0
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结
Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
135 0
|
弹性计算 关系型数据库 数据库
使用ROS部署ECS+SqlServer资源并通过PowerShell操作数据库
本文介绍如何通过ROS部署ECS+RDS+SqlServer资源,以及如何通过PowerShell操作SqlServer数据库。 注意:附录模板和截图中的commandtext部分仅为演示作用,请根据需求修改后使用。
使用ROS部署ECS+SqlServer资源并通过PowerShell操作数据库
|
jenkins 持续交付 Windows
Jenkins基础--Windows批处理,PowerShell获取指定的Credentials账户信息
Jenkins中Windows批处理,PowerShell获取指定的Credentials账户信息
5014 0