Dargslan.WinVSCodeAudit.psm1
|
<# .SYNOPSIS Visual Studio Code audit toolkit — extensions inventory, settings analysis, workspace trust, telemetry configuration, and resource usage .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-VSCodeAudit { <# .SYNOPSIS Audit Visual Studio Code installation and extensions .DESCRIPTION Reports VS Code version, installed extensions, settings, workspace trust, telemetry, and resource usage. Part of Dargslan.WinVSCodeAudit (2026 Edition) — https://dargslan.com #> [CmdletBinding()] param([switch]$Json) $codePath = Get-Command code -ErrorAction SilentlyContinue if (-not $codePath) { Write-Warning "VS Code not found in PATH"; return } $report = [ordered]@{ Version = (code --version 2>$null | Select-Object -First 1).Trim() Extensions = code --list-extensions --show-versions 2>$null | ForEach-Object { $p=$_ -split "@"; [PSCustomObject]@{Extension=$p[0];Version=$p[1]} } SettingsPath = "$env:APPDATA\Code\User\settings.json" SettingsExists = Test-Path "$env:APPDATA\Code\User\settings.json" WorkspaceTrust = @{} } if ($report.SettingsExists) { $settings = Get-Content "$env:APPDATA\Code\User\settings.json" -Raw -ErrorAction SilentlyContinue | ConvertFrom-Json -ErrorAction SilentlyContinue $report.WorkspaceTrust = [PSCustomObject]@{ Enabled = $settings."security.workspace.trust.enabled" Telemetry = $settings."telemetry.telemetryLevel" AutoSave = $settings."files.autoSave" Theme = $settings."workbench.colorTheme" } } $report.Summary = [PSCustomObject]@{ Version = $report.Version; Extensions = ($report.Extensions | Measure-Object).Count SettingsConfigured = $report.SettingsExists } if ($Json) { return $report | ConvertTo-Json -Depth 3 } Write-Host "`n [VS Code Audit - 2026]" -ForegroundColor Cyan $report.Summary | Format-List if ($report.WorkspaceTrust) { $report.WorkspaceTrust | Format-List } $report.Extensions | Select-Object -First 20 | Format-Table -AutoSize return $report } Export-ModuleMember -Function * |