Files
powerfulcomputermanager/client/control.ps1
2019-06-11 11:14:38 +02:00

321 lines
9.2 KiB
PowerShell

# 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')