|
Título: [APORTE] [PowerShell] GodModeManager - Gestor interactivo que permite crear carpetas GodMode de Windows 11 Publicado por: Mr.Byte en 19 Abril 2026, 20:08 pm Este script de PowerShell es un gestor interactivo que permite crear fácilmente en el Escritorio las famosas carpetas GodMode de Windows 11. Estas carpetas, cuando se nombran con un GUID especial, se convierten en accesos directos a paneles avanzados de configuración del sistema.
El script organiza estos GUIDs por categorías, muestra un menú interactivo y te permite crear carpetas individuales, todas las de una categoría o todas las disponibles. Se ha utilizado Vibe Coding Claude :-X Código: # ================================ Copiar el código, y guardarlo como GodModeManager.ps1 # GODMODE MANAGER - WINDOWS 11 # ================================ # Captura cualquier error no controlado y pausa para que puedas leerlo trap { Write-Host "`n[ERROR] $_" -ForegroundColor Red Write-Host "`nPulsa ENTER para cerrar..." Read-Host exit 1 } $ErrorActionPreference = "Stop" # convierte todos los errores en terminales # Diccionario de GUIDs organizados por categorias $GodModes = @{ "Sistema" = @{ "Modo Dios (todas las configuraciones)" = "ED7BA470-8E54-465E-825C-99712043E01C" "Sistema" = "BB06C0E4-D293-4f75-8A90-CB05B6477EEE" "Seguridad y mantenimiento" = "F3F5824C-AD58-4728-AF59-A1EBE3C2E8E3" "Centro de accesibilidad" = "D555645E-F4F9-4F47-8AF4-956B8B8E4B4F" } "Red" = @{ "Centro de redes y recursos compartidos" = "8E908FC9-BECC-40f6-915B-F4CA0E70D03D" "Carpetas compartidas" = "B4FB3F98-C1EA-428d-A78A-D1F5659CBA93" } "Hardware" = @{ "Dispositivos e impresoras" = "A8A91A66-3A7D-4424-8D24-04E180695C7A" "Opciones de energia" = "025A5937-A6BE-4686-A844-36FE4BEC8B6D" } "Cuentas y usuarios" = @{ "Cuentas de usuario" = "60632754-c523-4b62-b45c-4172da012619" "Centro de sincronizacion" = "9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF" } "Software" = @{ "Programas y caracteristicas" = "15eae92e-f17a-4431-9f28-805e482dafd4" "Opciones de Internet" = "A3DD4F92-658A-410F-84FD-6FBBBEF2FFFE" } "Herramientas" = @{ "Herramientas administrativas" = "D20EA4E1-3957-11d2-A40B-0C5020524153" "Centro de movilidad" = "5ea4f148-308c-46d7-98a9-49041b1dd468" "Historial de archivos" = "F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D" } } # Funcion para crear carpetas en el Escritorio function Create-GodModeFolder { param( [string]$Name, [string]$Guid ) $desktop = [Environment]::GetFolderPath("Desktop") $folderName = "$Name.{$Guid}" $folderPath = Join-Path $desktop $folderName if (-not (Test-Path $folderPath)) { New-Item -ItemType Directory -Path $folderPath | Out-Null Write-Host "[OK] Carpeta creada: $folderName" -ForegroundColor Green } else { Write-Host "[!] Ya existe: $folderName" -ForegroundColor Yellow } } # Funcion para mostrar categorias function Show-Categories { Write-Host "`n=== Categorias disponibles ===`n" $cats = @($GodModes.Keys) for ($i = 0; $i -lt $cats.Count; $i++) { Write-Host "$($i + 1). $($cats[$i])" } return $cats # devuelve el array ordenado para reutilizarlo } # Funcion para mostrar elementos de una categoria function Show-CategoryItems { param([string]$Category) Clear-Host Write-Host "`n=== $Category ===`n" $items = $GodModes[$Category] # FIX: convertir Keys a array para poder indexar $itemKeys = @($items.Keys) for ($i = 0; $i -lt $itemKeys.Count; $i++) { Write-Host "$($i + 1). $($itemKeys[$i])" } $choice = Read-Host "`nSelecciona un numero o escribe A para crear todos" if ($choice -eq "A" -or $choice -eq "a") { foreach ($key in $itemKeys) { Create-GodModeFolder -Name $key -Guid $items[$key] } return } $choiceInt = 0 if ([int]::TryParse($choice, [ref]$choiceInt)) { if ($choiceInt -ge 1 -and $choiceInt -le $itemKeys.Count) { $key = $itemKeys[$choiceInt - 1] Create-GodModeFolder -Name $key -Guid $items[$key] } else { Write-Host "Numero fuera de rango." -ForegroundColor Red } } else { Write-Host "Entrada no valida." -ForegroundColor Red } } # Funcion de busqueda function Search-GodMode { $query = Read-Host "`nIntroduce texto a buscar" $results = @() foreach ($cat in $GodModes.Keys) { foreach ($item in $GodModes[$cat].Keys) { if ($item -like "*$query*") { $results += [PSCustomObject]@{ Nombre = $item GUID = $GodModes[$cat][$item] } } } } if ($results.Count -eq 0) { Write-Host "No se encontraron coincidencias." -ForegroundColor Red return } Write-Host "`n=== Resultados ===`n" for ($i = 0; $i -lt $results.Count; $i++) { Write-Host "$($i + 1). $($results[$i].Nombre)" } $choice = Read-Host "`nSelecciona un numero" $choiceInt = 0 if ([int]::TryParse($choice, [ref]$choiceInt)) { if ($choiceInt -ge 1 -and $choiceInt -le $results.Count) { Create-GodModeFolder -Name $results[$choiceInt - 1].Nombre ` -Guid $results[$choiceInt - 1].GUID } else { Write-Host "Numero fuera de rango." -ForegroundColor Red } } else { Write-Host "Entrada no valida." -ForegroundColor Red } } # ================================ # MENU PRINCIPAL # ================================ $running = $true while ($running) { Clear-Host Write-Host "=== GODMODE MANAGER - WINDOWS 11 ===`n" Write-Host "1. Ver categorias" Write-Host "2. Buscar por nombre" Write-Host "3. Crear TODAS las carpetas" Write-Host "4. Salir" $option = Read-Host "`nSelecciona una opcion" switch ($option) { "1" { # FIX: capturar el array devuelto por Show-Categories para indexar correctamente $cats = Show-Categories $catChoice = Read-Host "`nSelecciona una categoria" $catInt = 0 if ([int]::TryParse($catChoice, [ref]$catInt)) { if ($catInt -ge 1 -and $catInt -le $cats.Count) { Show-CategoryItems -Category $cats[$catInt - 1] } else { Write-Host "Numero fuera de rango." -ForegroundColor Red } } else { Write-Host "Entrada no valida." -ForegroundColor Red } } "2" { Search-GodMode } "3" { foreach ($cat in $GodModes.Keys) { foreach ($item in $GodModes[$cat].Keys) { Create-GodModeFolder -Name $item -Guid $GodModes[$cat][$item] } } } "4" { $running = $false } default { Write-Host "Opcion no valida." -ForegroundColor Red } } if ($running) { Write-Host "`nPulsa ENTER para continuar..." Read-Host } } Si no se ejecuta por no estar firmado, utilizar Citar Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned |