108 lines
3.0 KiB
PowerShell
108 lines
3.0 KiB
PowerShell
<#
|
|
STEAMWARE - Rottoli GCarlo
|
|
Mod. 2019-02
|
|
|
|
.DESCRIPTION
|
|
|
|
Stoppa e disabilita Windows Update
|
|
|
|
#>
|
|
|
|
# Remove-Variable * -ErrorAction SilentlyContinue # pulisco variabili x ISE
|
|
|
|
# Set-ExecutionPolicy Unrestricted # per attivare l'esecuzione degli script
|
|
|
|
cls
|
|
|
|
# ----------------------------
|
|
# parametri per log errori
|
|
# ----------------------------
|
|
# path dello script ps1 mi serve a causa di problemi con lo schedulatore
|
|
if ( $MyInvocation.MyCommand.Path -ne $null ) {
|
|
# $scriptPath = split-path -parent $MyInvocation.MyCommand.Path
|
|
# file di Log
|
|
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition # path dello script ps1 mi serve a causa di problemi con lo schedulatore
|
|
$LogFile = (split-path -Leaf $MyInvocation.MyCommand.Definition).Replace('.ps1','_Log.txt')
|
|
$ErrlogFile = (split-path -Leaf $MyInvocation.MyCommand.Definition).Replace('.ps1','_ErrorLog.txt')
|
|
}
|
|
else {
|
|
CD
|
|
$scriptPath = "C:\Steamware"
|
|
$ErrlogFile = "DisableWU_ErrorLog.txt" # "$scriptPath\ErrLog_Log.txt" # se non lo voglio mettere = $null quindi posso usare una variabile
|
|
$LogFile = "DisableWU_log.txt"
|
|
}
|
|
|
|
$Date = (Get-Date).ToString("dd/MM/yyyy HH:mm:ss")
|
|
$FileCheck = $LogFile.Replace('_Log.txt','_Check_Log.txt')
|
|
|
|
# attivo il Transcript
|
|
Start-Transcript -path "$scriptPath\$LogFile" | Out-Null
|
|
|
|
$Date
|
|
# $scriptPath
|
|
$ErrlogFile
|
|
$LogFile
|
|
|
|
"-->> Eseguo Check Window Update"
|
|
$ServiceStatus = get-service -DisplayName 'Windows update' | SELECT DisplayName, Status, StartType
|
|
$ServiceStatus | Format-Table -HideTableHeaders
|
|
|
|
$Date >> "$scriptPath\$FileCheck"
|
|
$ServiceStatus | Format-Table -HideTableHeaders >> "$scriptPath\$FileCheck"
|
|
|
|
# ----------------------------
|
|
# ---- MAIN ------
|
|
# ----------------------------
|
|
TRY
|
|
{
|
|
|
|
if ($ServiceStatus.Status -ine "Stopped" -or $ServiceStatus.StartType -ine "Disabled") # riavvio il servizio
|
|
{
|
|
"-->> Eseguo Stop e Disabled Window Update"
|
|
|
|
get-service -DisplayName 'Windows update' | Stop-Service -ErrorAction Continue
|
|
|
|
get-service -DisplayName 'Windows update' | Set-Service -startuptype "disabled"
|
|
|
|
get-service -DisplayName 'Windows update' | SELECT DisplayName, Status, StartType | Out-Host
|
|
|
|
}
|
|
else
|
|
{
|
|
"-->> Servizio Window Update già disabilitato"
|
|
}
|
|
|
|
} # end TRY
|
|
|
|
# ==== GESTIONE ERRORI =====
|
|
CATCH [Exception]
|
|
{
|
|
|
|
# salvo errore
|
|
"CATCH Error at $((Get-Date).ToString("dd/MM/yyyy HH:mm:ss"))" >> "$scriptPath\$ErrlogFile"
|
|
|
|
$error[0]
|
|
Write-Output $Error[0] >> "$scriptPath\$ErrlogFile"
|
|
|
|
Write-Output '>> List Exception'
|
|
$err = $_.Exception
|
|
while ( $err.InnerException )
|
|
{
|
|
$err = $err.InnerException
|
|
Write-Output $err.Message # anche a video
|
|
Write-Output $err.Message >> "$scriptPath\$ErrlogFile"
|
|
}
|
|
|
|
}
|
|
# ==== STEP FINALE - sempre eseguito =====
|
|
FINALLY
|
|
{
|
|
"END execute at : $((Get-Date).ToString("dd/MM/yyyy HH:mm:ss"))" | Out-Host
|
|
|
|
# Stop capturing output
|
|
Stop-Transcript
|
|
}
|
|
|
|
|
|
|