# Build 2 Write-Host "This utility is obsolete and may not work. Please use control.pyw" $root = $PSCommandPath | Split-Path -Parent $server = (Get-Content "$root\configpcm.ini" | select -Skip 1 | ConvertFrom-StringData).server $resources = (Get-Content "$root\configpcm.ini" | select -Skip 1 | ConvertFrom-StringData).resources function seeGroups { $answer = Invoke-RestMethod -Method Get -Uri "$server/get/groups" foreach ($st in $answer){ Write-Host "Grupo:" $st.Name } } function seeComputers { $answer = Invoke-RestMethod -Method Get -Uri "$server/get/computers" foreach ($st in $answer){ Write-Host "Ordenador:" $st.Name } } function menuReportes { do { Write-Host "================ Menu reportes ================" Write-Host "1) Reporte de Software" Write-Host "Q) Salir" $input = Read-Host "Elegir una Opcion" switch ($input) { '1' { Clear-Host . "$PSScriptRoot\ADcomputerData.ps1" pause } 'q' { return } } } until ($input -eq 'q') } function menuEquipos { do { Write-Host "================ Menu equipos ================" Write-Host "1) Reporte de Equipos en pantalla" Write-Host "2) Añadir equipo" Write-Host "3) Borrar equipo" Write-Host "4) Añadir equipo a un grupo" Write-Host "5) Borrar equipo de un grupo" Write-Host "Q) Salir" $input = Read-Host "Elegir una Opcion" switch ($input) { '1' { Clear-Host seeComputers #Function pause } '2' { Clear-Host $newHost = Read-Host -Prompt "Nombre del equipo" if (Test-Connection -ComputerName $newHost -Quiet){ Write-Output "$newHost Online" Write-Output "Añadiendo equipo" Invoke-RestMethod -Method Get -Uri "$server/add/computer?ComputerName=$newHost" }else{ Write-Output "$newHost Offline" } pause } '3' { Clear-Host $hhost = Read-Host -Prompt "Nombre del equipo a eliminar" Invoke-RestMethod -Method Get -Uri "$server/del/computer?ComputerName=$hhost" } '4' { Clear-Host $computer = Read-Host -Prompt "Nombre del equipo" # See all groups seeGroups #Function $newGroup = Read-Host -Prompt "Nombre del grupo a añadir" Invoke-RestMethod -Method Get -Uri "$server/add/grpcomputer?ComputerName=$computer&GroupName=$newGroup" pause } '5' { Clear-Host $computer = Read-Host -Prompt "Nombre del equipo" # See all groups seeGroups #Function $newGroup = Read-Host -Prompt "Nombre del grupo a quitar" Invoke-RestMethod -Method Get -Uri "$server/add/grpcomputer?ComputerName=$computer&GroupName=$newGroup" pause } 'q' { return } } } until ($input -eq 'q') } function menuGrupos { do { Write-Host "================ Menu grupos ================" Write-Host "1) Reporte de Grupos en pantalla" Write-Host "2) Ver equipos de un grupo" Write-Host "3) Añadir grupo" Write-Host "4) Borrar grupo" Write-Host "5) Vaciar equipos del grupo" Write-Host "6) Cambiar nombre del grupo" Write-Host "7) Ver recetas de un grupo" Write-Host "Q) Salir" $input = Read-Host "Elegir una Opción" switch ($input) { '1' { Clear-Host seeGroups #Function pause } '2' { Clear-Host seeGroups $GroupName = Read-Host -Prompt "Nombre del grupo a ver" if ($GroupName){ $answer = Invoke-RestMethod -Method Get -Uri "$server/get/computersgrp?GroupName=$GroupName" foreach ($st in $answer){ Write-Host "Ordenador:" $st.Name } } pause } '3' { Clear-Host $newGroup = Read-Host -Prompt "Nombre del grupo a añadir" Invoke-RestMethod -Method Get -Uri "$server/add/group?GroupName=$newGroup" pause } '4' { Clear-Host seeGroups #Function $grpName = Read-Host -Prompt "Nombre del grupo a eliminar" Invoke-RestMethod -Method Get -Uri "$server/del/group?GroupName=$grpName" } '5' { Clear-Host seeGroups #Function $grpName = Read-Host -Prompt "Nombre del grupo a quitar los equipos" Invoke-RestMethod -Method Get -Uri "$server/del/emptypcsgroup?GroupName=$grpName" } '6' { Clear-Host # See all groups seeGroups #Function $GroupName = Read-Host -Prompt "Nombre del grupo" $GroupNewName = Read-Host -Prompt "Nombre nuevo" Invoke-RestMethod -Method Get -Uri "$server/upd/group?GroupName=$GroupName&GroupNewName=$GroupNewName" pause } '7' { Clear-Host # See all groups seeGroups #Function $GroupName = Read-Host -Prompt "Nombre del grupo para ver recetas" if ($GroupName){ $answer = Invoke-RestMethod -Method Get -Uri "$server/get/cookgrp?GroupName=$GroupName" foreach ($st in $answer){ Write-Host "Receta:" $st.CookName } }else{ Write-Host "No hay grupo" } pause } 'q' { return } } } until ($input -eq 'q') } function menuCooks { do { Write-Host "================ Menu recetas (Cooks) ================" Write-Host "1) Grupos de una receta" Write-Host "2) Estado de una receta" Write-Host "3) Detalles de cada equipo de una receta" Write-Host "4) Añadir receta a un grupo" Write-Host "5) Borrar receta de un grupo" Write-Host "6) Renombrar receta" Write-Host "Q) Salir" $input = Read-Host "Elegir una Opción" switch -regex ($input) { '1' { Clear-Host $CookName = Read-Host -Prompt "Nombre de la receta" Write-Host "Grupos de la receta $CookName" $grpcook = Invoke-RestMethod -Method Get -Uri "$server/get/grpcook?CookName=$CookName" foreach ($st in $grpcook){ Write-Host "Grupo:" $st.Name } pause } '2|3' { Clear-Host $CookName = Read-Host -Prompt "Nombre de la receta" Write-Host "Grupos de la receta" $grpcook = Invoke-RestMethod -Method Get -Uri "$server/get/grpcook?CookName=$CookName" foreach ($st in $grpcook){ Write-Host "Grupo:" $st.Name } $cookrevision = Invoke-RestMethod -Method Get -Uri "$server/get/lastrevisioncook?CookName=$CookName" $answer = Invoke-RestMethod -Method Get -Uri "$server/get/statuscook?CookName=$CookName" if ($_ -eq '3'){ foreach ($st in $answer){ Write-Host "Ordenador:" $st.Name ", revision" $st.Revision ", error" $st.Error } Write-Host "------Resumen y errores------" } $estadistica = @{} $estadistica.Total = 0 $estadistica.Error = 0 $estadistica.NotLast = 0 foreach ($st in $answer){ $estadistica.Total++ if ($st.Error -eq '1'){ Write-Host "Ordenador en error:" $st.Name $estadistica.Error++ } if ($st.Revision -ne $cookrevision.Revision){ Write-Host "Ordenador sin la última revisión de la receta:" $st.Name $estadistica.NotLast++ } } Write-Host "Total implementado:" $estadistica.Total Write-Host "Errores:" $estadistica.Error Write-Host "Sin aplicar ultima revisión:" $estadistica.NotLast pause } '4' { Clear-Host $CookName = Read-Host -Prompt "Nombre de la receta a añadir" seeGroups #Function $GroupName = Read-Host -Prompt "Nombre del grupo que quieres que lo tenga" Invoke-RestMethod -Method Get -Uri "$server/add/cookgrp?GroupName=$GroupName&CookName=$CookName" pause } '5' { Clear-Host $CookName = Read-Host -Prompt "Nombre del receta a eliminar de un grupo" $grpcook = Invoke-RestMethod -Method Get -Uri "$server/get/grpcook?CookName=$CookName" foreach ($st in $grpcook){ Write-Host "Grupo:" $st.Name } $GroupName = Read-Host -Prompt "Nombre del grupo" Invoke-RestMethod -Method Get -Uri "$server/del/cookgrp?GroupName=$GroupName&CookName=$CookName" pause } '6' { Clear-Host $CookName = Read-Host -Prompt "Nombre del receta actual" $CookNewName = Read-Host -Prompt "Nuevo nombre" Invoke-RestMethod -Method Get -Uri "$server/upd/cookname?CookNewName=$CookNewName&CookName=$CookName" pause } 'q' { return } } } until ($input -eq 'q') } do { Write-Host "================ Menú principal ================" Write-Host "1) Reportes" Write-Host "2) Equipos" Write-Host "3) Grupos (Locales)" Write-Host "4) Recetas" Write-Host "Q) Salir" $input = Read-Host "Elegir una Opción" switch ($input) { '1' { Clear-Host menuReportes } '2' { Clear-Host menuEquipos } '3' { Clear-Host menuGrupos } '4' { Clear-Host menuCooks } 'q' { return } } } until ($input -eq 'q')