PowerShell – SharpCompress and untar

#needed to untar a tar.gz file and found the SharpCompress package, which will do it all! #region InstallPackage SharpCompress if  (-NOT (Get-Package -Name ‘SharpCompress’ -ErrorAction SilentlyContinue)) { #need to install it if (Find-Package -Name ‘SharpCompress’ -ErrorAction SilentlyContinue) { Find-Package -Name SharpCompress  | Install-Package -Verbose } else { if (-NOT (Get-PackageSource -Name ‘nuGet.org v2’ -ErrorAction SilentlyContinue))…


PowerShell – Get-Credential and certificates

Matthew Bongiovi  had a discussion on Get-Credential and how it works. So useful, that I thought I’d cut/paste it here so that you and I can refer to it in future! See below:   The Get-Credential cmdlet generates the prompt using the CredUIPromptForCredentials function. The documentation for that function says: “In the case of credentials…


PowerShell Azure – find a sku offer publisher

# who is the publisher for FreeBSD? What offer? What sku? # Find-AzureSKU bsd function Find-AzureSKU  {   Param ([parameter(Mandatory=$true,HelpMessage=’Enter a partial string of the  product’)]   [String] $sku,   [String] $location=’australiaeast’  )   $publishers = Get-AzureRmVMImagePublisher -location $location   foreach ($publisher in $publishers) {      $offers=Get-AzureRmVMImageOffer -location $location `        …


PowerShell – Try/Catch/Retry

# try/catch/fix and continue $tries = 0 while ($tries -lt 2) {    try {      $tries++      $ErrorActionPreference=’Stop’      # code I am testing goes here – perhaps with a param argument that needs changing      $tries++    }   catch { #fixup code goes here      $ErrorActionPreference=’SilentlyContinue’ # and the loop will now…


PowerShell – DSC Environment Analyser (DSCEA)

Awesome! An  open source release of DSC Environment Analyzer (DSCEA), a PowerShell module that uses the declarative nature of Desired State Configuration to scan systems in an environment against a defined reference MOF file and generate compliance reports as to whether systems match the desired configuration. For more information, check out: https://blogs.technet.microsoft.com/ralphkyttle/2017/03/21/introducing-dscea/ https://github.com/Microsoft/DSCEA https://www.powershellgallery.com/packages/DSCEA  


DSC WebDownloadManagerGetActionFailed event id 4252

WebDownloadManagerGetActionFailed  event id 4252 C:\ Update-DscConfiguration -CimSession ms2 -Wait -Verbose VERBOSE: Perform operation ‘Invoke CimMethod’ with following parameters, ”methodName’ = PerformRequiredConfigurationChecks,’className’ = MSFT_DSCLocalConfigurationM anager,’namespaceName’ = root/Microsoft/Windows/DesiredStateConfiguration’. VERBOSE: An LCM method call arrived from computer MS2 with user sid S-1-5-21-3841426147-920288206-1542301449-500. VERBOSE: [MS2]:                            [] Executing Get-Action with configuration ‘s checksum: 666345C3DEE430EF11DBE636BB2BDD373457A9783F8B73AD64FA7316742EC8E9. VERBOSE: [MS2]:                            [] Executing Get-Action with…


PowerShell – native on Ubuntu

# all the things I did when installing DotNetCore and PowerShell for Linux onto an Ubuntu server #login and install various odds-and-ends sudo apt-get install lynx sudo apt-get install emacs sudo apt-get install libunwind8 libicu55 sudo apt-get install firefox sudo apt-get update # install the hyper-v aware kernel stuff (may not need it, but what…


PowerShell – Out-ColourMatch

#Out-ColourMatch.ps1 Set-StrictMode -Version Latest function Out-ColourMatch { <# .Synopsis Outputs coloured matches from Select-String .Description Outputs the matched string, with the match section(s) highlighted in colour. .INPUTS a [Microsoft.PowerShell.Commands.MatchInfo] object. .OUTPUTS None. Write-Host displays the colourised string. .Example Get-Content .\LoremIpsum.txt | Select-String -Pattern ‘dolor’ -AllMatches | Out-ColourMatch .Example $b = Get-Content .\LoremIpsum.txt | Select-String -Pattern…


Azure CLI – the cross-platform way

After having a ton of fun with raw PowerShell in both ASM (‘Classic’) and the far more sensible ARM models, I then discovered the stunning simplicity of JSON templates. See the Quickstart gallery here: https://github.com/Azure/azure-quickstart-templates Combining the templates and DSC gives ‘infrastructure as code’ in a surprisingly simple/elegant way. However this week I spent time…


PowerShell – Analogue Clock

# analogue-clock.ps1 # Set-StrictMode -Version latest Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms $DegreesToRadians = [Math]::PI/180 $PSicon = [Drawing.Icon]::ExtractAssociatedIcon((Get-Command -Name powershell).Path) ################################# function Initialize-Clock() { # create the form to display the clock $script:form = New-Object  -TypeName Windows.Forms.Form $script:form.Icon = $PSicon $script:form.Text = ‘Analogue Clock’ $script:form.Height = 700 $script:form.Width = $form.Height $script:form.BackColor=[Drawing.Color]::White $script:form.Location.X = 1000 $script:form.TransparencyKey…