Skip to content

Instantly share code, notes, and snippets.

View aaronparker's full-sized avatar
👨‍💻

Aaron Parker aaronparker

👨‍💻
View GitHub Profile
@aaronparker
aaronparker / text.xml
Created January 29, 2023 23:11
English translation from the NuPhy Console - `C:\Program Files (x86)\NuPhy Console\52\text.xml`
<?xml version="1.0" encoding="utf-16"?>
<root>
<config>
<tc_tipfordevcfg>Please set the switch to Windows</tc_tipfordevcfg>
<tc_config>Configuration</tc_config>
<tc_exit>Quit</tc_exit>
<tc_version>Driver version:</tc_version>
<tc_web></tc_web>
<tc_ok>OK</tc_ok>
<tc_restore>Reset</tc_restore>
@aaronparker
aaronparker / Install-MicrosoftFSLogixApps.ps1
Created February 8, 2023 04:20
Downloads and installs the latest version or a specific version of the Microsoft FSLogix Apps agent
#Requires -Modules Evergreen
<#
.SYNOPSIS
Installs the Microsoft FSLogix Apps agent
#>
[CmdletBinding()]
param (
[System.String] $Path = "$Env:SystemDrive\Apps\Microsoft\FSLogix",
[System.String] $Version
)
@aaronparker
aaronparker / Export-GPO.ps1
Created May 1, 2023 14:06
Export GPO objects from a lab/test domain and zip
<#
Export GPO objects from a lab/test domain and zip
#>
# Local path over RDP connection
$Destination = "C:\Backup"
# Create backups, zip file and copy to client path
$Path = "C:\Temp\Prod-GPO"
$Domain = "home.stealthpuppy.com"
@aaronparker
aaronparker / Import-GPO.ps1
Created May 1, 2023 14:06
Import GPO backups into a new domain
# Import Group Policy Objects
$Path = "C:\Temp"
$Destination = "C:\Temp\Prod-GPO"
Expand-Archive -Path "$Path\Prod-GPO-backup.zip" -DestinationPath $Path
$BackupList = Get-ChildItem -Path $Destination -Directory -Exclude "manifest.xml"
foreach ($item in $BackupList) {
[System.Xml.XmlDocument] $XmlFile = Get-Content -Path "$($item.FullName)\gpreport.xml" -ErrorAction "Stop"
$BackupID = $item.Name -replace "{|}", ""
$BackupID = $item.Name -replace "{", "" -replace "}", ""
$GpoName = "Test-$($XmlFile.GPO.Name)"
@aaronparker
aaronparker / Install-WindowsTerminal.ps1
Last active September 26, 2024 21:26
Install Windows Terminal on Windows Server
Install-Module -Name "Evergreen"
$Path = "C:\Temp\Terminal"
New-Item -Path $Path -ItemType "Directory"
$App = @{
Version = "2.8.6"
URI = "https://globalcdn.nuget.org/packages/microsoft.ui.xaml.2.8.6.nupkg"
}
$OutFile = Save-EvergreenApp -InputObject $App -LiteralPath $Path
Rename-Item -Path $OutFile.FullName -NewName "microsoft.ui.xaml.zip"
$ZipFile = Get-ChildItem -Path $Path -Recurse -Include "microsoft.ui.xaml.zip"
<#
.SYNOPSIS
Installs the latest Microsoft Teams v2 per-machine for use on Windows 10/11 multi-session or Windows Server.
.DESCRIPTION
This script installs the latest version of Microsoft Teams v2 per-machine.
It downloads the Teams v2 Bootstrap installer and the Teams v2 MSIX installer from the specified URIs and installs them based on the operating system.
It also sets the required registry value for IsWVDEnvironment and optimizes Teams by disabling auto-update and installing the Teams meeting add-in.
.PARAMETER Path
@aaronparker
aaronparker / Build-macOSInstallers.sh
Last active February 14, 2025 10:28
Create a bootable USB drive with 13 macOS installers from Mountain Lion to Sequoia
#!/bin/zsh
# Create a bootable disk with multiple macOS installers
# Use at your own risk - this script is provided as-is and does not come with any warranty
# No error checking is performed and the script assumes the target disk is /dev/disk6
# https://github.com/aaronparker
# https://bsky.app/profile/stealthpuppy.com
# Partition and format the target disk - this is a 128GB disk
# Validate the target disk is /dev/disk6 before running - diskutil list
# The last partition will use the remaining space regardless of the size specified
@aaronparker
aaronparker / Remove-AppXApps.ps1
Last active March 25, 2025 00:35
Removes unnecessary AppX packages and specific registry keys related to Outlook and DevHome updates.
<#
.SYNOPSIS
Removes unnecessary AppX packages from the system while preserving a list of safe packages.
.DESCRIPTION
This script removes AppX packages from all users and provisioned packages on the system, except for those specified in `$SafePackages`.
The default list of packages provide baseline functionality and should work in desktops using FSLogix Profile Container.
It also handles package removal differently based on whether the system is running Windows 10 or Windows 11.
Additionally, it deletes specific registry keys related to Outlook and DevHome updates if the script is run with elevated privileges.