Using some cmdlets

Now we will take a look at some frequently used cmdlets. The first important cmdlets are the ones for retrieving the permissions: 

#Gathering cmdlets and its needed management roles
$modulesWithManagementRolesNeeded = Get-Command -Module ($returnedInformation.Name) | Select-Object Name, @{Name = "ManagementRole"; Expression = {Get-ManagementRole -Cmdlet ($_.Name)}} -First 2 #just gathering the first 2 cmdlets as example

This example also shows how to create dynamic properties, in which the management roles are gathered automatically for the first two cmdlets (limited because of the long execution time):

#Gathering for all unique roles the role assignee types and the role assignee names
($modulesWithManagementRolesNeeded.ManagementRole).Name | Select-Object -Unique | ForEach-Object {Get-ManagementRoleAssignment -Role $_ -Delegating $false | Format-Table -Auto Role, RoleAssigneeType, RoleAssigneeName}

With this line, all role assignee types and role assignee names for each management role are being retrieved and returned. You can now easily validate which roles are needed for dedicated cmdlets.

The next example provides some typical cmdlets for daily use. Here, we set up a small demo environment, which you can also use with your domain:

#Creating 20 mail addresses / users:
1..20 | ForEach-Object {New-MailUser -Name "DemoUser$_" -MicrosoftOnlineServicesID DemoUser$_@demo.com -Password (ConvertTo-SecureString -String $_'Passwort1.' -AsPlainText -Force) -ExternalEmailAddress "DemoUser$_@demo.com"}

#Creating 20 contacts:
1..20 | ForEach-ObjectForEach-Object {New-Mailcontact -Name "Contact$_" -Externalemailaddress DemoUser$_@demo.com}

#Creating 3 distribution groups:
1..3 | ForEach-Object {New-DistributionGroup Distgrp$_}

#Adding users and contacts to distribution groups:
1..2 | ForEach-Object {Add-DistributionGroupMember Distgrp1 -Member DemoUser$_}
5 | ForEach-Object {Add-DistributionGroupMember Distgrp1 -Member DemoUser$_}
1..8 | ForEach-Object {Add-DistributionGroupMember Distgrp1 -Member contact$_}
8..15 | ForEach-Object {Add-DistributionGroupMember Distgrp2 -Member contact$_}
16..20 | ForEach-Object {Add-DistributionGroupMember Distgrp3 -Member contact$_}

#Creating dynamic distribution groups:
New-DynamicDistributionGroup Dyngrp1 -RecipientFilter {(customattribute10 -like "*3*")}
New-DynamicDistributionGroup Dyngrp1 -RecipientFilter {(customattribute10 -like "*1*")}

#Setting departments
1..5 | ForEach-Object {Set-User DemoUser$_ -department "Development"}
6..10 | ForEach-Object {Set-User DemoUser$_ -department "Marketing"}
11..15 | ForEach-Object {Set-User DemoUser$_ -department "Management"}
16..20 | ForEach-Object {Set-User DemoUser$_ -department "HR"}

#Changing time zones
1..6 | ForEach-Object {Set-MailboxCalendarConfiguration -id DemoUser$_ -WorkingHoursTimeZone "Central European Time"}
6..7 | ForEach-Object {Set-MailboxCalendarConfiguration -id DemoUser$_ -WorkingHoursTimeZone "Eastern Standard Time"}
8..11 | ForEach-Object {Set-MailboxCalendarConfiguration -id DemoUser$_ -WorkingHoursTimeZone "Pacific Standard Time"}
12..13 | ForEach-Object {Set-MailboxCalendarConfiguration -id DemoUser$_ -WorkingHoursTimeZone "Central European Time"}
14..16 | ForEach-Object {Set-MailboxCalendarConfiguration -id DemoUser$_ -WorkingHoursTimeZone "Eastern Standard Time"}
17..20 | ForEach-Object {Set-MailboxCalendarConfiguration -id DemoUser$_ -WorkingHoursTimeZone "Pacific Standard Time"}

#Filtering and setting offices
Get-Mailbox | Get-MailboxCalendarConfiguration | Where-Object {$_.WorkingHoursTimeZone -eq "Central European Time"} | Set-User -Office "Munich"
Get-Mailbox | Get-MailboxCalendarConfiguration | Where-Object {$_.WorkingHoursTimeZone -eq "Eastern Standard Time"} | Set-User -Office "Ohio"
Get-Mailbox | Get-MailboxCalendarConfiguration | Where-Object {$_.WorkingHoursTimeZone -eq "Pacific Standard Time"} | Set-User -Office "Seattle"

It is recommended that you work with your scripts in a testing environment first and/or create advanced logs to verify the changes made.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset