outlook powershell - 会议开始时间的增加时间?

时间:2014-09-25 15:38:39

标签: powershell outlook outlook-vba

目前我正在整理一个PowerShell脚本,我希望能够在增加会议时间的同时发送会议邀请(例如,如果第一次邀请发送到9:00会议,我希望第二次会议能够在9:30发出。

到目前为止,我所拥有的是。我可以从文本文件中读取电子邮件列表并发送邀请,但是我在为会议添加时间方面遇到了问题(AddMinutes()似乎不适用于会议邀请开始时间)

$emails = get-content emails.txt
$olAppointmentItem = 1 
$o = new-object -comobject outlook.application
foreach ($element in $emails){
   $a = $o.CreateItem($olAppointmentItem)
   $a.meetingstatus=[Microsoft.Office.Interop.Outlook.olMeetingStatus]::olMeeting
   $a.meetingstatus.olMeeting
   $a.Start = [datetime]::ParseExact("09:00","hh:mm",$null)
   $a.Duration = 30
   $a.Subject = "Test Meeting"
   $a.Body = "Just a test, please accept, then delete."
   $a.Location = "Here"
   $a.ReminderMinutesBeforeStart = 15
   $a.ReminderSet = $True
   $a.recipients.add($element)
   $a.ForceUpdateToAllAttendees =$True
   $a.send()
   $a.Start.AddMinutes(+30)
}
$result = $a.Save()

1 个答案:

答案 0 :(得分:0)

.AddMinutes()适用于[DateTime]对象,我必须检查.Start接受的内容,或者您​​是否能够从中读取内容。从理论上讲,$a.Start.AddMinutes(+30)只会返回与[datetime]类似的Thursday, September 25, 2014 9:30:00 AM对象。你没有把它分配给任何东西。

基本方法是将第一次保存到自己的变量

$900am = [datetime]::ParseExact("09:00","hh:mm",$null)
$a.Start = $900am

然后在您尝试更改此位置的下方,您可以执行以下操作:

$a.Start = $900am.AddMinutes(30)

或者不打扰变量,只需再次调用方法ParseExact

$a.Start = ([datetime]::ParseExact("09:00","hh:mm",$null)).AddMinutes(30)

我不知道你的逻辑是否成立,所以我将不得不对此进行测试,但上述内容肯定有助于你的时间操纵。