Page 1 of 1

Looking for a little help

Posted: Mon Nov 10, 2014 4:41 pm
by island_guy
I am working with a couple new items here, hash tables and the new-object. Seems I can't store the collection in $results for some reason. Any help would be appreciated. Thanks

PowerShell Code
Double-click the code block to select all.
$Results = @()
$RoomName = get-mailbox -recipienttypedetails RoomMailbox | Where { $_.displayname -match "ABC" }
      
      
       foreach ($item in $RoomName)
       {
             $RoomName = $item.Alias
             $RoomProcessing = Get-CalendarProcessing $RoomName
             $RoomPermissions = Get-MailboxFolderPermission $RoomName
             $RoomCalendarConfig = Get-MailboxCalendarConfiguration $RoomName
            
             $Properties = @{
                    Name = $RoomName
                    WorkDays = $RoomCalendarConfig.WorkDays
                    WorkingHoursStartTime = $RoomCalendarConfig.WorkingHoursStartTime
                    WorkingHoursEndTime = $RoomCalendarConfig.WorkingHoursEndTime
                    Alias = $item.alias
             }
            
             $Results += New-Object -TypeName psobject -Property $properties
            
            
            
       }
       $Results = Select-Object Name, WorkDays, WorkingHoursStartTime, WorkingHoursEndTime | Export-Csv -NoTypeInformation -Path 'C:\Users\admin\Desktop\results.csv'
}

Re: Looking for a little help

Posted: Mon Nov 10, 2014 5:05 pm
by jvierra
Start with this:
PowerShell Code
Double-click the code block to select all.
Get-MailBox -recipienttypedetails RoomMailbox | 
     Where { $_.displayname -match "ABC" } |
     ForEach-Object{
             
             $RoomCalendarConfig = Get-MailboxCalendarConfiguration $_.Alias
             
             $Properties = [ordered]@{
                    Name=$_.Alias
                    WorkDays=$RoomCalendarConfig.WorkDays
                    WorkingHoursStartTime = $RoomCalendarConfig.WorkingHoursStartTime
                    WorkingHoursEndTime = $RoomCalendarConfig.WorkingHoursEndTime
                    Alias = $_.alias
             }
             
             New-Object -TypeName psobject -Property $properties
       } | 
       Export-Csv -NoTypeInformation -Path 'C:UsersadminDesktopresults.csv'
Once you understand how it works the rest will be easy.

Re: Looking for a little help

Posted: Wed Nov 12, 2014 8:08 am
by island_guy
Thank you.

Running it through debug mode, I do not show any thing being returned on this line.

$RoomCalendarConfig = Get-MailboxCalendarConfiguration $_.Alias

The $. shows the name of the room but it's not storing anything in $roomcalendarconfig variable.

Thoughts?

Re: Looking for a little help

Posted: Wed Nov 12, 2014 8:25 am
by jvierra
I suspect that there is no calendar.

Re: Looking for a little help

Posted: Wed Nov 12, 2014 10:25 am
by island_guy
No, it has a calendar. I can run just that line with the first calendar name and it returns the information.

The only difference is , when I run it manually I put the room in double quotes?

I thought powershell would take care of this for me.. maybe not.

how would I put $._alias in double quotes? I tried ""$._alias"" and '$._alias' and `"$._alias" with no success.

Thanks

Re: Looking for a little help

Posted: Wed Nov 12, 2014 11:17 am
by jvierra
Try "$($_.Alias)"

Re: Looking for a little help

Posted: Wed Nov 19, 2014 4:37 am
by island_guy
I ended up doing this to fetch a report (.csv) on Room and equipment mailboxes with "ABC" in the name.

PowerShell Code
Double-click the code block to select all.
$holdrooms = Get-MailBox -ResultSize Unlimited -recipienttypedetails RoomMailbox,EquipmentMailbox | Where { $_.displayname -match "ABC" }
 
$holdrooms | ForEach-Object{
             
             $RoomCalendarConfig = Get-MailboxCalendarConfiguration $_.Alias
             $getcalprocessing = Get-CalendarProcessing $_.Alias
            $rescaltemp = '{0}:\Calendar' -f $_.Alias
               $acl = Get-MailboxFolderPermission $rescaltemp | Select User, @{ n = "AccessRights"; e = { $_.AccessRights } }
      
           
 
 
 
             $Properties = [ordered]@{
                    Name=$_.Alias
                    AutomateProcessing = $getcalprocessing.AutomateProcessing
                    ResourceDelegates = $getcalprocessing.ResourceDelegates
                    ForwardRequestsToDelegates = $getcalprocessing.ForwardRequestsToDelegates
                    ScheduleOnlyDuringWorkHours = $getcalprocessing.ScheduleOnlyDuringWorkHours
                    BookingWindowInDays = $getcalprocessing.BookingWindowInDays
                    WorkDays=$RoomCalendarConfig.WorkDays
                    WorkingHoursStartTime = $RoomCalendarConfig.WorkingHoursStartTime
                    WorkingHoursEndTime = $RoomCalendarConfig.WorkingHoursEndTime
                    CalendarAccess = ($acl | Out-String).trim()
                   
             }
            
             
              
             New-Object -TypeName psobject -Property $properties
       } | Export-Csv -NoTypeInformation -Path 'c:\Users\Admin\Desktop\EXPORT.csv'
Thanks