我正在尝试从主管那里获得主管直接报告,然后使用该信息将每个直接报告从2013年交换出来。然后每天邮寄这些信息,以便主管知道那天会消失。我从这里提取了一些这个脚本,它一次只能在一个文件上运行,或者我没有正确地提供它。任何人都可以告诉我可能做错了什么以及如何解决?提前谢谢。
$users = Get-ADUser -Identity "supervisor" -Properties directreports |
Select-Object -ExpandProperty directreports |
Get-ADUser -Properties mail |
Select-Object mail
foreach ($user in $users)
{
Add-Type -Path "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll"
$version = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService($version)
$service.UseDefaultCredentials = $true
$service.AutodiscoverUrl($user)
$folderid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar, $user)
$calendarFolder = [Microsoft.Exchange.WebServices.Data.calendarFolder]::Bind($service, $folderid)
$calendarView = new-object Microsoft.Exchange.WebServices.Data.CalendarView([System.DateTime]::Now, [System.DateTime]::Now.AddDays(2))
$calendarView.MaxItemsReturned = 200;
$calendarView.PropertySet = new-object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$result = $calendarFolder.FindAppointments($calendarView)
}
$result | format-table
答案 0 :(得分:1)
如果您只是希望获得每个直接下属和/或外出消息的离开状态,则不需要使用外部Web服务。您可以使用交换管理工具并使用它:
get-MailboxAutoReplyConfiguration $emailAddressOrSamAccountName | select AutoReplyState,InternalMessage
这将为您提供离开办公室状态(是否启用了外出消息)以及为用户设置的内部外出消息。如果您愿意,还可以抓取其他属性。您可以将其放入每个循环中以获取每个直接报告的状态。