Azure Automation workflow to set Exchange permissions

Azure Automation workflow to set Exchange permissions (Azure Automation compatible);
# Change log
# v1    Standard script                         20.04.2015
# v2    Edited use of Automation credentials    21.04.2015

workflow MailboxPermissions {

# Fetch Automation credentials from RunBook Settings
$cred = Get-AutomationPSCredential -Name "ServiceAdmin"

    # Use inlineScript to run a standard powershell script
    inlineScript {
        # To reuse variables outside inlineScript must use $using:variables
        # https://technet.microsoft.com/en-us/library/jj649082.aspx
 
        # Start Session to Exchange online (notice backtick char for wrapping)
        $Session = New-PSSession -ConfigurationName Microsoft.Exchange `
        -ConnectionUri https://ps.outlook.com/powershell/ `
        -Credential $Using:cred `
         -Authentication Basic -AllowRedirection
        Import-PSSession $Session
  
        # Get all user mailboxes
        $mbx = get-mailbox | where { $_.recipienttypedetails -eq 'usermailbox' }
  
        # Set permissions on mailboxes for service account or group
        $mbx | add-mailboxpermission -user "serviceadmin@domain.com" -AccessRights FullAccess 
    }
}

No comments: