I've released another PowerShell module; this one is called MSGraphMail and it's a simple PowerShell Graph API email client implementation which was requested by one of our MSP customers to help with transitioning their setup from a legacy SMTP server to Microsoft 365 without redeveloping a very bespoke workflow!
15 posts tagged with "PowerShell"
View All TagsPushing a web tab into your Customers' Teams environment.
About this script
HaloPSA is improving at a phenomenal rate - one of the latest enhancements relates to embedding the "customer portal" inside Teams for easier access by customers - this is early days for this enhancement to Halo and at present there isn't really a way to push this tab into customer environments... Until now!
Using the script below you can push any website as a tab to your customers' Teams environments. First a couple of configuration pre-requisites.
- You'll need to have setup the Secure App Model (Thanks Gav for the superb write-up!)
- You'll need to know the name of the Team and Channel you want to deploy the tab - currently the script will use the same details for all customers!
Packaging the latest Adobe Reader DC as an IntuneWin file
If you're using or managing this for Windows 11 you can now deploy Adobe Acrobat Reader DC using the Microsoft Store. This is preferable for many reasons mostly because this way of doing it with IntuneWin files is a complete pain in the ass.
About this script
If you're not familiar with the IntuneWin format and what it's used for/when it's used there's some good background reading from Microsoft here: Prepare a Win32 app to be uploaded to Microsoft Intune | Microsoft Docs.
In short, it's a format designed to package Windows application installers for deployment with Intune.
This post contains a script which downloads the latest version of the Adobe Reader DC installer and turns it into an IntuneWin package for Intune deployment.
Handling Base64 encoded strings with PowerShell
I don't handle Base64 strings very often - when I do I find myself searching for instructions every time. So I finally decided to add two small helper functions to my PowerShell profile.
function ConvertFrom-Base64String ([String]$InputString, [System.Text.Encoding]$Encoding) {
$DecodedString = $Encoding.GetString([System.Convert]::FromBase64String($InputString))
$DecodedString
}
function ConvertTo-Base64String ([String]$InputString, [System.Text.Encoding]$Encoding) {
$StringBytes = $Encoding.GetBytes($InputString)
$EncodedString = [System.Convert]::ToBase64String($StringBytes)
$EncodedString
}
You can quickly edit your PowerShell profile file by typing code $PROFILE
into your PowerShell window - this will pop up VS Code with your profile ready to edit.
Monitoring OneDrive status with PowerShell, CyberDrain and NinjaOne
This post uses code from CyberDrain
Click the link below to check out the original post on CyberDrain.com and support Kelvin's fantastic work for the MSP community.
About this script
So firstly, if you haven't already, hit the giant orange button above to read the original blog post on CyberDrain.com to understand what this script is doing!
The problem with NinjaOne
Many, if not most RMM platforms can run a script to monitor system state. NinjaOne is no different here - but there's a subtle irregularity in their approach that makes this complicated.
Most RMM platforms let you extract the contents of a variable from the script you run as a monitor - Ninja doesn't. It can read from the output of the script but that's all.
The fix
This script was updated after being published, if you're using it please compare the version you have with the version available here.