This site uses cookies. By continuing to browse the site, you are agreeing to our use of cookies.
OKLearn moreWe may request cookies to be set on your device. We use cookies to let us know when you visit our websites, how you interact with us, to enrich your user experience, and to customize your relationship with our website.
Click on the different category headings to find out more. You can also change some of your preferences. Note that blocking some types of cookies may impact your experience on our websites and the services we are able to offer.
These cookies are strictly necessary to provide you with services available through our website and to use some of its features.
Because these cookies are strictly necessary to deliver the website, refuseing them will have impact how our site functions. You always can block or delete cookies by changing your browser settings and force blocking all cookies on this website. But this will always prompt you to accept/refuse cookies when revisiting our site.
We fully respect if you want to refuse cookies but to avoid asking you again and again kindly allow us to store a cookie for that. You are free to opt out any time or opt in for other cookies to get a better experience. If you refuse cookies we will remove all set cookies in our domain.
We provide you with a list of stored cookies on your computer in our domain so you can check what we stored. Due to security reasons we are not able to show or modify cookies from other domains. You can check these in your browser security settings.
These cookies collect information that is used either in aggregate form to help us understand how our website is being used or how effective our marketing campaigns are, or to help us customize our website and application for you in order to enhance your experience.
If you do not want that we track your visit to our site you can disable tracking in your browser here:
We also use different external services like Google Webfonts, Google Maps, and external Video providers. Since these providers may collect personal data like your IP address we allow you to block them here. Please be aware that this might heavily reduce the functionality and appearance of our site. Changes will take effect once you reload the page.
Google Webfont Settings:
Google Map Settings:
Google reCaptcha Settings:
Vimeo and Youtube video embeds:
The following cookies are also needed - You can choose if you want to allow them:
How to add your branding to Office 365 login screens
Azure, Office 365You can add your own branding to your users Office 365 login screens via the Azure admin portal. The level of customisation that you get depends on the version of Azure Active Directory that you’ve signed up for.
What’s Azure Active Directory?
Azure Active Directory might not sound familiar to you, though it underpins every Office 365 organisation. All of your Office 365 users are stored in your Azure Active Directory, which is included in Office 365.
How to set up the custom branding for Office 365 login screens
The Customize Default Branding section gives you a few options to customise your Office 365 login experience.
Banner Logo
Size: 280 x 60 (Max is 300 x 60)
The Banner logo is the logo that appears above the Office 365 login fields. It supports JPEG, though a PNG image with a transparent background is recommended.
Square Logo
Size: 240 x 240
The square logo is used to represent user accounts in your organisation, on Azure AD web UI and in Windows 10. You should also add this one as a PNG with a transparent background, though JPEG is also supported.
Square Logo, Dark theme
Size: 240 x 240
You can upload a separate image for this one if the previous square logo won’t look good on dark backgrounds. Again, PNG with a transparent is recommended, though JPEG is supported.
User ID Placeholder
Typically, this is [email protected] and is shown in the user ID input field. You can replace this with [email protected] if you like. Though you should leave it blank if you’re making apps using Azure AD that will support external users.
Sign In Page Text Heading
This heading will appear above the customised sign in page text which can appear at the bottom of the Office 365 Sign in screen.
Sign In Page Text Body
This can be a short message at the bottom of the Office 365 login screen that can give more information to the users. You can use this to display welcome text, information about password resets, or contacting the helpdesk. This one can’t be longer than 500 characters (250-300 characters recommended).
Click the arrow to proceed to the next screen. This is where you can add the background image that will appear when a user enters their username.
Sign In Page Illustration
Size: 1420 x 1200
The message from Microsoft here is to use an abstract illustration or picture. Since the image gets resized and cropped, avoid using rasterized text and keep the “interesting” part of the illustration in the top-left corner. It can be a JPEG, GIF or PNG and should be about 300kb in size. Max size is 500kb.
Sign In Background Colour
Certain users may connect to Office 365 on low bandwidth connections, so you can customise the background colour of the Sign In Page Illustration section which will appear while the image loads. The default is the Office 365 orange/red, though this can be set to a hexadecimal colour code that suits your brand eg #73A2D1
Show or Hide Keep me signed in or KMSI
If you don’t want your users to choose to stay signed into devices, you can hide the ‘Keep me signed in’ checkbox here.
Post Logout Link Label
This is the link text that will appear when your users log out of Office 365. eg. Return to Ozbizweb Group website.
Post Logout Link URL
This is the URL that you’d like the Post Logout Link Label to redirect your users too. Eg. http://www.ozbizweb.com.au
Once you’ve applied your changes, click the Tick icon and wait for the changes to be applied.
You can test them out in an In-Private window (CTRL-Shift-P in Edge/Internet Explorer, CTRL-Shift-N in Google Chrome). Just enter your email address, and you should see some of the changes are taking effect. Note that it may take up to an hour to see your branding changes.
The free tier of Azure Active Directory doesn’t appear to display all the customised branding elements. Though some of them, like the Banner Logo and custom background colour before the Sign In Illustration loads, do appear.
Want to see all your Office 365 login screen branding?
Displaying all of your branding changes is one of the many benefits of Azure Active Directory Premium, and the good news is that you can try it out for free. If you decide that you don’t want to go ahead with Azure Active Directory Premium for all your users, and just want it for the branding, you can assign it to just one user. This seems to enable all the custom branding elements for all users in your organisation.
Here’s how to activate an Azure Active Directory Premium Trial
Troubleshooting Office 365 IMAP Migrations from Google Apps
Office 365We usually use Skykick for our Office 365 migrations as it helps us to automate the process and ensures a seamless transition onto Exchange Online. Occasionally Skykick will be unavailable to us, which is the case for a small migration I have underway.
The customer is migrating away from a Google Apps tenant that we don’t have administrative access to. This means we’re unable to set up the Google Service Account required by SkyKick, and have to migrate mail, contacts and calendars separately onto Office 365.
Since we have the usernames and passwords for the Google Apps/Google for Work accounts, we can run an IMAP migration within the Exchange Admin Centre. There are some instructions here that detail this process.
If the stars align for you, the migration will run without an issue. Though just in case things go wrong, here’s some solutions to some common IMAP migration issues.
Error: We had trouble signing into this account. Please confirm that you’re using the correct username and password.
If you’re receiving this error message and you’re 100% sure that all user details are correct, you may need to Allow less secure apps in the users’ Google Security Settings.
To do this, log on as the user to: https://myaccount.google.com/security?pli=1#signin
If Allow less secure apps is set to OFF, set it to ON.
This will allow Office 365 to connect to your accounts via IMAP to download the mail.
E-mail migration batch “migrationname” has finished – with errors
If you try to run the migration again, you will probably get an error report via email that states E-mail migration batch “migrationname” has finished – with errors.
The error message tells you that the migration users already exist, and will need to be removed before we can migrate their mail. The usual method to do this would be to delete the Migration Batch from the Exchange Admin Center.
When attempting to delete the migration, you may notice that the migration is stuck with a status of Removing.
Removing a Migration Batch via PowerShell
To remove a Migration Batch that is stuck with a status of removing, you may need to remove it via PowerShell.
To do this, you’ll need to connect to Exchange Online via PowerShell
Run Get-MigrationBatch
You’ll get a list of the current Migration Batches. In my screenshot the status is Syncing, since I forgot to take a screenshot while it was stuck on Removing.
To remove a Migration that’s stuck on Removing or Corrupted, run Remove-MigrationBatch -Identity migrationname
Remember to replace name with the name of your migration.
If it still does not remove, run Remove-MigrationBatch -Identity migrationname -Force to force it’s removal.
The user “[email protected]” already exists, but the migration batch that includes it couldn’t be found
Unfortunately, if you try to run the migration again, you may get the following error in your emailed error report:
At first I tried to remove all the migration users by signing into Exchange Online via PowerShell and running Get-MigrationUser to get a list of all the current migration users.
Then I ran Get-MigrationUser | Remove-MigrationUser
This gave me the following error message for each one:
To fix this, run Get-MigrationUser | Remove-MigrationUser -Force
You can run Get-MigrationUser again to confirm that there are no more registered Migration Users
Save yourself some time
If you want to save some time and force the removal of both Migration Batches and Migration Users, just run the following PowerShell commands in order:
Remember to replace migrationname with the name of your migration batch.
Remove-MigrationBatch -Identity migrationname -Force
Get-MigrationUser | Remove-MigrationUser -Force
Now, try to run the migration again and it should proceed without an issue.
How to set up an Out of Office message in Office 365
Office 365, OutlookThere are two ways to set up an Out of Office Automatic Reply when using Office 365. You can use Outlook, or the Outlook Web App.
Set up an Out of Office reply via Outlook
Set up an Out of Office reply via Outlook
How to setup Office 365 email on iPhone
Office 365Phone Call Business Intelligence with Power BI and FoneBox
Azure Storage, Office 365, Power BIMicrosoft Power BI lets you build dashboards and interactive reports from your existing data. It can connect to pretty much any data source and also comes with a bunch of built in connectors to services like Google Analytics, Facebook, Quickbooks Online etc.
We’ve been working on a range of Power BI connectors for our accommodation provider clients, providing them with updating business intelligence dashboards to monitor their Xero Accounting, NewBook booking data, Office 365 activity, MailChimp, Facebook, and now their phone calls.
Since phone numbers are unique, this data can be matched against existing customer data in Power BI, so our clients can find out which customers are calling, how often, and for how long.
This is a sample dashboard I put together this morning using the phone data we’re importing for a Queensland tourist park. The data comes from FoneDynamics, an online call tracking and analytics service based in Australia.
Clicking on dashboard elements opens the interactive Power BI reports. From here, you can drill down into the data and see how the elements relate to one another. In this example, we’ve selected ‘No’ under the Repeat callers chart. This gives us some pretty detailed information about the first time callers into the tourist park. This could include how long they spent on the phone, how many first time callers went unanswered, how long it took to answer these calls etc.
Since we’re using Power BI, we can open and interact with these reports on any device. Here’s the same dashboard running on an iPhone, where you can open the charts and set alerts on important data. For example, get notified when the missed calls for the month exceeds a certain number.
The tech stuff
For this solution, we had to pull the data from a collection of CSV files stored on an FTP site. Power BI will connect to CSV files out of the box, though not via FTP and it won’t join multiple CSVs into a single dataset.
I wrote a console app last night to connect to the FTP site, pick up each CSV, collect the phone records from it and upload them into an Azure Storage Table.
Here’s the data in an Azure Storage Table.
Once the data for the previous day’s phone records is uploaded into Azure Table Storage, I set up an Azure Web Job to run the process once a day.
Now that we have a regular, up to date source of phone data, we can connect to it using Power BI Desktop app. We can use this app to create our reports before publishing them to Power BI Online.
If you’d like to learn more about setting up Business Intelligence dashboards for your data, send an email with what you have in mind and we might be able to make it happen.
How to Restore an Azure Virtual Machine from Backup
Azure, IaasOnce you’ve setup Azure Backup to protect your Azure Virtual Machine (see this guide for more info), the process to restore it is quite simple. I recommend running test restores on a regular schedule to make sure it’s working correctly.
To restore an instance of your Azure Virtual Machine follow this quick guide.
Protect an Azure Virtual Machine with Azure Backup
Azure, IaasIf you’re running Azure Virtual Machines in production, you’ll probably want to protect them with Azure Backup. The good news is Azure provides a simple way to protect an entire virtual machine, so you can easily restore it if things go wrong.
Protecting Virtual Machine instances differs from the typical Azure Backup client that is usually installed on client PCs and On-premises servers.
Here’s how to set Azure Backup for an Azure Virtual Machine:
Migrating files into Microsoft Azure Virtual Machines
Azure, Azure StorageWe use Microsoft’s AzCopy to move large amounts of data from external sources into Microsoft Azure Storage.
The typical scenario for us is a customer who is moving onto an Azure Virtual Machine, and wants their data stored on that machine.
AzCopy is a versatile command line utility that allows you to move files from another PC or Server into Azure Storage, and then into your Azure virtual machine.
When migrating data to an Azure VM, the solution looks like this:
To get started, you need to install AzCopy from here.
Next, create an Azure Storage Account. You can do this in either the old portal or the new portal.
Once you’ve created a storage account, you’ll need to create a storage container. Here is a quick guide for the old portal and the new portal.
Now that you’ve installed AzCopy, created a storage account and a container, you can put together your AzCopy commands. Typically you’ll create two commands, one that uploads your data into Azure Storage, and the other downloads your data from Azure Storage into your Azure Virtual Machine.
Here’s an example that will move local data from E:\NAS into Azure Storage, and then download it to E:\NAS on the destination virtual machine:
To Azure Blob Storage
AzCopy /Source:E:\NAS /Dest:https://<storageaccountname>.blob.core.windows.net/<containername> /DestKey:<LongStorageAccountKey> /S /V:C:\temp\NASDrive.log
From Azure Blob Storage
AzCopy /Source:https://<storageaccountname>.blob.core.windows.net/<containername> /Dest:E:\NAS /SourceKey:<LongStorageAccountKey> /S /V:C:\temp\NASDrive.log
These commands will also create a log file under C:\temp\NASDrive.log
Running the AzCopy commands
Open Command Prompt and navigate to the location where AzCopy was installed. Typically this is under “C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy”
Paste in your first command and run it to start the upload. In the meantime, you can install AzCopy on the destination server.
Once the upload is complete, go to the destination server and run the second command to download the data from Azure Blob Storage.
If you experience errors
Occasionally you may experience errors in the AzCopy transfer (usually the upload), where certain files will fail. The solution for this is usually to append the /NC: parameter and run the command again. The /NC: parameter limits the number of concurrent connections to Azure storage. I usually set it to /NC:5, where 5 is the maximum number of concurrent files that will be uploaded. The upper limit of concurrent connections is 512.
Updated command for uploading to Azure Blob Storage
AzCopy /Source:E:\NAS /Dest:https://<storageaccountname>.blob.core.windows.net/<containername> /DestKey:<LongStorageAccountKey> /S /V:C:\temp\NASDrive.log /NC:5
If you’re rerunning the command, you will be asked whether you want to skip files that already exist. Choose to skip All.
Here’s the results of the second transfer.
You may notice that the number of files transferred in this image is different to the number of files that failed in the previous image. In this case, we removed some unnecessary files before restarting the upload.
AzCopy Documentation
For more information on AzCopy, see the documentation here.
How to create an Azure Storage Container in the old portal
Azure, Azure StorageHere’s how to create an Azure Storage Account Container in the old Microsoft Azure portal at https://manage.windowsazure.com, assuming you already have an Azure subscription and existing Azure Storage account.
Depending on the Access type you chose (eg. private), you may need your storage account name and primary key to access this container. See the end of this guide for how to retrieve these.
How to create an Azure Storage Container in the new portal
Azure, Azure StorageHere’s how to create an Azure Storage Account Container, assuming you already have an Azure subscription and existing Azure Storage account.
Depending on the Access type you chose, you may need your storage account name and primary key. See the end of this guide for how to retrieve these.