Skip to content

Instantly share code, notes, and snippets.

View jschlackman's full-sized avatar

James Schlackman jschlackman

View GitHub Profile
<#
.SYNOPSIS
Starts automatic update for all installed Visual Studio instances.
.DESCRIPTION
Gets details of all current Visual Studio installs on this machine and attempts to run the updater for each installation found.
This script can be run using Task Scheduler or an RMM to periodicially check for and apply Visual Studio updates.
Author: James Schlackman <[email protected]>
Last Modified: March 6 2025
<#
.SYNOPSIS
Lists all Azure storage accounts with their encryption settings.
.DESCRIPTION
Author: James Schlackman <[email protected]>
Last Modified: Oct 29 2025
.PARAMETER AzTenant
Tenant domain name or ID
<#
.SYNOPSIS
Searches for and updates Jira users in preparation for SSO by changing their login name to match their email address.
.DESCRIPTION
Uses the Jira Server API (via the JiraPS module) to bulk update the usernames of selected Jira users so that their login name matches their email address, allowing them to be correctly logged in via SSO mechanisms such as SAML.
Author: James Schlackman
Last Modified: January 29 2025
@jschlackman
jschlackman / ConnectWise Access Management webhook payload for Teams.json
Created January 18, 2024 17:52
JSON payload for webhooks sent from ScreenConnect to Teams for the ConnectWise Access Management feature. This is an alternative to the official integration, allowing more flexibility in terms of which requests are forwarded and using more concise and modern adaptive card formatting.
{{
"type": "message",
"attachments": [
{{
"contentType": "application/vnd.microsoft.card.adaptive",
"contentUrl": null,
"content": {{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4",
# Name: Remove-ADUserAdmins.ps1
# Author: James Schlackman
# Last Modified: Dec 19 2023
# Clear individual non-local (e.g. AD) users from the local administrators group
# Notes:
# - Uses CIM to retrieve local group membership as Get-LocalGroupMember does not work without DC connectivity
# - Must be run in 64-bit PowerShell Host. The LocalAccounts module is not available in 32-bit PowerShell on a 64-bit system.
@jschlackman
jschlackman / Start-ExternalBackup.ps1
Created November 12, 2023 02:01
Runs an external backup executable, logs output, and sends email notifications. This example runs the FastGlacier console application to sync a local folder hierarchy with S3 Glacier storage.
# Name: Start-ExternalBackup.ps1
# Author: James Schlackman
# Last Modified: Nov 11 2023
# Runs an external backup executable, logs output, and sends email notifications.
Param(
# External backup executable
[Parameter()] [String] $BackupExe = "$env:ProgramFiles\FastGlacier\glacier-con.exe",
# Backup job arguments to pass to executable
# Name: Get-EntraGuestDetails.ps1
# Author: James Schlackman
# Last Modified: Oct 27 2023
#
# Audits guest users in Entra ID, optionally filtered by start and/or end dates for when users were invited to the directory.
#
# Last sign in date for Entra requires an Entra ID Premium license.
#Requires -Modules Microsoft.Graph.Authentication, Microsoft.Graph.Groups, Microsoft.Graph.Users
# Name: Remove-LegacyLAPSData.ps1
# Author: James Schlackman
# Last Modified: Oct 24 2023
# Clears the legacy LAPS attributes from specified computer accounts in AD. Use this to remove old password
# data from AD once Windows LAPS is deployed and storing password data in Entra ID.
#Requires -Modules ActiveDirectory
param (
<#
Name: Get-OldADMachines.ps1
Author: James Schlackman
Last Modified: May 20 2024
1. Finds computer accounts that have been inactive for more than specified time period and optionally disables them
2. Finds computer accounts that have been disabled for more than specified time period and optionally deletes them
#>
#Requires -Modules ActiveDirectory
<#
.SYNOPSIS
Lists all defined network interfaces with their private IPs and VM allocations.
.DESCRIPTION
Author: James Schlackman <[email protected]>
Last Modified: Mar 6 2025
.PARAMETER AzTenant
Azure tenant ID to retreive network interface details from. Takes precedence over AzSubscription if specified.