Skip to content

Instantly share code, notes, and snippets.

@mawiseman
mawiseman / generate-sitemap.ps1
Last active July 4, 2025 05:27
Generates a Sitemap of a site by scraping all the URLs on each page it finds. .\generate-sitemap.ps1 https://yousite.com
<#
.SYNOPSIS
Generates a sitemap.xml file for a website by crawling its pages concurrently.
.DESCRIPTION
This script starts crawling from a specified base URL, discovers
internal links, and maintains a list of found (unprocessed) and
processed URLs in text files. It filters URLs to ensure only
those belonging to the same domain are processed and allows
excluding URLs that contain specific path patterns.
Import-Module WebAdministration
$results = Get-ChildItem "IIS:\SslBindings\" | ForEach-Object {
$store = $_.Store
$thumbprint = $_.Thumbprint
$cert = Get-ChildItem -Path Cert:\LocalMachine\$store | Where-Object { $_.Thumbprint -eq $thumbprint }
[PSCustomObject]@{
Host = $_.Host;
@mawiseman
mawiseman / UrlRewriteRules.config
Created February 28, 2023 22:11
Default web.config rewrite rules
<rule name="ForceWWW" stopProcessing="true">
<match url=".*" ignoreCase="true" />
<conditions>
<add input="{HTTP_HOST}" pattern="^yoursite.com" />
</conditions>
<action type="Redirect" url="https://www.yoursite.com/{R:0}" redirectType="Permanent" />
</rule>
<rule name="HTTPtoHTTPS" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
@mawiseman
mawiseman / powershell-convert-svg-to-png
Created May 17, 2021 06:24
Users powershell to convert batch convert svg to png
cls
# CONSTANTS
$inkscapePath = "C:\Program Files\Inkscape\bin\inkscape.com"
# Get files to process
$sourcePath ="[[UPDATE WITH YOUR PAT]]"
$sourceFiles = Get-ChildItem -Path $sourcePath -File -Recurse -Filter *.svg
@mawiseman
mawiseman / powershell-generate-gallery.ps1
Created May 17, 2021 06:23
Create a quick html page displaying all images under the target irectory
@mawiseman
mawiseman / powershell-iis-and-default-modules.ps1
Created November 18, 2019 00:26
Installs the required modules to run IIS (and some other i use for development)
# Allow remote scripts
Set-ExecutionPolicy AllSigned
# Install SqlServer powershell modules
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-Module -Name SqlServer
# Misc
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All
@mawiseman
mawiseman / chocolatey-packages.config
Last active October 15, 2021 03:23
Chocolatey package file to install default applications
<?xml version="1.0" encoding="utf-8"?>
<!-- choco install chocolatey-packages.config -y -->
<packages>
<!-- Windows Features -->
<package id="webdeploy" />
<package id="urlrewrite" />
<!-- Default Apps -->
<package id="googlechrome" />
<package id="firefox" />
@mawiseman
mawiseman / sxa-regenerate-optimised-assets.ps1
Last active August 20, 2024 14:56
Sitecore SXA regenerate optimised files
# Run this script in Sitecore Powershell Extensions
# It will delete the minifed files from master and publish the deletions to web
# Next time the site is visited they should be re-generated (if they aren't check your settings http://bit.ly/2TfrcfC)
# TODO: When publishing, there might be a better way to target folders in the media library instead of the hardcoded list
$masterItems = Get-Item -Path master: -Query "/sitecore/media library//*[@@key='optimized-min']"
$webItems = Get-Item -Path web: -Query "/sitecore/media library//*[@@key='optimized-min']"
Write-Host "Master Items: $($masterItems.length)"
@mawiseman
mawiseman / delete-azure-deployments.ps1
Last active May 2, 2019 07:13
Delete Azure Deployments
# README
# This script will delete all deployments in an Azure resource group older than X Days
# You can use this script to count hom many deployments exist: Get-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroup | measure
# Variables
$subscriptionName = '{{azure subscription name}}'
$resourceGroupName = '{{azure resource group name}}'
$daysOldToDelete = -150
@mawiseman
mawiseman / SQLServer2016ConfigurationFile.ini
Last active January 12, 2021 03:14
Automate SQL Server 2016 install with Management Studio
;SQL Server 2016 Configuration File
[OPTIONS]
; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.
ACTION="Install"
; Specifies that SQL Server Setup should not display the privacy statement when ran from the command line.
SUPPRESSPRIVACYSTATEMENTNOTICE="False"