Files
powershell-scripts/GPW/GPW_CheckScadenzeLic.ps1
T
2026-02-24 16:21:16 +01:00

70 lines
2.3 KiB
PowerShell

# Per far scrivere il ritorno dalla chiamata di IIS nel file di log ho creato la schedulazione entrando con
# l'utente stesso (Steamware) che esegue lo script e ho fatto import della schedulazione ( in ambiente ISE il log lo scrive )
# Ho messo anche permessi all'utente "Logon as batch job" ( vedi sotto )
# Utente messo in PowerUser e permessi scrittura cartella Steamware
# Logon as batch job policy is set for the user. This policy is accessible by opening the Control Panel, Administrative Tools,
# and then Local Security Policy -> Local Policy -> User Rights Assignment -> then Logon as batch job.
# Task Security Context
# https://forsenergy.com/en-us/taskscheduler/html/a922c2b5-6a43-4503-ab7f-4f3d77b3cc8a.htm
# Mod. 2022-05-17 Inizio ...
Remove-Variable * -ErrorAction SilentlyContinue # pulisco variabili x ISE
# avvio stopwatch
$stopwatch = [system.diagnostics.stopwatch]::StartNew()
$FolderName="c:\Steamware\Logs"
$Logfile = Join-Path $FolderName "\GPW_CheckScadenzeLic.log"
$Server = "liman.egalware.com"
$callUri = "https://liman.egalware.com/ELM.API/api/licenza/CheckScadenze"
$ErrorActionPreference = "Stop"
Function LogWrite
{
Param ([string]$logstring)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss.fff")
Add-content $Logfile -value "$Stamp $logstring"
}
if (Test-Path $FolderName) {
# Write-Host "Folder Exists"
}
else
{ #PowerShell Create directory if not exists
New-Item $FolderName -ItemType Directory
Write-Host "Folder Created successfully"
}
LogWrite("Start Check Licenses process...")
# # TEST CONNECTION
# LogWrite("Start Ping --> $Server ...")
# Test-Connection -ComputerName $Server -ErrorAction SilentlyContinue | Format-Table -AutoSize | Out-File -encoding utf8 $Logfile -Append # se non lo trova prosegue cmq
try { # vera chiamata
LogWrite("Effettuo chiamata target...")
$Response = Invoke-WebRequest -URI $callUri -UseBasicParsing
LogWrite($Response)
}
catch {
$Response = 'Call ERROR ...'
LogWrite($Error[0])
}
finally
{
LogWrite("*** END Call ***")
}
# fermo stopwatch e conteggio...
$stopwatch.Stop()
$durata = $stopwatch.Elapsed.TotalSeconds
& "C:\Program Files\Zabbix Agent\zabbix_sender.exe" -z zabproxy.ufficio -s "W2022-IIS04" -k LiMan.Lic -o $durata
LogWrite("Durata esecuzione: $durata")