Private/Get-IslHostArchitecture.ps1
|
function Get-IslHostArchitecture { <# .SYNOPSIS The architecture of this device's 64-bit Windows PowerShell host: x64, or arm64 on Windows on ARM. .DESCRIPTION The agent runs Win32 detection and requirement scripts in the device's 64-bit host unless the rule's "run as 32-bit" option is on. On Windows on ARM that host is the native ARM64 one and there is no x64 PowerShell at all (Findings, "Windows on ARM"), so the harness commands use this as their default architecture instead of a fixed x64 that an ARM64 device refuses. The 32-bit host (x86) exists on both and is never the answer here. .EXAMPLE Get-IslHostArchitecture x64 on an x64 device, arm64 on a Windows on ARM device. .OUTPUTS System.String. x64 or arm64, as Get-IslHostPath and the -Architecture parameters name them. #> [CmdletBinding()] [OutputType([string])] param() $osArchitecture = "$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture)" if ($osArchitecture -eq 'Arm64') { 'arm64' } else { 'x64' } } |