[APORTE] [PowerShell] GodModeManager - Gestor interactivo que permite crear carpetas GodMode de Windows 11
(1/1)
Mr.Byte:
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:
# ================================
# 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
}
}
Copiar el código, y guardarlo como GodModeManager.ps1
Si no se ejecuta por no estar firmado, utilizar
Citar
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
Navegación