[cmdletBinding()] param($outDir) function Check-isWindowsServer2025 { $osname = (get-wmiobject Win32_OperatingSystem).Caption if ($osname.Contains("Windows Server 2025")) { return $true } else { return $false } } function Check-isDomainController { If ((Get-WMIObject Win32_ComputerSystem).PartOfDomain) { #Domain Member or Domain Controller" $domainRole = (get-wmiobject Win32_ComputerSystem).DomainRole if ($domainRole -eq 3) { return $false } elseif ($domainRole -gt 4) { return $true } } else { return $false } } if (Check-isWindowsServer2025) { Write-Verbose "Check-isWindowsServer2025: Windows Server 2025" } else { Write-Verbose "Check-isWindowsServer2025: Unsupported Operating System" return 0 exit } if (Check-isDomainController) { Write-Verbose "Check-isDomainController: Yes" } else { Write-Verbose "Check-isDomainController: No" return 0 exit } if (!(Test-Path(".\Get-KerbEncryptionUsage.ps1"))) { # Download script from # https://github.com/microsoft/Kerberos-Crypto/blob/main/Get-KerbEncryptionUsage.ps1 # to current dir Write-Verbose "Test-Path: script not found" return $null exit } return (.\Get-KerbEncryptionUsage.ps1 -Encryption DES).Count