Office ProPlus ToolKit

Office ProPlus ToolKit

Installing Office 365 ProPlus can be a bit of a headache and also there are many different tricks/hacks which can be implemented to test out the latest channels.

The Office ProPlus ToolKit script is built with following options to help you test and deploy ProPlus in the most effective way. This script is built with the following menu options

1) Configure Monthly Channel –>
2) Configure Semi Annual (Targeted) Channel –>
3) Configure Semi Annual Channel –>
4) Configure Monthly (Targeted) Channel –>
5) Configure Insider (Unsupported) Channel –>
6) Check your Office 365 ProPlus Configuration –>

7) Download the Office Readiness Toolkit for Add-ins & VBS –>
8) Download Microsoft FixIT Removal Tool –>
9) Download Offscrub Files (Office 03,07,10, O15 & O16) –>
10) Download Office 2016/2019/ProPlus Group Policy Templates –>
11) Download Office Telemetry Requirements –>

15) Download Office Deployment Tool (Official) –>
16) Download Pre-Loaded Office 365 Configuration Files –>

20) Install Office 365 ProPlus –>
21) Install SQL Express –>
22) Install SQL Management Studio –>
23) Install Office Telemetry Dashboard –>

30) Build your own configuration.xml (config.office.com) –>
31) Install Office using your modified configuration.xml –>

This script has seen a number of updates recently which have been logged below

Download

Get-OfficeProPlusToolKit.ps1 (556 downloads)

Change Log

Version 1.1 – Features

  • Download Pro-Loaded Office 365 Configuration Files – This contains Office 365 ProPlus and Office 2019. This option supports menu 20 which calls the downloaded setup.exe and xml files.
  • Support for PowerShell Version 5 – This script using Version 5 to expand Zip archives which allows the script to call the contents. If Version 5 is not detected you will be prompted to extract the required files manually.

Reporting Issues

If you identity any issues within running the script please email theauthor@blogabout.cloud

Regards
The Author – Blogabout.Cloud

PowerShell – Filtering your PowerShell outputs using Where-Object and Select-Object

PowerShell – Filtering your PowerShell outputs using Where-Object and Select-Object

When working with PowerShell and using a (get-command | fl or format-list) you will receive a whole list of information which sometimes can be difficult to digest as shown below. In most cases normally you are only after one or two pieces of key information.

Using Select-Object

Select-Object is a great command when filtering PowerShell output by a particular property example Get-Service and Name/Status

# Command
Get-Service | Select-Object -Property Name,Status

Get-Service | Select-Object -Property Name,Status

This command isnt limited to just Get-Service and can be used across all Microsoft workloads for example you wanted to see UserPrincipleName and O365 licence, Select-Object can help you achieve that.

Using Where-Object

Where-Object is a powerful option when filtering PowerShell output by a particular value, for example, Get-Service state based on stopped services

# Command

Get-Service | select -Property Name,Status | where {$_.Status -like 'Stopped'}
Get-Service | select -Property Name,Status | where {$_.Status -like ‘Stopped’}

Where-Object doesn’t just stop there, what if you just wanted all the Stopped Service begining with the letter C?

# Command

