elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [APORTE] [PowerShell] GodModeManager - Gestor interactivo que permite crear carpetas GodMode de Windows 11
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [APORTE] [PowerShell] GodModeManager - Gestor interactivo que permite crear carpetas GodMode de Windows 11  (Leído 3,541 veces)
Mr.Byte


Desconectado Desconectado

Mensajes: 438



Ver Perfil
[APORTE] [PowerShell] GodModeManager - Gestor interactivo que permite crear carpetas GodMode de Windows 11
« 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:
# ================================
#   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


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines