Hello, I'm

Harry Caskey

Technology Professional

Consultant • Systems Engineering • Cloud Architecture • Cybersecurity

Scroll

About Me

Technology professional based in Pittsburgh with nearly two decades of experience spanning systems engineering, cloud architecture, and cybersecurity.

My journey into tech started in an unexpected place — the arts. I studied ceramics, painting, sculpture, and digital media before discovering my passion at the intersection of creativity and technology. That background taught me to approach complex technical challenges with a creative mindset.

I hold industry-leading certifications in security and cloud platforms, and I'm driven by a simple philosophy: Learn, Acquire, then Apply.

When I'm not working, you'll find me playing volleyball, softball, exploring new languages, or tinkering with code.

20+ Years in Tech
11 Certifications
6+ Languages Explored

Certifications

Industry-recognized credentials in security, cloud, and identity management. Click any card to learn more.

ISC²

CISSP

Earned Sep 2022 Expires Sep 2028
Tap for details
ISC²

CISSP

The gold standard in cybersecurity certification. Validates expertise across 8 security domains including risk management, asset security, network security, and software development security. Recognized globally by enterprises and government agencies.

ID: 948495
Tap to flip back
Microsoft

Azure Administrator Associate

Earned Feb 2024 Expires Feb 2027
Tap for details
Microsoft

Azure Administrator Associate

Proves proficiency in managing Azure cloud services including compute, storage, networking, and security. Covers identity management, governance, monitoring, and implementing virtual networks.

ID: 13A3075A7332990A
Tap to flip back
Microsoft

Identity and Access Administrator Associate

Earned Sep 2022 Expires Sep 2026
Tap for details
Microsoft

Identity and Access Administrator Associate

Validates expertise in designing and implementing identity and access management using Azure AD. Covers authentication methods, conditional access, identity governance, and privileged access management.

ID: I417-8044
Tap to flip back
Microsoft

Power Platform Fundamentals

Earned Jun 2022 No Expiration
Tap for details
Microsoft

Power Platform Fundamentals

Demonstrates understanding of Microsoft Power Platform capabilities including Power Apps, Power Automate, Power BI, and Power Virtual Agents. Covers business value and platform components.

Tap to flip back
Microsoft

Azure AI Fundamentals

Earned Jun 2022 No Expiration
Tap for details
Microsoft

Azure AI Fundamentals

Validates foundational knowledge of machine learning and AI concepts on Azure. Covers computer vision, natural language processing, conversational AI, and responsible AI principles.

Tap to flip back
Microsoft

Security, Compliance, and Identity Fundamentals

Earned May 2022 No Expiration
Tap for details
Microsoft

Security, Compliance, and Identity Fundamentals

Demonstrates understanding of security, compliance, and identity concepts across Microsoft cloud services. Covers Zero Trust, shared responsibility, encryption, and compliance frameworks.

Tap to flip back
Microsoft

Microsoft 365 Fundamentals

Earned May 2022 No Expiration
Tap for details
Microsoft

Microsoft 365 Fundamentals

Validates knowledge of Microsoft 365 cloud productivity services including collaboration tools, endpoint management, security, and licensing. Covers Teams, SharePoint, Exchange, and Intune.

Tap to flip back
Microsoft

Azure Data Fundamentals

Earned Apr 2022 No Expiration
Tap for details
Microsoft

Azure Data Fundamentals

Demonstrates foundational knowledge of core data concepts and Azure data services. Covers relational and non-relational data, analytics workloads, Cosmos DB, and Azure SQL.

Tap to flip back
Microsoft

Azure Fundamentals

Earned Sep 2021 No Expiration
Tap for details
Microsoft

Azure Fundamentals

The entry-level Azure certification covering cloud concepts, core Azure services, security, privacy, compliance, and pricing. Foundation for all other Azure certifications.

Tap to flip back
CompTIA

Security+

Earned Apr 2006 No Expiration
Tap for details
CompTIA

Security+

A globally recognized baseline cybersecurity certification. Validates skills in threat assessment, risk management, incident response, network security, cryptography, and identity management.

ID: KJPVSC7F2H11Q7WX
Tap to flip back
Microsoft

Change Agent Nonprofit Champion Badge

Earned Sep 2025 No Expiration
Tap for details
Microsoft

Change Agent Nonprofit Champion Badge

Recognizes contributions to nonprofit technology initiatives through Microsoft Change Agent program. Demonstrates commitment to using technology for social good.

Tap to flip back

The Lab Archive

A collection of scripts from over the years — refactored, modernized, and shared for posterity.

Install-RSATFeatures

PowerShell
Oct 7, 2021 Deployment

Detects any missing Remote Server Administration Tools (RSAT) capabilities on Windows 10/11 and installs them automatically. Enumerates all RSAT* Windows capabilities and adds any that are not present, then verifies the final state.

View on GitHub

Test-GroupPolicyAge

PowerShell
Apr 13, 2021 Systems

Checks when Group Policy was last applied by reading the machine extension timestamps from the registry and the Registry.pol last-write time. Returns true if either value exceeds a configurable threshold (default 30 days). Useful for compliance checks and monitoring.

View on GitHub

Install-VSCodeEnterprise

PowerShell
Dec 11, 2019 Deployment

Enterprise deployment script for Visual Studio Code with automatic updates disabled. Handles silent uninstall of previous versions, clean install with configuration, and replaces the product.json to strip the update URL. Designed for Configuration Manager or other deployment tools.

View on GitHub

Repair-MECMClient

PowerShell
Dec 6, 2019 MECM

Performs a clean removal and fresh Installation of the Configuration Manager client. Copies ccmsetup binaries from a local cache or UNC path, uninstalls the existing client, reinstalls with specified site code and management point, then triggers all policy and inventory cycles.

View on GitHub

Uninstall-SoftwareByName

PowerShell
Dec 6, 2019 Systems

Silent registry-based software uninstaller. Searches both 64-bit and WOW6432Node registry paths, auto-detects MSI vs EXE installers, and applies the correct silent switches. Designed for Configuration Manager deployment scripts and automation.

View on GitHub

Remove-LegacyWindows7Systems

PowerShell
Nov 27, 2019 Systems

Decommissions Windows 7 systems from Active Directory and Configuration Manager. Searches AD for Win7 computer objects, disables and moves them to a decommission OU, then removes the device records from CM. Full lifecycle cleanup for legacy OS decommissioning.

View on GitHub

Save-PowerConfiguration

PowerShell
Oct 29, 2019 Systems

Captures and restores the active Windows power scheme during OS upgrades. Run with -Capture before the upgrade to export the current scheme, then -Restore after to import it back. Designed for Configuration Manager task sequences.

View on GitHub

Get-TaskSequenceDiskNumber

PowerShell
Oct 23, 2019 MECM

Detects the primary disk number during a Configuration Manager task sequence and writes it to a TS variable. Most hardware defaults to disk 0, but edge cases exist. This ensures the Format Disk step always targets the correct drive.

View on GitHub

Suspend-BitLockerTemporarily

PowerShell
Oct 23, 2019 Security

Temporarily suspends BitLocker protection on the C: drive for a specified number of reboots. Useful before BIOS updates, firmware upgrades, or OS upgrades that would otherwise trigger BitLocker recovery mode. Protection resumes automatically after the reboot count expires.

View on GitHub

Test-VpnConnection

PowerShell
Nov 20, 2018 Networking

Detects whether a VPN connection is currently active by querying CIM for network adapters matching common VPN client names. Works in environments where Get-VpnConnection isn't available. Returns true/false for easy use in conditional logic.

View on GitHub

Add-SystemsToCollection

PowerShell
Nov 1, 2018 MECM

Reads a list of system names from a text file and adds each one as a direct membership rule to the specified MECM (formerly SCCM) device collection. Validates each device exists before adding and logs the results. Useful for bulk onboarding machines into deployment or patching collections.

View on GitHub

Invoke-MECMClientInstall

PowerShell
Apr 20, 2017 MECM

Comprehensive Configuration Manager client repair script — completely removes the existing client, cleans up residual files and registry keys, then performs a fresh installation with full logging. Triggers all major policy and inventory cycles after install.

View on GitHub

Restore-WindowsPhotoViewer

PowerShell
Apr 6, 2016 Systems

Registers the classic Windows Photo Viewer as an available application in Windows 10/11. Microsoft hid it in favor of the Photos app, but the DLL still exists. This script creates the necessary registry keys and file associations for common image types including .webp.

View on GitHub

Fix-GPUpdateRDPDisconnect

PowerShell
Nov 25, 2014 Systems

Prevents Remote Desktop sessions from disconnecting when Group Policy refreshes. When gpupdate runs it briefly resets the Terminal Server registry setting, dropping RDP sessions. This script enforces fDenyTSConnections to 0 so sessions survive the policy refresh.

View on GitHub

Disable-IPv6

PowerShell
Oct 7, 2014 Networking

Fully disables IPv6 on a Windows system by removing the adapter binding and setting the DisabledComponents registry key to 0xFF. Simply unchecking the binding in the adapter properties is not enough — this script handles both layers. A reboot is required afterward.

View on GitHub

Fix-TemporaryProfileInstallError

PowerShell
Oct 6, 2014 Systems

Resolves the Windows Installer error "The profile for the user is a temporary profile" introduced by security update MS14-049. Sets the SecureRepairPolicy registry value so installations proceed normally.

View on GitHub

Start-ElevatedSession

PowerShell
Jul 17, 2014 Utility

Launches a new elevated (Administrator) PowerShell session from the command line. Checks if the current session is already running elevated and only launches a new window if needed. Quick utility for those who don't want to right-click > Run as Administrator.

View on GitHub

Get-RemoteSerialNumber

PowerShell
Sep 13, 2012 Systems

Retrieves the BIOS serial number and model name from a local or remote machine using CIM. The original version used WMIC, which Microsoft has deprecated — this version uses Get-CimInstance for the same result with better reliability.

View on GitHub

Repair-MECMCacheSize

PowerShell
Aug 3, 2012 MECM

Checks the Configuration Manager client cache size and corrects it if it was reset to the default 5 GB after a client repair. Queries the CIM namespace for the cache configuration and updates it if needed. Ideal as a scheduled task or GPO startup script.

View on GitHub

Invoke-DiskPartFormat

PowerShell
Jul 29, 2012 Systems

Clears, initializes, partitions, and formats a disk using native PowerShell storage cmdlets. Replaces the manual DiskPart workflow with a safer, scriptable approach. Requires explicit confirmation because this operation destroys all data on the target disk.

View on GitHub

Remove-DisconnectedMailbox

PowerShell
Aug 13, 2010 Exchange

Finds and removes disconnected mailboxes from an Exchange server. Can target a specific mailbox database and remove all or list them for review. Originally written for Exchange 2007, but the same pattern works on Exchange 2010 through 2019.

View on GitHub

Repair-OWAVirtualDirectory

PowerShell
Apr 21, 2009 Exchange

Fixes the "Outlook Web Access did not initialize properly" error on Exchange by removing and recreating the OWA virtual directory. Common after CAS role patches or IIS resets. Originally for Exchange 2007 but the same cmdlets apply to 2010 through 2019.

View on GitHub

Roman Numeral Converter

Python
Mar 21, 2022 Algorithms

Converts Roman numeral strings to integers using a reverse iteration approach. The trick: walk the string backwards — if the current value is less than the previous, subtract it. Handles all standard subtraction pairs (IV, IX, XL, XC, CD, CM).

View on GitHub

Bitcoin Price Checker

Python
Mar 11, 2022 Automation

Grabs the current BTC/USD price from CoinGecko's free API and compares it against a target value. Uses requests with timeouts and proper error handling. Originally used the CoinDesk API, which has since been deprecated.

View on GitHub

Palindrome Checker

Python
Mar 21, 2022 Algorithms

Checks if an integer reads the same forwards and backwards. Classic LeetCode problem (#9) — uses the string reversal approach for clean, readable code. Handles edge cases like negative numbers and single digits.

View on GitHub

Volcano Map

Python
Mar 21, 2022 Data Visualization

Reads volcano data from a CSV and plots them on an interactive Folium world map. Markers are color-coded by elevation — green under 1500m, orange 1500–2500m, red above. Uses the CartoDB dark theme for contrast. Output is a standalone HTML file.

View on GitHub

Cat Reactions

Python
Aug 22, 2021 Fun

Models my cats' reactions to various stimuli — show them something and they'll respond based on category: food, play, love, or startle. Originally part of a Flask web app, pulled into a standalone module with an interactive demo mode.

View on GitHub

Get-Greeting

PowerShell
Oct 26, 2020 Utility

Interactive PowerShell greeting with timestamp. Demonstrates Read-Host, Get-Date formatting, and string interpolation. Accepts a -Name parameter to skip the interactive prompt for automation or piping.

View on GitHub

Uninstall-Application

PowerShell
Oct 26, 2020 Systems

Registry-based application uninstaller for Windows. Reads from both 64-bit and WOW6432Node registry paths instead of the slow Win32_Product WMI class. Supports -ListOnly to browse installed apps and -WhatIf to preview the uninstall safely.

View on GitHub

Test-ConsoleColor

PowerShell
Oct 26, 2020 Utility

Validates console color names against the System.ConsoleColor .NET enum. Uses PowerShell's type system for automatic validation — pass an invalid color and it throws an error before the script runs. Shows each color's name, integer value, and a sample block.

View on GitHub

Test-IPAddress

PowerShell
Oct 26, 2020 Utility

Validates IPv4 and IPv6 addresses using .NET's System.Net.IPAddress.Parse() instead of regex. Returns a structured object with the input, validity, address family, and normalized form. Using .NET's built-in parser avoids the pitfalls of IP address regex patterns.

View on GitHub

Let's Connect

Interested in collaborating or just want to say hello? Find me on these platforms.