Skip to main content

Handy Office 365 commands O365





## allow remote signed
set-executionpolicy remotesigned



## to import MSONline modules into a standard powershell 

import-module MSONline

## To connection to the MSONLine service


Connect-MsolService



## Get the Credential 

$o365cred=get-credential

## Create a session 

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $o365cred -Authentication Basic -AllowRedirection
Import-PSSession $session


## Add Permission for Alan to see bob's email 

Add-MailboxPermission -identity Bob@domain.com -user Alan@domain.com -AccessRights FullAccess


## If you wanted to give Alan full access to all mailboxes in your environment you would run:

Get-Mailbox | Add-mailboxpermission -user Alan@domain.com -AccessRights FullAccess


## Create New Shared Mailbox 

$smbName = "Give it a name"
$smbAlias = "Giveitanalias"

New-Mailbox -Name $smbName -Alias $smbAlias -Shared

## Create Access permission to teh shared mailbox 

Add-MailboxPermission -identity Bob@domain.com -user Alan@domain.com -AccessRights FullAccess

## Allow SendAS rights


Add-RecipientPermission hr -Trustee khume -AccessRights SendAs


## FIND recipients based on their email address 

get-recipient -results unlimited | where {$_.emailaddresses -match "SEARCH_PHRASE_HERE"} | select name,emailaddresses,recipienttype

Get-MSOLUser -MaxResults 1 | get-member


## By default, give everyone access to a resource 

add-MailboxPermission stafffolders@xxxx.org.au -user default -accessrights FullAccess



Set-MailboxFolderPermission nsboardrm@xxxx.org.au:\Calendar -user default -accessrights owner
Set-MailboxFolderPermission nbboardrm@xxxx.org.au:\Calendar -user default -accessrights owner


## To remove an address from the GAL 


set-mailbox -identity [email address] -HiddenFromAddressListsEnabled $true

## List people in a group 


> Get-DistributionGroupMember -identity nbstaff | select DisplayName, PrimarySmtpAddress | Sort-Object PrimarySmtpAddress



#######################

Set an Auto Reply

$MyMessage = "I am currently out of the office. If the matter is urgent, please phone me xxxxx"

set-mailboxautoreplyconfiguration -identity XXXXX -AutoReplyState Scheduled -ExternalAudience All -ExternalMessage $MyMessage -InternalMessage $MyMessage  -EndTime "mm/dd/yyyy hh:mm:ss"



## Nice article on groups

http://gallery.technet.microsoft.com/office/List-all-Users-Distribution-7f2013b2

### 



## List all users where the password will expire 

Get-MsolUser | select UserPrincipalName , PasswordNeverExpires | Where-Object {$_.PasswordNeverExpires -eq $False }


## Change Password expiry for ALL users to Off 

Get-MSOLUser | Set-MsolUser -PasswordNeverExpires $true



##  Article on password expiry 
http://support.microsoft.com/kb/2666768
http://technet.microsoft.com/en-us/library/dn194133.aspx
http://community.office365.com/en-us/forums/613/t/53862.aspx




## Get Distribution Group Members and create a csv file from it 

Get-DistributionGroupMember -identity nsstaff | select name, DisplayName, PrimarySmtpAddress | Sort-Object PrimarySmtpAddress | export-csv "output.csv"


## Remove a Member from a Distribution Group


Remove-DistributionGroupMember -Identity nbstaff@xxx.org.au -Member "Anna Sloss" -BypassSecurityGroupManagerCheck


## Get last login time 

Get-mailbox -resultsize unlimited| Get-MailboxStatistics | select displayname, lastlogontime

Comments

Popular posts from this blog

Changing Password - in AD, when you're changing one of your other accounts, not the logged in account

  Use Powershell  Step 1 - Put your existing password in a Secure String  $oldPassword = Read-Host "Your old Password" -AsSecureString  Step 2 - Start the password change set-AdAccountPassword -Identity paul-admin -OldPassword  $oldPassword Step 3 - Enter your new password You'll be prompted for your new password... Please enter the desired password for 'CN=xxxx,OU=Admin Users,OU=Users,OU=Privileged,DC=CAIS,DC=com,DC=edu,DC=au' Password: ************************** Repeat Password: **************************

Tip to create an underline on a heading shorter than the heading itself

You can use a pseudo element with :before (or :after ): h1 { font - weight : 300 ; display : inline - block ; padding - bottom : 5px ; position : relative ; } h1 : before { content : "" ; position : absolute ; width : 50 %; height : 1px ; bottom : 0 ; left : 25 %; border - bottom : 1px solid red ; } http://jsfiddle.net/9e27b/ This is another solution that centers the heading, the problem here is that the underline gets shorter as the column gets shorter. h2 {   display: inline-block;   padding-bottom: 15px;   position: relative;   width: 100% ;   text-align: center; } h2:before{     content: "";     position: absolute;     width: 8%;     height: 1px;     bottom: 0;     left: 46%;     border-bottom: 1px solid red; }

The web.config no extension mime problem Lets Encrypt on IIS/Windows

  Tip when using LetsEncrypt in Windows - Feature Requests - Let's Encrypt Community Support In a paragraph, just use the web.config file to set the mime type, eg...  After trying to figure out why my Lets Encrypt failed to generate in Windows, and discovering that it's the no extension mime type problem, I wondered whether certbot could fill in the missing gap. All that is needed is the following web.config file to be placed in the same directory as the challenge <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <mimeMap fileExtension="." mimeType="text/xml" /> </staticContent> </system.webServer> </configuration> Because there's no mime type for files without an extension on IIS, IIS sends back a 404 when verification happens. The web.config file above sets the mime type. After I created the .well-known