Get-Service | select -Property Name,Status | where {($_.Name -like 'C*') -and ($_.Status -like 'Stopped')
Get-Service | select -Property Name,Status | where {($_.Name -like ‘C*’) -and ($_.Status -like ‘Stopped’)}

Again where-object isnt just limited to this command, I have just both commands in PowerShell scripts I have written for a customer to achieve a desired state.

Now go and try this commands within on your computer or organisation and see what you automate.

Regards
The Author – Blogabout.Cloud



PowerShell – How to format your PowerShell output into a table using Format-Table

PowerShell – How to format your PowerShell output into a table using Format-Table

When working with PowerShell and using a (get-command | fl or format-list) you will receive a whole list of information which sometimes can be difficult to digest as shown below. In most cases normally you are only after one or two peices of key information

Get-SPOSite | Format-List

Using Format-List or LT you can specify the required information into something a bit more readable.

For example, I am currently working Get-SPOSite (SharePoint Online Sites) and I would like to know if any of the sites have sharing capabilities and site defined sharing capabilities.

# Command
Get-SPOSite | Select-Object -Property URL,SharingCapability,SiteDefinedSharingCapability | ft
Get-SPOSite | Select-Object -Property URL,SharingCapability,SiteDefinedSharingCapability | ft

As you can see from the above image the output for the required fields is more readable to my needs. You can use this approach for many different scenarios and maybe within a technical script you are writing for a deployment or an action.


Regards

The Author – Blogabout.Cloud

Office365 and PowerShell DSC? Whats this all about

Office365 and PowerShell DSC? Whats this all about

Just come across an interesting blog post about Office365DSC Module and like a kid in the candy store. Just had to have it and start playing

The module has been created by a number of Microsoft Premier Field Engineers (PFE’s) and its very much in the earlier stages but supports the following.

  • O365Group: Office 365 Groups (Security, Distribution List, Mail enabled and Office 365)
  • O365User: Office 365 User and Licenses
  • SPOSite: SharePoint Online site collection

The blog is quite vague of information but the goal is to make the community aware that the effort is currently undergoing, and that if people want to contribute to it, that they are encouraged to report issues, comments/feedback or to fork and submit Pull Requests to help out with the code base.

https://GitHub.com/Microsoft/Office365DSC

To install the Early Preview, run the following line of Powershell

install-module – Name Office365DSC -AllowPrerelease

The Author – Blogabout.Cloud



Microsoft Teams PowerShell Module Updates (Version 0.9.6 now available)

Microsoft Teams PowerShell Module Updates (Version 0.9.6 now available)

Microsoft have recently released an update to the Microsoft Teams powershell module, in this update we see 3 new exciting additions allowing more control for your Microsoft 365 Global Adminstrator or dedicated Microsoft Teams Service Administrator.

New-Team -Owner Parameter

You can now create Microsoft Teams using the Owner parameter

Edit all Teams settings on all Teams without ownership

Now as a Microsoft 365 Global Admin or Microsoft Teams Service Admi, you can edit all setting within a Microsoft Team located within your tenant.

What no licence require?

The administration account no longer requires a Microsoft Teams Licence in order to use the PowerShell Module

So now lets update Microsoft Teams PowerShell module.

I have created the following script which will check your client machine to see what version is installed and install the latest version.

Detect, Remove, Destroy and Upgrade your Microsoft Teams Module`

Regards

The Author – Blogabout.Cloud

Collect Skype for Business Online call data with ease – Powershell

Collect Skype for Business Online call data with ease – Powershell

Collecting Skype for Business Online call data has now got a little bit more easier with Get-SFBOCallData.ps1. This script is designed to leverage the cxdcalldata module created by Jason Slane at Microsoft, for information about the please visit the below link.

https://www.powershellgallery.com/packages/CxdCallData/1.2.4.2

The script

Check if cxdcalldata module exists on the client machine

  • Install module, if it doesnt exist
  • If exist, update with latest version located online

Specify report Start and End date

  • Specify Start Date

Specify report Start and End date

  • Specify Start Date

MFA or Not MFA that is the question

If option 2 is selected, there are less steps

  • Prompt for Skype for Business Online Admin details
  • Report is generated and placed on Desktop

If option 1 is selected, there are a lot more steps due to MFA being enabled.

  • Check Skype for Business Online Connector is installed
    • If not, Connector will be downloaded and installed
  • Prompt for User Principal Name of Skype for Business Online Admin Account
  • Provide your password details

  • Authenticate to MFA
    • This will create the MFA session to Skype for Business Online

  • New-CsOnlineSession will be created and all cmdlets will be imported

  • You will be prompted for your Skype for Business Admin Account again, this is a requirement of the powershell module.

  • Reports will now be generated and placed on your desktop

This concludes the process to require the following reports

  1. All Audio Calls
  2. Client Versions
  3. Federated Communications
  4. Federated Communications Summary
  5. User Devices
  6. User Summary

Download Script

Get-SfBOCallData (19 downloads)

Regards,

The Author – Blogabout.Cloud

What version, ring and enviroment am I apart of in Microsoft Teams?

What version, ring and enviroment am I apart of in Microsoft Teams?

How do I know what version of Microsoft Teams Client I am running?
How do I know what ring I am apart of?
How do I know what environment I am apart?

Enter…

Get-Content $env:UserProfile”\AppData\Roaming\Microsoft\Teams\settings.json” | ConvertFrom-Json | Select Version, Ring, Environment

Regards

The Author – Blogabout.Cloud

Bulk Enable Exchange Online Archiving – PowerShell Script

Bulk Enable Exchange Online Archiving – PowerShell Script

This script enables the Online Archiving Mailbox for users in Exchange Online. The script will generate the log and error outputs by checking if the users exists in Exchange Online based on the information provided in the csv file.

The script needs to be run from the On-prem Exchange environment.

Example of script block, this demonstrates the actions taken within the script to check the csv file row by row and output if sucessful or not.

Foreach ($row in $csv)
{
if (get-remotemailbox -identity $row.mailboxemail)
{
get-remotemailbox -identity $row.mailboxemail | enable-remotemailbox -archive
Add-Content -Path $logfilepath -Value ('{0} SUCCESS: Mailbox {1} enabled for Archive' -f (Get-Date), $row.mailboxemail)
}
else {
$outputfiles |%{ Add-Content -Path $_ -Value ('{0} ERROR: Mailbox {1} not enabled for Archive {2}' -f (Get-Date), $row.mailboxemail, $_.exception.message)}
}
}

Example of csv file used; please note the heading mailboxemail is very important as the script checks for this heading.

To view if an Online archive has been activated in the Mailbox, run the following cmdlets.

It is very easy to enable Online Archiving and verify afterwards if it has been enabled.

Download this script

Enable-RemoteMailbox -Archive (64 downloads)

Regards

Author – Blogabout.Cloud

Populate your Exchange Mailbox with dummy data before migrating to Exchange Online or Vice Versa

Populate your Exchange Mailbox with dummy data before migrating to Exchange Online or Vice Versa

Have you ever had a requirement where you need to populate an Exchange or Office 365 Mailbox with data? This is general a common ask when looking to migrate to/from Exchange Online and can be time consuming if your manually sending emails. The following script has been modified to provide an easy way of sending data using the Send-MailMessage PowerShell cmdlet and also capture better error logging.

I would like to thank Andreas Hähnel for his efforts in creating the original script.

This modified script using Try and Catch variables to ensure the specified File location contains documents which can be used and also provide Help on each parameter. Add-MailboxData.zip (128 downloads)

Add-MailboxData.zip (128 downloads)

Check out the video demonstration below

Detect, Remove, Destroy and Upgrade your Microsoft Teams Module`

Detect, Remove, Destroy and Upgrade your Microsoft Teams Module`

The following script has been designed to detected, remove and upgrade your Microsoft Team PowerShell Module.

How does it work?

The script will initial check if you are running a PowerShell window with evaluated privileges as this is a prerequisites to running this script. Once Administrative privileges have been detected it will compare the installed version of the Microsoft Teams module against the online version located the PSGallery. If the online is greater than the installed version, the script will use the uninstall-module cmdlet to remove the previous version and install the latest version from the PSGallery.

If your installed version matches the online version no actions will be taken.

This script also includes an output of the installed client version of Microsoft Teams with its Ring and Environment information as shown below

Download this script today

Detect-MicrosoftTeams-Version (497 downloads)

Regards

The Author – Blogabout.Cloud