Office 365 PowerShell connection script

If you working with Office 365 PowerShell on daily basis, you may find that it is taking too much time to connect your Office 365 console, especially if you working with multiple tenants. You have to note usernames, passwords for all of the tenants and copy/paste them every time you want to make connection. Below you will find description, how to make it “single command” task.

Because that script will give access to your tenant without typing any username/password, I would suggest that you should not implement that on any public machine. Make sure that you are only person who can execute connection script.

OK, let’s start.

First of all we need to create addition file where encrypted tenant’s password will be stored. As an example create directory “O365Connections” on your C: drive and then create folder “keys” in it.

Start PowerShell prompt and type following command:

Read-Host -Prompt "Enter your tenant password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\O365Connections\keys\tenant1.key"

Continue reading

Office 365: Mailboxes for testing your changes

You preparing for massive change on high number of mailboxes on your Office 365 tenant, but you want to test how the change will work first. But if there is no licences left, how it is possible to do?

Answer is quite straightforward – Shared mailboxes.

From mailbox properties perspective there are almost no difference between Regular and Shared mailboxes, but Shared mailboxes are free and it is possible to create unlimited number of Shared mailboxes on your Office 365 tenant.

Lets say you want to create 500 mailboxes for testing purposes. You will be surprised how simple it is! Just use following command in O365 PowerShell:

for ($i -eq 1; $i -ne 500; $i++) {New-Mailbox -Shared -Name “Test Shared Mailbox$i”}

 That particular command will create 500 new Shared mailboxes. You may want to play with red number ‘500’ to decrease or increase number of mailboxes you want to create. Continue reading

Unable to retrieve Free/Busy information for some Office 365 mailboxes. Event ID: 4002; Source: MSExchange Availability;

Problem:

If you running Hybrid Environment or just trying to share free/busy information between your on-premise Exchange Organization and Office 365 you may experience that free/busy information for some mailboxes which were recently moved to O365 is not available. Please note that problem does not affect free/busy from on-premise to O365, if you cannot get free/busy for on-premise mailboxes – it must be another issue.

In addition you may see error similar to following in Application Event Log of your Hybrid server:

Event 4002, MSExchange Availability
Process 4192: ProxyWebRequest FederatedCrossForest from S-0-0-00
-0000000000-0000000000-000000000-0000 to https://server_name.outl
ook.com/EWS/Exchange.asmx/WSSecurity failed. Caller SIDs: WSSecur
ity. The exception returned is Microsoft.Exchange.InfoWorker.Comm
on.Availability.ProxyWebRequestProcessingException: System.Web.Se
rvices.Protocols.SoapException: An internal server error occurred
. The operation failed.

Continue reading

How to get services.wsdl for Office 365?

In case you looking for downloading services.wsdl for Office 365 possible that you may find that is  not so straightforward.

In general services.wsdl usually located on URL:

https://server_name/ews/services.wsdl but

How to determine actual server for Office 365 mailbox?

On internet you may find such kind of solution:

— Login to your e-mail account using Outlook Web App (OWA).
— Click Options > See All Options > Account > My Account > Settings for POP, IMAP, and SMTP access.
— In the list of entries, locate the server name

In fact it is not exactly correct, because name you will see there is outlook.office365.com – which is global alias and does not pointing to actual server:
Continue reading