Author: Matthew Dowst

Azure

Start Azure VM and Open Bastion

The following snippet will check if a VM is turned on, and if not start it, then launch the Bastion connection window in Edge. $VM = Get-AzVM -Name 'LN-TCTester-01' -Status if($VM.PowerState -eq 'VM deallocated'){ $VM | Start-AzVM } Start-Process -Path msedge -ArgumentList "https://portal.azure.com/#/resource$($VM.Id)/bastionHost"
Automation

Automation Authoring

When I started writing my book, Practical Automation with PowerShell, I discovered how much time and energy is required to keep everything up to date. For example, if I changed a piece of code in the text, I had to make sure the code sent to the publisher and uploaded to GitHub matched. Not to mention the style guidelines I...
Uncategorized

Compare Images

The following function can be used to compare two pictures based on size and a pixel-by-pixel comparison. Function Compare-Images { param( $ReferenceFile, $DifferenceFile ) $ReferenceImage = [System.Drawing.Bitmap]::FromFile($ReferenceFile) $DifferenceImage = [System.Drawing.Bitmap]::FromFile($DifferenceFile) if ($ReferenceImage.Size -ne $DifferenceImage.Size) { Write-Host "Images are of different sizes" $false } else { # Set the difference to 0 [float]$Difference = 0; # Parse through each pixel for...
Uncategorized

PowerShell Weekly Redesign!

I am pleased to announce that PowerShell Weekly has been redesigned and moved to its own sub-site psweekly.dowst.dev. All past posts and links are available there as well. What’s New New look and feel Thumbnails for every link Improved searching of the 2,000+ links Search by keyword, date, author, category Custom RSS Feed specifically the links
AzureSecurity

Find Java Based Azure App Services

A quick Azure PowerShell command to locate any Java based Azure App Services and Functions so you can check if they are vulnerable to the CVE-2021-44228 Apache Log4j2 vulnerability. Get-AzWebApp | ForEach-Object{ Get-AzWebApp -ResourceGroupName $_.ResourceGroup -Name $_.Name | Select-Object -Property Name, @{l='JavaVersion';e={$_.SiteConfig.JavaVersion}}, ResourceGroup, Id } | Format-Table
Azure

Resubmit Azure Automation Runbook Job

This snippet will allow you to re-run any Azure Automation Runbook job with the same parameters and in the same context (Azure or Hybrid Worker Group). # Set the variables from the previous job $AutomationAccountName = '' $ResourceGroupName = '' $JobId = '' # Get the previous job $AutoAccount = @{ AutomationAccountName = $AutomationAccountName ResourceGroupName = $ResourceGroupName } $PreviousJob =...