exchange powershell:正在查找active directory office属性

exchange powershell:正在查找active directory office属性,powershell,active-directory,exchange-server-2007,Powershell,Active Directory,Exchange Server 2007,我编写了这个小脚本,通过管道化exchange邮箱对象从get user中提取office属性 $server = "tms08" $arrUser = get-mailbox -Server $server |Get-MailboxStatistics |select identity foreach ( $id in $arrUuser) { $office = get-user -Identity $id.Identity |select office $out += $i

我编写了这个小脚本,通过管道化exchange邮箱对象从get user中提取office属性

$server = "tms08"
$arrUser = get-mailbox -Server $server |Get-MailboxStatistics |select identity
foreach ( $id in $arrUuser)
{
    $office = get-user -Identity $id.Identity |select office
    $out += $id.Identity 
}
$out 
我没有收到任何输出或红色错误。只是警告:

警告:没有要返回的数据 指定的邮箱 “Globe/MobileElect用户模板”, 因为它尚未登录到。 警告:默认情况下,只有前1000个 物品被退回。改变现状 返回的项目数,请指定 参数“-ResultSize”。归还所有 项目指定“-ResultSize Unilimited” (注意:返回所有项目可能需要一个 时间长,消耗量大 内存的大小取决于实际的 项目数量)。事实并非如此 建议将结果存储在 变量相反,将结果传递给 要执行的另一个任务或脚本 批量更改

你知道是什么引起的吗

我的目标是开发一个脚本,通过计划任务每天执行一次,该任务编译所有邮箱名称、邮箱大小、totalitems、totaldeleted items及其office和description字段(来自active directory)

我猜get qaduser是quest powershell插件的一部分。我将在本地安装并尝试一下

identiy属性似乎给出了一个类似于guid的数字,如下所示 1234as01-4f54-1234-b1df-f1df1df12d2d

我试着跑步

get-user -identity 1234as01-4f54-1234-b1df-f1df1df12d2d  
它找到了一个名字(joey blasio)和收件人类型(usermailbox)

然后我跑了

get-user -Identity 1234as01-4f54-1234-b1df-f1df1df12d2d | select displayname, distinguistedname  
显示名称(Joey Blasio)和区分名称(CN=Joey 布拉西奥,OU=EWE,DC=BLA-1,DC=net)


我认为问题在于你正在访问一个从未被正常访问过的邮箱。你能用一个你知道所有者已经打开并使用过的邮箱试试吗?或者已经是这样了

另外,由于我目前无法访问我的交换机,您能告诉我Identity属性包含哪些内容吗?我绝对相信,在交换中使用类似于
Get-QADUser
Get-User
的cmdlet,最终将为您带来更高的满意度。我们只需要将正确的属性从
Get-MailboxStatistics
划分为
Get-QADUser
可以使用的内容,这样它就可以为您找到正确的用户


了解你的最终目标也可能有点帮助——可能有一种完全不同的方法可以让你达到你想要的目标。

这是通过
DisplayName

$exchangeservers = Get-MailboxServer
$AllUsers = @()
$AllUsersEmail = @()

foreach ($server in $exchangeservers)
{
    $AllUsers += Get-Mailbox -Server $server |Get-MailboxStatistics |select servername,displayname,itemcount,totalitemsize
}

foreach ($user in $AllUsers)
{
    $obj = new-object psObject
    $mailinfo = get-mailbox -identity $user.displayname |select PrimarySMTPAddress,Office, DistinguishedName
    $tmp = [adsi]("LDAP://" +  $mailinfo.DistinguishedName)


    $obj |Add-Member -MemberType noteproperty -Name "Server Name" -Value $user.ServerName
    $obj |Add-Member -MemberType noteproperty -Name "Display Name" -Value $user.DisplayName
    $obj |Add-Member -MemberType noteproperty -Name "Item Count" -Value $user.ItemCount
    $obj |Add-Member -MemberType noteproperty -Name "Total Item Size" -Value $user.TotalItemSize
    $obj |Add-Member -MemberType noteproperty -Name "Email Address" -Value $mailinfo.PrimarySMTPAddress
    $obj |Add-Member -MemberType noteproperty -Name "Office" -Value $mailinfo.Office
    $obj |Add-Member -MemberType noteproperty -Name "Description" -Value $tmp.description

    $AllUsersEmail += $obj
}

$AllUsersEmail |Export-Csv c:\test.csv -NoTypeInformation 

在Active directory中查找office属性的更好方法是绑定GUID属性吗?我注意到get-mailboxstatistics有一个mailboxguid,get-user有一个guid属性。