Dargslan.WinSandboxMgr.psm1
|
<# .SYNOPSIS Windows Sandbox configuration toolkit — sandbox availability check, configuration builder, security assessment, and usage monitoring (2026 Edition) .DESCRIPTION 2026 Edition — Part of the Dargslan Windows Admin Toolkit collection. More tools and resources at https://dargslan.com Free Cheat Sheets: https://dargslan.com/cheat-sheets .LINK https://dargslan.com .LINK https://github.com/Dargslan/powershell-admin-scripts #> function Get-SandboxStatus { <# .SYNOPSIS Check Windows Sandbox availability and configuration .DESCRIPTION Reports Windows Sandbox feature status, virtualization support, and Hyper-V requirements. Part of Dargslan.WinSandboxMgr (2026 Edition) — https://dargslan.com #> [CmdletBinding()] param([switch]$Json) $report = [ordered]@{ Feature = Get-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -Online -ErrorAction SilentlyContinue | Select-Object FeatureName, State HyperVRequired = Get-WindowsOptionalFeature -FeatureName "Microsoft-Hyper-V" -Online -ErrorAction SilentlyContinue | Select-Object FeatureName, State VirtualizationEnabled = (Get-CimInstance Win32_Processor).VirtualizationFirmwareEnabled SystemRequirements = [PSCustomObject]@{ RAM_GB = [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB, 1) MinRAM = 4 MeetsRAM = [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB, 1) -ge 4 OS = (Get-CimInstance Win32_OperatingSystem).Caption IsProOrEnterprise = (Get-CimInstance Win32_OperatingSystem).Caption -match "Pro|Enterprise|Education" FreeDiskGB = [math]::Round((Get-Volume -DriveLetter C -ErrorAction SilentlyContinue).SizeRemaining / 1GB, 1) } Available = $false } $report.Available = $report.Feature.State -eq "Enabled" -and $report.VirtualizationEnabled -and $report.SystemRequirements.MeetsRAM if ($Json) { return $report | ConvertTo-Json -Depth 3 } Write-Host "`n [Windows Sandbox — 2026 Edition]" -ForegroundColor Cyan Write-Host " Feature: $($report.Feature.State) | Virtualization: $($report.VirtualizationEnabled)" $report.SystemRequirements | Format-List Write-Host " Sandbox Available: $($report.Available)" -ForegroundColor $(if ($report.Available) {"Green"} else {"Red"}) return $report } Export-ModuleMember -Function * |