Run this powershell code using Glen Scales' objects found here
Code:
[void][Reflection.Assembly]::LoadFile("C:\rssfeed\EWSUtil2.dll")
$casUrl = "https://cas-server-url/ews/exchange.asmx"
$mbHash = @{ }
$mbMailboxEmail = "mailboxusername"
get-mailbox $mbMailboxEmail | foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$drDuration.StartTime = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd 08:30"))
$day = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd"))
$day = $day -replace("00:00:00", "")
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$drDuration.EndTime = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd 18:00"))
$tomorrow = get-date (get-date).AddDays(1) -format "d MMMM yyyy"
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $true
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
if ($frow -eq $true){
$fbboard = $fbboard + "http://primaryemail.co.uk/calendar.css`" rel=`"stylesheet`" type=`"text/css`">"
$fbBoard = $fbBoard + "My School Diary powered by http://primaryemail.co.uk`">Primary Email
"
$fbBoard = $fbBoard + ""
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
}
$mbHash = @{ }
get-mailbox $mbMailboxEmail| foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$tomorrow = get-date (get-date).AddDays(1) -format "d MMMM yyyy"
$tomorrow = $tomorrow + " 08:30:00"
$drDuration.StartTime = $tomorrow
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$tomorrow = get-date (get-date).AddDays(1) -format "d MMMM yyyy"
$tomorrow2 = $tomorrow + " 18:00:00"
$drDuration.EndTime = $tomorrow2
$drDuration.EndTime = $tomorrow2
echo $tomorrow
echo $tomorrow2
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $false
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
$fbBoard = $fbBoard + "
Today | |
" + $stime.ToString("HH:mm") + " | $title |
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
$mbHash = @{ }
get-mailbox $mbMailboxEmail| foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$tomorrow = get-date (get-date).AddDays(2) -format "d MMMM yyyy"
$tomorrow = $tomorrow + " 08:30:00"
$drDuration.StartTime = $tomorrow
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$tomorrow = get-date (get-date).AddDays(2) -format "d MMMM yyyy"
$tomorrow2 = $tomorrow + " 18:00:00"
$drDuration.EndTime = $tomorrow2
$drDuration.EndTime = $tomorrow2
echo $tomorrow
echo $tomorrow2
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $false
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
$fbBoard = $fbBoard + "
$tomorrow |
$title |
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
$mbHash = @{ }
get-mailbox $mbMailboxEmail| foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$tomorrow = get-date (get-date).AddDays(3) -format "d MMMM yyyy"
$tomorrow = $tomorrow + " 08:30:00"
$drDuration.StartTime = $tomorrow
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$tomorrow = get-date (get-date).AddDays(3) -format "d MMMM yyyy"
$tomorrow2 = $tomorrow + " 18:00:00"
$drDuration.EndTime = $tomorrow2
$drDuration.EndTime = $tomorrow2
echo $tomorrow
echo $tomorrow2
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $false
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
$fbBoard = $fbBoard + "
$tomorrow |
$title |
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
$mbHash = @{ }
get-mailbox $mbMailboxEmail| foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$tomorrow = get-date (get-date).AddDays(4) -format "d MMMM yyyy"
$tomorrow = $tomorrow + " 08:30:00"
$drDuration.StartTime = $tomorrow
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$tomorrow = get-date (get-date).AddDays(4) -format "d MMMM yyyy"
$tomorrow2 = $tomorrow + " 18:00:00"
$drDuration.EndTime = $tomorrow2
$drDuration.EndTime = $tomorrow2
echo $tomorrow
echo $tomorrow2
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $false
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
$fbBoard = $fbBoard + "
$tomorrow |
$title |
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
$mbHash = @{ }
get-mailbox $mbMailboxEmail| foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$tomorrow = get-date (get-date).AddDays(5) -format "d MMMM yyyy"
$tomorrow = $tomorrow + " 08:30:00"
$drDuration.StartTime = $tomorrow
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$tomorrow = get-date (get-date).AddDays(5) -format "d MMMM yyyy"
$tomorrow2 = $tomorrow + " 18:00:00"
$drDuration.EndTime = $tomorrow2
$drDuration.EndTime = $tomorrow2
echo $tomorrow
echo $tomorrow2
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $false
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
$fbBoard = $fbBoard + "
$tomorrow |
$title |
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
$mbHash = @{ }
get-mailbox $mbMailboxEmail| foreach-object{
if ($mbHash.ContainsKey($_.WindowsEmailAddress.ToString()) -eq $false){
$mbHash.Add($_.WindowsEmailAddress.ToString(),$_.DisplayName)
}
}
$mbs = @()
$ewc = new-object EWSUtil.EWSConnection($mbMailboxEmail,$true, $null, $null, $null, $casURL)
$drDuration = new-object EWSUtil.EWS.Duration
$tomorrow = get-date (get-date).AddDays(6) -format "d MMMM yyyy"
$tomorrow = $tomorrow + " 08:30:00"
$drDuration.StartTime = $tomorrow
$dd = [DateTime]::Parse([DateTime]::Now.ToString("yyyy-MM-dd+1 08:30"))
$tomorrow = get-date (get-date).AddDays(6) -format "d MMMM yyyy"
$tomorrow2 = $tomorrow + " 18:00:00"
$drDuration.EndTime = $tomorrow2
$drDuration.EndTime = $tomorrow2
echo $tomorrow
echo $tomorrow2
$batchsize = 100
$bcount = 0
$bresult = @()
if ($mbHash.Count -ne 0){
foreach($key in $mbHash.keys){
if ($bcount -ne $batchsize){
$mbs += $key
$bcount++
}
else{
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$mbs = @()
$bcount = 0
$mbs += $key
$bcount++
}
}
}
$bresult += $ewc.GetAvailiblity($mbs, $drDuration, 30)
$frow = $false
foreach($fbents in $bresult){
foreach($key in $fbents.keys){
$fbBoard = $fbBoard + "
$tomorrow |
$title |
$fbBoard = $fbBoard + ""
for($stime = $drDuration.StartTime;$stime -lt $drDuration.EndTime;$stime = $stime.AddMinutes(30)){
$fbBoard = $fbBoard + ""
$valuehash = $fbents[$key]
if ($stime -eq $drDuration.StartTime){
}
switch($valuehash[$stime.ToString("HH:mm")].FBStatus.ToString()){
"0" {$bgColour = ""}
"1" {$bgColour = "bgcolor=`"#52F3FF`""}
"2" {$bgColour = "bgcolor=`"#153E7E`""}
"3" {$bgColour = "bgcolor=`"#4E387E`""}
"4" {$bgColour = "bgcolor=`"#98AFC7`""}
"N/A" {$bgColour = "bgcolor=`"#98AFC7`""}
}
$title = ""
if ($valuehash[$stime.ToString("HH:mm")].FBSubject -ne $null){
if ($valuehash[$stime.ToString("HH:mm")].FBLocation -ne $null){
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
else {
$title = $title + $valuehash[$stime.ToString("HH:mm")].FBSubject.ToString()
}
}
else {}
if($title -ne "title="){$fulltitle = $title
$title = $title.substring(0,38)
$fbBoard = $fbBoard + "" +"`r`n"
}
else{
$fbBoard = $fbBoard + "`r`n"
}
}
}
}
del c:\fbboard.htm
$fbBoard | out-file "c:\fbboard.htm"
(Get-Content C:\fbboard.htm) |
Foreach-Object {$_ -replace "\|\|", " & "} |
Set-Content C:\calendar.htm
Subscribe to:
Post Comments (Atom)
$tomorrow |
$title |
1 comment:
Once day I opened MS Exchange and was astonished reason of my data was lost. I made a resolve to use the Google. It helped me quickly and effectively. I observed there a tool, which can help in matched problem just like helped me - fix microsoft exchange.
Post a Comment