Code backup
This commit is contained in:
2026-05-10 16:59:01 +02:00
commit 368d6fafea
796 changed files with 315310 additions and 0 deletions
+125
View File
@@ -0,0 +1,125 @@
<#
.SYNOPSIS
This script finds all logon, logoff and total active session times of all users on all computers specified. For this script
to function as expected, the advanced AD policies; Audit Logon, Audit Logoff and Audit Other Logon/Logoff Events must be
enabled and targeted to the appropriate computers via GPO or local policy.
.EXAMPLE
.PARAMETER ComputerName
An array of computer names to search for events on. If this is not provided, the script will search the local computer.
.INPUTS
None. You cannot pipe objects to Get-ActiveDirectoryUserActivity.ps1.
.OUTPUTS
None. If successful, this script does not output anything.
#>
[CmdletBinding()]
param
(
[Parameter()]
[ValidateNotNullOrEmpty()]
[string[]]$ComputerName = $Env:COMPUTERNAME
)
try {
#region Defie all of the events to indicate session start or top
$sessionEvents = @(
@{ 'Label' = 'Logon'; 'EventType' = 'SessionStart'; 'LogName' = 'Security'; 'ID' = 4624 } ## Advanced Audit Policy --> Audit Logon
@{ 'Label' = 'Logoff'; 'EventType' = 'SessionStop'; 'LogName' = 'Security'; 'ID' = 4647 } ## Advanced Audit Policy --> Audit Logoff
@{ 'Label' = 'Startup'; 'EventType' = 'SessionStop'; 'LogName' = 'System'; 'ID' = 6005 }
@{ 'Label' = 'RdpSessionReconnect'; 'EventType' = 'SessionStart'; 'LogName' = 'Security'; 'ID' = 4778 } ## Advanced Audit Policy --> Audit Other Logon/Logoff Events
@{ 'Label' = 'RdpSessionDisconnect'; 'EventType' = 'SessionStop'; 'LogName' = 'Security'; 'ID' = 4779 } ## Advanced Audit Policy --> Audit Other Logon/Logoff Events
@{ 'Label' = 'Locked'; 'EventType' = 'SessionStop'; 'LogName' = 'Security'; 'ID' = 4800 } ## Advanced Audit Policy --> Audit Other Logon/Logoff Events
@{ 'Label' = 'Unlocked'; 'EventType' = 'SessionStart'; 'LogName' = 'Security'; 'ID' = 4801 } ## Advanced Audit Policy --> Audit Other Logon/Logoff Events
)
## All of the IDs that designate when user activity starts
$sessionStartIds = ($sessionEvents | where { $_.EventType -eq 'SessionStart' }).ID
## All of the IDs that designate when user activity stops
$sessionStopIds = ($sessionEvents | where { $_.EventType -eq 'SessionStop' }).ID
#endregion
## Define all of the log names we'll be querying
$logNames = ($sessionEvents.LogName | select -Unique)
## Grab all of the interesting IDs we'll be looking for
$ids = $sessionEvents.Id
## Build the insane XPath query for the security event log in order to query events as fast as possible
$logonXPath = "Event[System[EventID=4624]] and Event[EventData[Data[@Name='TargetDomainName'] != 'Window Manager']] and Event[EventData[Data[@Name='TargetDomainName'] != 'NT AUTHORITY']] and (Event[EventData[Data[@Name='LogonType'] = '2']] or Event[EventData[Data[@Name='LogonType'] = '11']])"
$otherXpath = 'Event[System[({0})]]' -f "EventID=$(($ids.where({ $_ -ne '4624' })) -join ' or EventID=')"
$xPath = '({0}) or ({1})' -f $logonXPath, $otherXpath
foreach ($computer in $ComputerName) {
## Query each computer's event logs using the Xpath filter
$events = Get-WinEvent -ComputerName $computer -LogName $logNames -FilterXPath $xPath
Write-Verbose -Message "Found [$($events.Count)] events to look through"
## Set up the output object
$output = [ordered]@{
'ComputerName' = $computer
'Username' = $null
'StartTime' = $null
'StartAction' = $null
'StopTime' = $null
'StopAction' = $null
'Session Active (Days)' = $null
'Session Active (Min)' = $null
}
## Need current users because if no stop time, they're still probably logged in
$getGimInstanceParams = @{
ClassName = 'Win32_ComputerSystem'
}
if ($computer -ne $Env:COMPUTERNAME) {
$getGimInstanceParams.ComputerName = $computer
}
$loggedInUsers = Get-CimInstance @getGimInstanceParams | Select-Object -ExpandProperty UserName | foreach { $_.split('\')[1] }
## Find all user start activity events and begin parsing
$events.where({ $_.Id -in $sessionStartIds }).foreach({
try {
$logonEvtId = $_.Id
$output.StartAction = $sessionEvents.where({ $_.ID -eq $logonEvtId }).Label
$xEvt = [xml]$_.ToXml()
## Figure out the login session ID
$output.Username = ($xEvt.Event.EventData.Data | where { $_.Name -eq 'TargetUserName' }).'#text'
$logonId = ($xEvt.Event.EventData.Data | where { $_.Name -eq 'TargetLogonId' }).'#text'
if (-not $logonId) {
$logonId = ($xEvt.Event.EventData.Data | where { $_.Name -eq 'LogonId' }).'#text'
}
$output.StartTime = $_.TimeCreated
Write-Verbose -Message "New session start event found: event ID [$($logonEvtId)] username [$($output.Username)] logonID [$($logonId)] time [$($output.StartTime)]"
## Try to match up the user activity end event with the start event we're processing
if (-not ($sessionEndEvent = $Events.where({ ## If a user activity end event could not be found, assume the user is still logged on
$_.TimeCreated -gt $output.StartTime -and
$_.ID -in $sessionStopIds -and
(([xml]$_.ToXml()).Event.EventData.Data | where { $_.Name -eq 'TargetLogonId' }).'#text' -eq $logonId
})) | select -last 1) {
if ($output.UserName -in $loggedInUsers) {
$output.StopTime = Get-Date
$output.StopAction = 'Still logged in'
} else {
throw "Could not find a session end event for logon ID [$($logonId)]."
}
} else {
## Capture the user activity end time
$output.StopTime = $sessionEndEvent.TimeCreated
Write-Verbose -Message "Session stop ID is [$($sessionEndEvent.Id)]"
$output.StopAction = $sessionEvents.where({ $_.ID -eq $sessionEndEvent.Id }).Label
}
$sessionTimespan = New-TimeSpan -Start $output.StartTime -End $output.StopTime
$output.'Session Active (Days)' = [math]::Round($sessionTimespan.TotalDays, 2)
$output.'Session Active (Min)' = [math]::Round($sessionTimespan.TotalMinutes, 2)
[pscustomobject]$output
} catch {
Write-Warning -Message $_.Exception.Message
}
})
}
} catch {
$PSCmdlet.ThrowTerminatingError($_)
}
+48
View File
@@ -0,0 +1,48 @@
$Servers = @(
"PC284"
)
#Initialize $Sessions which will contain all sessions
[System.Collections.ArrayList]$Sessions = New-Object System.Collections.ArrayList($null)
#Go through each server
Foreach ($Server in $Servers) {
#Get the current sessions on $Server and also format the output
$DirtyOuput = (quser /server:$Server) -replace '\s{2,}', ',' | ConvertFrom-Csv
#Go through each session in $DirtyOuput
Foreach ($session in $DirtyOuput) {
#Initialize a temporary hash where we will store the data
$tmpHash = @{}
#Check if SESSIONNAME isn't like "console" and isn't like "rdp-tcp*"
If (($session.sessionname -notlike "console") -AND ($session.sessionname -notlike "rdp-tcp*")) {
#If the script is in here, the values are shifted and we need to match them correctly
$tmpHash = @{
Username = $session.USERNAME
SessionName = "" #Session name is empty in this case
ID = $session.SESSIONNAME
State = $session.ID
IdleTime = $session.STATE
LogonTime = $session."IDLE TIME"
ServerName = $Server
}
}Else {
#If the script is in here, it means that the values are correct
$tmpHash = @{
Username = $session.USERNAME
SessionName = $session.SESSIONNAME
ID = $session.ID
State = $session.STATE
IdleTime = $session."IDLE TIME"
LogonTime = $session."LOGON TIME"
ServerName = $Server
}
}
#Add the hash to $Sessions
$Sessions.Add((New-Object PSObject -Property $tmpHash)) | Out-Null
}
}
#Display the sessions, sort by name, and just show Username, ID and Server
$sessions | Sort Username | select Username, ID, ServerName | FT
+22
View File
@@ -0,0 +1,22 @@
function Get-LoggedUser
{
[CmdletBinding()]
param
(
[string[]]$ComputerName
)
foreach ($comp in $ComputerName)
{
if ((Test-NetConnection $comp -WarningAction SilentlyContinue).PingSucceeded -eq $true)
{
$output = @{'Computer' = $comp }
$output.UserName = (Get-WmiObject -Class win32_computersystem -ComputerName $comp).UserName
}
else
{
$output = @{'Computer' = $comp }
$output.UserName = "offline"
}
[PSCustomObject]$output
}
}
@@ -0,0 +1,34 @@
function Get-MrTriggerStartService {
[CmdletBinding(DefaultParameterSetName='Name')]
param (
[Parameter(ParameterSetName='Name',
Position=0)]
[ValidateNotNullOrEmpty()]
[string]$Name = '*',
[Parameter(ParameterSetName='DisplayName')]
[ValidateNotNullOrEmpty()]
[string]$DisplayName = '*'
)
$Services = Get-WmiObject -Class Win32_Service -Filter "StartMode != 'Disabled' and Name like '$($Name -replace '\*', '%')' and DisplayName like '$($DisplayName -replace '\*', '%')'"
foreach ($Service in $Services) {
if (Test-Path -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$($Service.Name)\TriggerInfo\") {
New-Object -TypeName PSObject -Property @{
Status = $Service.State
Name = $Service.Name
DisplayName = $Service.DisplayName
StartMode = "$($Service.StartMode) (Trigger Start)"
}
}
}
}
Get-MrTriggerStartService
@@ -0,0 +1,120 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/02/28
# v: 1.0
# Reason: Emission
#-------------------------
##########################
# This is needed to run the software in debug mode
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# Importing base functions
. \\pal.local\NETLOGON\Powershell\Base-Functions.ps1
$latestDate = "28/02/2023" # First release
$scriptUser = "CBO"
$latestVersion = "1.0.0"
$displayName = "IcingaAgent - Software Installation Script"
#region Initialization
$logString = "`r`n"
$logString += "#################################`r`n"
$logString += "# __________ _____ .____ #`r`n"
$logString += "# \______ \/ _ \ | | #`r`n"
$logString += "# | ___/ /_\ \| | #`r`n"
$logString += "# | | / | \ |___ #`r`n"
$logString += "# |____| \____|__ /_______ \ #`r`n"
$logString += "# \/ \/ #`r`n"
$logString += "# #`r`n"
$logString += "#################################`r`n"
$logString += "`r`n"
$logString += "`r`n"
$logString += " *** $displayName *** `r`n"
$logString += "`r`n"
$logString += " Date: $($latestDate)`r`n"
$logString += " User: $($scriptUser)`r`n"
$logString += " Version: $($latestVersion)`r`n"
$logString += "`r`n"
#endregion
$policyGroup = "PAL SFTW ICINGA"
$serviceName = 'Icinga 2'
try {
#Check device policy
# if(!(Get-IsComputerMemberOf -Group $policyGroup)) {
# $logString += "$env:COMPUTERNAME non appartiene al gruppo $policyGroup`r`n"
# throw $logString
# }
$logString += "Initializing IcingaAgent...`r`n"
$logString += Initialize-Icinga
$logString += "Done!`r`n"
$logString += "Initializing installation IcingaAgent...`r`n"
#Icinga install/update
if(Install-IcingaAgent -Version 'release' -AllowUpdates 1){
$logString += "`r`nInstall success!`r`n"
} else {
$logString += "`r`n Icinga Agent is already at last version`r`n"
}
$service = Get-Service -Name $serviceName
$logString += "Check status service $serviceName`r`n"
#Check Service
if(!($service.Status -eq 'Running')){
$logString += "`r`nService not found, start uninstall`r`n"
if($logString += Uninstall-IcingaAgent){
$logString += "`r`nRestart installation`r`n"
$logString += Install-IcingaAgent -Version 'release' -AllowUpdates 1
if(!($service.Status -eq 'Running')){
$logString += "`r`nService up and running`r`n"
}
} else {
$logString += "`r`nUninstall failed`r`n"
}
} else {
$logString += "`r`nService up and running`r`n"
}
}
catch {
$logString += "$_`r`n"
}
Write-Log $displayName $logString
#TODO Da importare in Base-Functions.ps1
function Initialize-Icinga {
$logString = "";
$icingaModule = "icinga-powershell-framework";
try{
if(!(Get-InstalledicingaModule -Name $icingaModule)){
$logString += "Installing icinga module...`r`n"
$logString += Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
$logString += Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
$logString += Install-Module -Name $icingaModule
$logString += "Icinga module installed!`r`n"
}
if(!(Get-Module -Name $icingaModule)){
$logString += "Importing icinga module...`r`n"
$logString += Import-Module -Name $icingaModule
$logString += "Icinga module imported!`r`n"
}
}catch{
$logString += "$_`r`n"
}
return $logString
}
@@ -0,0 +1,42 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/08/25
# v: 1.0
# Reason: Emission
#-------------------------
##########################
$Services = Get-WmiObject win32_service -Filter "startmode = 'auto' AND state != 'running'"
$i = 0
$objs = $null
if ($Services){
foreach ($Service in $Services) {
# Exclude Triggered
if(!(Test-Path -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$($Service.Name)\TriggerInfo\"))
{
$i++
$objs += @(New-Object -TypeName PSObject -Property @{
Name = $Service.Name
Status = $Service.State
StartMode = $Service.StartMode
})
}
}
}
if ($i -ne 0){
Write-Output "$($i) Services is not running!"
Write-Output $objs
$exitcode = 2 #error
} else {
Write-Output "All Services are up and running!"
$exitcode = 0 #ok
}
exit ($exitcode)
@@ -0,0 +1,56 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/11/08
# v: 1.0
# Reason: Emission
#-------------------------
##########################
Write-Host("Script Start...") -ForegroundColor Yellow
# Var
$logstring = ""
$SMTPServer = paldocker01.pal.local"
$EmailFrom = "no-reply@pal.it"
$Subject = "PAL SRL - BUONI CARBURANTE Q8"
# Code Excecution
$Elements = Import-Csv -Path ""
foreach($Element in $Elements){
$EmailTo = $Element.Mail
$FilePath1 = $Element.File
$Body = "Buongiorno,
a seguito della decisione aziendale di erogare il 'bonus benzina' secondo la possibilità data dallart. 1 del DL n. 5 del 2023 (Decreto carburanti), con la presente invio in allegato il file pdf contenente i buoni carburante Q8.
I buoni potranno essere presentati in cassa (da smartphone o stampati) oppure utilizzati digitando il codice di 26 cifre nella colonnina del distributore self-service, selezionando la voce 'utilizza codice'.
Cordiali saluti,
PAL s.r.l."
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment1 = New-Object System.Net.Mail.Attachment($FilePath1)
$SMTPMessage.Attachments.Add($attachment1)
$SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, 25)
$SMTPClient.Send($SMTPMessage)
LogWrite("Send mail to $EmailTo with $FilePath1")
Write-Host("Send mail to $EmailTo") -ForegroundColor Green
}
Write-Host("Script end...") -ForegroundColor Blue
Function LogWrite
{
Param ([string]$logstring)
Add-content $Logfile -value $logstring
}
@@ -0,0 +1,66 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/11/08
# v: 1.0
# Reason: Emission
#-------------------------
##########################
Write-Host("Script Start")
$OutputPath = ""
$Elements = Import-Csv -Path ""
$i = 1
$wkhtmltopdf = (Resolve-Path "C:\Program Files\wkhtmltopdf\bin\" | Sort-Object -Property Path | Select-Object -Last 1)
Set-Location $wkhtmltopdf
Write-Host("Elements found: " + $Elements.Count)
foreach ($Element in $Elements) {
$Output = $OutputPath + $Element.Name +".pdf"
.\wkhtmltopdf.exe -l -s A4 $Element.Link $Output
Write-Host("Element done: " + $i.ToString("0000") + " / " + $Elements.Count)
$i ++
Write-Host("Wait...")
Start-Sleep -Seconds 1
}
Write-Host("Script End")
# Write-Host("Script Start")
# $OutputPath = "C:\Users\cbo\Desktop\FZ Task\voucher\"
# $Elements = Import-Csv -Path "C:\Users\cbo\Desktop\FZ Task\urlBuoni.csv"
# $i = 1
# $wkhtmltopdf = (Resolve-Path "C:\Program Files\wkhtmltopdf\bin\" | Sort-Object -Property Path | Select-Object -Last 1)
# Set-Location $wkhtmltopdf
# Write-Host("Elements found: " + $Elements.Count)
# foreach ($Element in $Elements) {
# $Output = $OutputPath + $i.ToString("0000") +".pdf"
# .\wkhtmltopdf.exe -l -s A4 $Element.LINK $Output
# Write-Host("Element done: " + $i.ToString("0000") + " / " + $Elements.Count)
# $i ++
# Write-Host("Wait...")
# Start-Sleep -Seconds 1
# }
# Write-Host("Script End")
@@ -0,0 +1,27 @@
$Logfile = "F:\Code\VSC\PowerShell\Script\005 - Rename File by csv\logs.txt"
$Elements = Import-Csv -Path "C:\Users\cbo\Desktop\FZ Task\username2.csv"
$i = 1
foreach ($Element in $Elements) {
$FilePath = "C:\Users\cbo\Desktop\FZ Task\Voutcher to send\"
$OldfileName = $i.ToString("000") + ".pdf"
$Target =$FilePath + $OldfileName
$FileName = $Element.Surname + " " + $Element.Name + ".pdf"
Rename-Item -Path $Target -NewName $FileName
LogWrite($FilePath+$FileName)
$i++
}
Function LogWrite
{
Param ([string]$logstring)
Add-content $Logfile -value $logstring
}
@@ -0,0 +1,390 @@
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Alghersi Fabio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Altobello Federico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Artico Marco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Artico Stefano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Babini Valerio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Barbieri Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bardella Marco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Barzan Ivan.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Basso Giovanni.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bastone Marco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bellio Nicolò.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bergamo Francesco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bertagna De Marchi Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bertossi Roberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bianchin Leandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bigolin Roberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Biscaro Agostino.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Boggian Claudio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bonesso Stefano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bonso Fabio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Boscaia Marino.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bottan Pio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bozzato Loris.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Brait Romina.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Breda Daniele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Brentel Michele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Brisolin Alex.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bulfoni Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buosi Luca.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buosi Alberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buso Francesco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buso Omar.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cais Mauro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cappa Daniel.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cappellazzo Alessio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cargnelutti Alex.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Carretta Riccardo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Casagrande Ferro Lerris.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Casasola Franco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Castagna Luca.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Castellan Massimiliano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Catania Paolo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ceccato Claudio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cecchinato Giacomo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cenedese Paolo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ceolin Angelo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cepoi Emil.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cersosimo Janosc.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cervo Daniele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cesarano Gianpaolo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cescon Michele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cescon Cristian.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Chersin Dario.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Chiaro Denny.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ciaramitaro Pietro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Colferai Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Conforti Davide.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Contò Massimo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Costa Domenico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Costantin Tommaso.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cover Alfio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cremonese Enrico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cum Luca.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Da Dalto Roberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Da Ros Piergiuseppe.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Da Rugna Marta.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Dal Ben Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Dal Pio Luogo Deris.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Agostini Luca.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Gobbi Ivano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Lorenzo Enrico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Nardi Massimo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Nardi Davide.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Nitto Corrado.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Rossi Stefano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Del Forno Fabio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Del Frari Lorenzo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Devincenti Nicolasi Guido Giuseppe.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Di Carlo Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Di Modica Alberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Di Modica Domenico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Drusian Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Drusian Simone.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Faggiani Roberto Lorenzo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Faresi Maurizio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Farnia Renato.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Fassetta Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Feletti Luca.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Feltrin Luigi.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ferro Radames.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Fogar Michele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Franceschini Moreno.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Frare Moreno.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Furlan Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Furlan Alberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Gesuati Luca.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Gesuati Simone.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Giacchetto Enrico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Giglio Vincenzo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Gola Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Iatusevitch Ilia.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Kere Lassane.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Kumar Balwinder.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Lazzaretti Roberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Leban Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Libralato Michele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Lorenzon Tiziano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Lubin Simone.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Luca Teo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Luison Loris.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Marani Alfonso.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Marchese Michelangelo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Marcolin Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Maule Mirko.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mauro Flavio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mazzariol Gabriele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mazzon Enrico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mehmeti Henriado.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Meneghel Nicola.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mengo Claudio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Messina Carmelo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Meuli Mauro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Migliorini Paolo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Modesti Nicola.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Moro Antonello.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mortari Lorenzo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Murer Roger.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Naccari Christian.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Narder Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Nardin Gabriele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Negru Razvan-Romeo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Padoan Enrico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Panont Paola.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Parise Angelo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Parro Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Passador Jacopo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Paulon Luigino.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pavan Flavio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pavan Francesco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pavanello Marco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pelizzoli Mario.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pignata Enrico.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pillon Alberto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pin Giampiero.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pivetta Mario.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pizzolla Marco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pradal Vlashi Dashamir.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Raggiotto Danilo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ravenna Riccardo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Resta Giovanni.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rizzetto Alessandro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rizzo Stefano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Romic Petar.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rosalen Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rossi Lorenzo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rossitto Fabio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Saccardo Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Salamon Massimo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sari Claudio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Saric Vujadin.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Schincariol Tiziano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sdoga Matteo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Serafin Gianni.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Serena Maurizio.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Severin Alex.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Spinacè Fausto.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Spricigo Mauro.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Stratulat Anton.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Suljic Adel.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sutto Mirco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sutto Walter.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Tarantino Rocco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Taverna Davide.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Tomadin Luciano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trabucco Dario.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trevisan Daniele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trevisi Massimo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trevisiol Sebastiano.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Vasileniuc Marius Ionut.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Vecchiato Ivan.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Venturini Giovanni.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Viezzer Remis.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Voltarel Leonardo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Yatsychenko Ivan.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zamuner Emanuele.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zamuner Francesco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanandrea Francesco.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanasi Tommaso.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanchetta Lorenzo.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanette Andrea.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zangrando Giovanni.pdf
C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanutta Daniele.pdf
Send mail to claudio.boggian00@gmail.com with
Send mail to claudio.boggian00@gmail.com with
Send mail to claudio.boggian00@gmail.com with
Send mail to claudio.boggian00@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Boggian Claudio.pdf
Send mail to zorronico29@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Alghersi Fabio.pdf
Send mail to altosarto@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Altobello Federico.pdf
Send mail to marcoartico.91@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Artico Marco.pdf
Send mail to stefano83artico@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Artico Stefano.pdf
Send mail to valbab@alice.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Babini Valerio.pdf
Send mail to andreabarbieri13@virgilio.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Barbieri Andrea.pdf
Send mail to marco.bardella1969@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bardella Marco.pdf
Send mail to jackbanzaialice@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Barzan Ivan.pdf
Send mail to palnb.gbs@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Basso Giovanni.pdf
Send mail to marcobastone@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bastone Marco.pdf
Send mail to susanna_favaro@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bellio Nicolò.pdf
Send mail to f.bergamo93@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bergamo Francesco.pdf
Send mail to aleberta89@me.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bertagna De Marchi Alessandro.pdf
Send mail to marleybr68@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bertossi Roberto.pdf
Send mail to shinko70@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bianchin Leandro.pdf
Send mail to robibigo67@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bigolin Roberto.pdf
Send mail to biscarofamily@alice.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Biscaro Agostino.pdf
Send mail to claudio.boggian00@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Boggian Claudio.pdf
Send mail to bonessostefano7@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bonesso Stefano.pdf
Send mail to fabio.bonso@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bonso Fabio.pdf
Send mail to oniramaiacsob@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Boscaia Marino.pdf
Send mail to pibo313@outlook.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bottan Pio.pdf
Send mail to bozzato11@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bozzato Loris.pdf
Send mail to braitromina@hotmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Brait Romina.pdf
Send mail to danielebreda56@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Breda Daniele.pdf
Send mail to pagpa.bm@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Brentel Michele.pdf
Send mail to alexbrisolin01@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Brisolin Alex.pdf
Send mail to ale86bulfoni@live.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Bulfoni Alessandro.pdf
Send mail to luca.buosi95@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buosi Luca.pdf
Send mail to totosat75@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buosi Alberto.pdf
Send mail to busof@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buso Francesco.pdf
Send mail to omarbuso90@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Buso Omar.pdf
Send mail to maurocais.95@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cais Mauro.pdf
Send mail to danielcappa@outlook.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cappa Daniel.pdf
Send mail to alessio.kappe@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cappellazzo Alessio.pdf
Send mail to a.cargnelutti05@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cargnelutti Alex.pdf
Send mail to carretta.riccardo1994@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Carretta Riccardo.pdf
Send mail to lerriscasagrande59@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Casagrande Ferro Lerris.pdf
Send mail to fam.casasola@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Casasola Franco.pdf
Send mail to castagnaluca78@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Castagna Luca.pdf
Send mail to castellanmassimiliano@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Castellan Massimiliano.pdf
Send mail to catipao69@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Catania Paolo.pdf
Send mail to ceccatoclaudio1964@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ceccato Claudio.pdf
Send mail to giacomo.cecchinato84@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cecchinato Giacomo.pdf
Send mail to paocenedese@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cenedese Paolo.pdf
Send mail to ceolin.angelo@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ceolin Angelo.pdf
Send mail to emilcepoi70@gmial.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cepoi Emil.pdf
Send mail to janosc@costola.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cersosimo Janosc.pdf
Send mail to daniele.cervo@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cervo Daniele.pdf
Send mail to gianpaolocesarano1978@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cesarano Gianpaolo.pdf
Send mail to cesconm94@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cescon Michele.pdf
Send mail to cristianproject@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cescon Cristian.pdf
Send mail to dario.chersin79@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Chersin Dario.pdf
Send mail to denchiaro@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Chiaro Denny.pdf
Send mail to ciaramitaro.pietro@virgilio.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ciaramitaro Pietro.pdf
Send mail to colferally91@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Colferai Andrea.pdf
Send mail to davide.conforti@hotmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Conforti Davide.pdf
Send mail to massimo.conto@alice.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Contò Massimo.pdf
Send mail to pittbull81@live.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Costa Domenico.pdf
Send mail to tommaso.costantin@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Costantin Tommaso.pdf
Send mail to alfiocover@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cover Alfio.pdf
Send mail to enricocremonese1989@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cremonese Enrico.pdf
Send mail to luca.cum@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Cum Luca.pdf
Send mail to robertodadalto@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Da Dalto Roberto.pdf
Send mail to pierbustepaga@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Da Ros Piergiuseppe.pdf
Send mail to marta.darugna@virgilio.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Da Rugna Marta.pdf
Send mail to andreadalben@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Dal Ben Andrea.pdf
Send mail to lellotalenti@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Dal Pio Luogo Deris.pdf
Send mail to deagostiniluca@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Agostini Luca.pdf
Send mail to idegobbi@icloud.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Gobbi Ivano.pdf
Send mail to delorenzoenrico1985@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Lorenzo Enrico.pdf
Send mail to brc.rocks@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Nardi Massimo.pdf
Send mail to davidedenardi@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Nardi Davide.pdf
Send mail to corradoallacarica@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Nitto Corrado.pdf
Send mail to derossi.stefano76@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\De Rossi Stefano.pdf
Send mail to manager80@virgilio.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Del Forno Fabio.pdf
Send mail to delfrari.lorenzo.work@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Del Frari Lorenzo.pdf
Send mail to devincenti1960@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Devincenti Nicolasi Guido Giuseppe.pdf
Send mail to andreadicarlo059@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Di Carlo Andrea.pdf
Send mail to dimoalb567@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Di Modica Alberto.pdf
Send mail to domenicodimodica1@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Di Modica Domenico.pdf
Send mail to drusianandrea@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Drusian Andrea.pdf
Send mail to drusiansimone@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Drusian Simone.pdf
Send mail to robertofaggiani@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Faggiani Roberto Lorenzo.pdf
Send mail to maurizio.faresi@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Faresi Maurizio.pdf
Send mail to renfarnia@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Farnia Renato.pdf
Send mail to fassettaandrea@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Fassetta Andrea.pdf
Send mail to feletti.luca@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Feletti Luca.pdf
Send mail to luigiflaviofeltrin@outlook.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Feltrin Luigi.pdf
Send mail to imparatolia@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ferro Radames.pdf
Send mail to mifo703@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Fogar Michele.pdf
Send mail to moreno.annalisa@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Franceschini Moreno.pdf
Send mail to fraremoreno@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Frare Moreno.pdf
Send mail to andrea.xs71@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Furlan Andrea.pdf
Send mail to falby73@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Furlan Alberto.pdf
Send mail to glgesu@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Gesuati Luca.pdf
Send mail to simomissy84@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Gesuati Simone.pdf
Send mail to e.giacchetto77@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Giacchetto Enrico.pdf
Send mail to giglioenzo@live.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Giglio Vincenzo.pdf
Send mail to alessandro.gola@hotmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Gola Alessandro.pdf
Send mail to Iliasuo59@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Iatusevitch Ilia.pdf
Send mail to kerelassane14@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Kere Lassane.pdf
Send mail to bk1964dec@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Kumar Balwinder.pdf
Send mail to lazzarettiroberto@icloud.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Lazzaretti Roberto.pdf
Send mail to alessandroleban@hotmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Leban Alessandro.pdf
Send mail to mike_lib@tiscali.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Libralato Michele.pdf
Send mail to lorenzontiziano1@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Lorenzon Tiziano.pdf
Send mail to simone.lubin@protonmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Lubin Simone.pdf
Send mail to teo.luca1991@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Luca Teo.pdf
Send mail to masciacancian0@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Luison Loris.pdf
Send mail to ing_marani@inwind.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Marani Alfonso.pdf
Send mail to marchesemichele25@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Marchese Michelangelo.pdf
Send mail to alex.marcolin@virgilio.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Marcolin Alessandro.pdf
Send mail to mirkogtmaule@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Maule Mirko.pdf
Send mail to forddista@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mauro Flavio.pdf
Send mail to gmazzariol@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mazzariol Gabriele.pdf
Send mail to enricomazzon@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mazzon Enrico.pdf
Send mail to henriado@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mehmeti Henriado.pdf
Send mail to nich_m@icloud.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Meneghel Nicola.pdf
Send mail to famengo@alice.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mengo Claudio.pdf
Send mail to carmelomessina88@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Messina Carmelo.pdf
Send mail to mauro.meuli@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Meuli Mauro.pdf
Send mail to paolomigliorini.87@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Migliorini Paolo.pdf
Send mail to nicoo.modee@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Modesti Nicola.pdf
Send mail to moroelo@alice.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Moro Antonello.pdf
Send mail to lorenzo.mortari@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Mortari Lorenzo.pdf
Send mail to roger.murer@tin.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Murer Roger.pdf
Send mail to chrinacc@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Naccari Christian.pdf
Send mail to ale.narder@yahoo.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Narder Alessandro.pdf
Send mail to nardin73@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Nardin Gabriele.pdf
Send mail to romeo_negru@yahoo.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Negru Razvan-Romeo.pdf
Send mail to padoan6enrico@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Padoan Enrico.pdf
Send mail to paola.panont@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Panont Paola.pdf
Send mail to angelo.parise73@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Parise Angelo.pdf
Send mail to alandro883@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Parro Alessandro.pdf
Send mail to jacopo.passador@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Passador Jacopo.pdf
Send mail to luigino.paulon@alice.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Paulon Luigino.pdf
Send mail to flavio.pavan@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pavan Flavio.pdf
Send mail to wildwolfbst@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pavan Francesco.pdf
Send mail to marcopavanello.84@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pavanello Marco.pdf
Send mail to mariopelizzoli@inwind.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pelizzoli Mario.pdf
Send mail to enrico.pignata@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pignata Enrico.pdf
Send mail to bello19901990@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pillon Alberto.pdf
Send mail to pingiampiero@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pin Giampiero.pdf
Send mail to mariopivetta@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pivetta Mario.pdf
Send mail to marcopizzolla@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pizzolla Marco.pdf
Send mail to pradalvalshi68@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Pradal Vlashi Dashamir.pdf
Send mail to rg.danilo@virgilio.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Raggiotto Danilo.pdf
Send mail to riccardo.ravenna@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Ravenna Riccardo.pdf
Send mail to gioresxx@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Resta Giovanni.pdf
Send mail to alessandrorizzetto@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rizzetto Alessandro.pdf
Send mail to staple.rizzo@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rizzo Stefano.pdf
Send mail to perobg594@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Romic Petar.pdf
Send mail to andrearosalen@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rosalen Andrea.pdf
Send mail to rossi.lorenzo.96.lavoro@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rossi Lorenzo.pdf
Send mail to fabio.rossitto@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Rossitto Fabio.pdf
Send mail to andreasaccardo95@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Saccardo Andrea.pdf
Send mail to senzapensieri@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Salamon Massimo.pdf
Send mail to claudio.sari78@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sari Claudio.pdf
Send mail to vujadinsaric@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Saric Vujadin.pdf
Send mail to tiziano.schincariol@me.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Schincariol Tiziano.pdf
Send mail to m.sdoga2001@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sdoga Matteo.pdf
Send mail to gianni.srfn@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Serafin Gianni.pdf
Send mail to maurizio_serena@yahoo.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Serena Maurizio.pdf
Send mail to alex.severin@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Severin Alex.pdf
Send mail to faisp@tiscali.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Spinacè Fausto.pdf
Send mail to Maurooo118@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Spricigo Mauro.pdf
Send mail to tonistraty@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Stratulat Anton.pdf
Send mail to adelsuljic14990@yahoo.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Suljic Adel.pdf
Send mail to sutto.mirco@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sutto Mirco.pdf
Send mail to sutto.walter@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Sutto Walter.pdf
Send mail to r.tarantinotr@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Tarantino Rocco.pdf
Send mail to davide.taverna87@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Taverna Davide.pdf
Send mail to lucianotomadin55@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Tomadin Luciano.pdf
Send mail to trabdario@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trabucco Dario.pdf
Send mail to trev.daniele@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trevisan Daniele.pdf
Send mail to trvmsm@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trevisi Massimo.pdf
Send mail to sebastiano.trevisiol@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Trevisiol Sebastiano.pdf
Send mail to vasileniucmarius@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Vasileniuc Marius Ionut.pdf
Send mail to ivanve75@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Vecchiato Ivan.pdf
Send mail to giovanni.venturini.ing@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Venturini Giovanni.pdf
Send mail to remisviezzer@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Viezzer Remis.pdf
Send mail to leonardo.voltarel@yahoo.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Voltarel Leonardo.pdf
Send mail to yatsychenkoivan@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Yatsychenko Ivan.pdf
Send mail to zamu.ema86@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zamuner Emanuele.pdf
Send mail to zamuner.francesco@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zamuner Francesco.pdf
Send mail to francesco.zanandrea@yahoo.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanandrea Francesco.pdf
Send mail to tommaso.zanasi@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanasi Tommaso.pdf
Send mail to lore.zanc@hotmail.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanchetta Lorenzo.pdf
Send mail to andrea_zanette@libero.it with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanette Andrea.pdf
Send mail to gpzangrando@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zangrando Giovanni.pdf
Send mail to danielezanutta61@gmail.com with C:\Users\cbo\Desktop\FZ Task\Voutcher to send\Zanutta Daniele.pdf
Send mail to with
Send mail to with
@@ -0,0 +1,122 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2024/02/20
# v: 1.0
# Reason: Emission
#-------------------------
##########################
Param(
[string] $ApplicationId = "",
[string] $Secured = "",
[string] $tenantID = "",
[Int64] $warn = 30,
[Int64] $crit = 15
)
if ("" -eq $ApplicationId){
Write-Host "First param - ApplicationId not set" -ForegroundColor red
exit (2)
} elseif ("" -eq $Secured){
Write-Host "Second param - SecuredId not set" -ForegroundColor red
exit (2)
} elseif ("" -eq $TenantID){
Write-Host "Third param - TenantID not set" -ForegroundColor red
exit (2)
}
$ExitCode = 0
$SecuredPasswordPassword = ConvertTo-SecureString -String $Secured -AsPlainText -Force
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPasswordPassword
Connect-MgGraph -TenantId $tenantID -ClientSecretCredential $ClientSecretCredential -NoWelcome
$Applications = Get-MgApplication -all
$Logs = @()
$ExpiredSecrets = @()
$Res = @()
foreach ($App in $Applications) {
$AppName = $App.DisplayName
$AppID = $App.Id
$ApplID = $App.AppId
if ($null -eq $AppID) { continue }
$AppCreds = Get-MgApplication -ApplicationId $AppID | Select-Object PasswordCredentials, KeyCredentials
$Secrets = $AppCreds.PasswordCredentials
foreach ($Secret in $Secrets) {
$StartDate = $Secret.StartDateTime
$EndDate = $Secret.EndDateTime
$SecretName = $Secret.DisplayName
$RemainingDaysCount = ($EndDate - (Get-Date)).Days
if($RemainingDaysCount -le $warn -and $RemainingDaysCount -ge 0){
$Logs += [PSCustomObject]@{
ApplicationName = $AppName
ApplicationID = $ApplID
SecretName = $SecretName
SecretStartDate = $StartDate
SecretEndDate = ($EndDate).ToString("dd/MM/yyyy")
RemainingDaysCount = $RemainingDaysCount
}
} elseif ($null -ne $EndDate -and $RemainingDaysCount -lt -1) {
$ExpiredSecrets += [PSCustomObject]@{
ApplicationName = $AppName
EndDate = ($EndDate).ToString("dd/MM/yyyy")
ApplicationID = $ApplID
}
}
}
}
if ($Logs.Length -gt 0) {
Write-Host 'WARN!' $Logs.Length ' Secret need attention!'
} elseif ($ExpiredSecrets.Length -gt 0) {
Write-Host 'WARN!' $ExpiredSecrets.Length ' Secret expired!'
} else {
Write-Host 'OK! All secret are in range'
}
if ($ExpiredSecrets.Length -gt 0) {
Write-Host 'Expired:'
$ExpiredSecrets | Sort-Object -Property 'ApplicationName' | Format-Table
$ExitCode = 1
}
if ($Logs.Length -gt 0) {
Write-Host 'Expiring:'
Write-Host ''
}
foreach ($GLog in $Logs | Sort-Object -Property 'ApplicationName' | Group-Object -Property 'ApplicationName'){
Write-Host '/!\' $GLog.Name -ForegroundColor yellow
foreach ($Log in $GLog.Group){
if ($null -ne $Log.SecretEndDate){
if ($Log.RemainingDaysCount -cle $crit) {
$ExitCode = 2
} elseif($Log.RemainingDaysCount -cle $warn){
if($ExitCode -ne 2){
$ExitCode = 1
}
}
$Res = [PSCustomObject]@{
DaysLeft = $Log.RemainingDaysCount
SecretName = $Log.SecretName
EndDate = $Log.SecretEndDate
}
}
}
$Res | Format-Table
}
exit ($ExitCode)
@@ -0,0 +1,3 @@
[string]$ApplicationId = "e369a382-c82a-438e-ba66-3d9e7b1e54db",
[string]$SecuredPassword = "Ezr8Q~6DSGmG8xa0hUlnpODNjwv37ppG6U~vgclK",
[string]$tenantID = "e7251917-3921-4250-82bd-6dd2387cb987",
@@ -0,0 +1,11 @@
$program = "C:\Users\cbo\Desktop\IfcConvert.exe";
$elements = @(
"C:\Users\cbo\Desktop\IFC\ABI\2024-12-18\Recycling-Foundation.ifc C:\Users\cbo\Desktop\IFC\ABI\2024-12-18\Recycling-Foundation.stp"
"C:\Users\cbo\Desktop\IFC\ABI\2024-12-18\Recycling-Other building.ifc C:\Users\cbo\Desktop\IFC\ABI\2024-12-18\Recycling-Other building.stp"
)
foreach ($e in $elements) {
Start-Process -FilePath $program -ArgumentList $e
}
Write-Output "All Process started"
@@ -0,0 +1,124 @@
##########################
# Writer: Claudio Boggian
# Company: PAL s.r.l.
#-------------------------
# Date: 2025/02/21
# v: 1.0
# Reason: Emission
#-------------------------
##########################
# Imposta il percorso della cartella da monitorare
$cartella = "E:\CyberPlanWeb_Data\cybinstance\PLANNING\logs"
$displayName = "CyberPlan Logs"
# Funzioni base di \\pal.local\NETLOGON\Powershell\Base-Functions.ps1
function Initialize-Graylog {
Param ([string]$Facility)
if(!(Test-Path -PathType Container -Path "C:\temp\")){
New-Item -ItemType Directory -Force -Path "C:\temp\" | Out-Null
}
$logFile = "C:\temp\$($Facility).log"
if (Test-Path $logFile)
{
Remove-Item $logFile
}
try{
# Installing Graylog Module
if(!(Get-InstalledModule -Name "PSGELF")){
Add-Content -Path $logFile -Value "Installing PSGELF module"
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
Install-Module -Name PSGELF
Add-Content -Path $logFile -Value "PSGELF module installed!"
}
if(!(Get-Module -Name PSGELF)){
Add-Content -Path $logFile -Value "Importing PSGELF module"
Import-Module -Name PSGELF
Add-Content -Path $logFile -Value "PSGELF module imported!"
}
}
catch{
Add-Content -Path $logFile -Value $_
}
}
function Write-Log {
Param ([string]$Facility, [string]$LogString, [int32]$Level = 5)
Initialize-Graylog $Facility
Send-PSGelfUDP -GelfServer "palgraylog01.pal.local" -Port 12204 -ShortMessage $LogString -Level $Level -Facility $Facility
}
# Funzione per ottenere il file più recente che segue il pattern debug.*.log*
function Get-LatestLogFile {
return Get-ChildItem -Path $cartella -Filter "debug.*.log*" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
}
# Funzione per inviare una riga di log a Graylog
function Send-ToGraylog {
param ([string]$logMessage)
try {
Write-Log $displayName $logMessage
Write-Host "Log inviato: $logMessage"
} catch {
Write-Host "Errore nell'invio del log: $_"
}
}
# Monitoraggio delle modifiche in tempo reale
function Monitor-LogFile {
param ([string]$filePath)
Write-Host "Monitorando il file: $filePath"
$reader = [System.IO.StreamReader]::new([System.IO.File]::Open($filePath, 'Open', 'Read', 'ReadWrite'))
# Sposta il lettore alla fine del file
$reader.BaseStream.Seek(0, [System.IO.SeekOrigin]::End) | Out-Null
while ($true) {
Start-Sleep -Milliseconds 500 # Attendi 500ms prima di controllare nuove righe
# Leggi nuove righe, se presenti
$line = $reader.ReadLine()
while ($line -ne $null) {
Send-ToGraylog -logMessage $line
$line = $reader.ReadLine()
}
# Se il file cambia, termina il ciclo
if ((Get-LatestLogFile).FullName -ne $filePath) {
Write-Host "Nuovo file rilevato, cambiando monitoraggio..."
break
}
}
$reader.Close()
}
# Funzione per monitorare la cartella e gestire nuovi file
function Monitor-Folder {
while ($true)
{
try {
Write-Host "In attesa di file nella cartella: $cartella"
# Recupera il file iniziale da monitorare
$latestFile = Get-LatestLogFile
if ($latestFile) {
Monitor-LogFile -filePath $latestFile.FullName
}
} catch {
Write-Log $displayName "Il servizio è stato interrotto a causa di un errore. Errore: $_"
break
}
}
}
# Avvia il monitoraggio della cartella
Monitor-Folder
@@ -0,0 +1,243 @@
#Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select Name,Version
#Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
Import-Module Microsoft.Online.SharePoint.PowerShell -Force
$Cred = Get-Credential
Connect-SPOService -Url "https://italsortbuttrio-admin.sharepoint.com"
# ************** SUB PROJ ****************
$webURL = "https://italsortbuttrio.sharepoint.com/sites/Commesse2025"
#Setup credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Get Web information and subsites
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($webURL)
$Context.Credentials = $Credentials
$Web = $context.Web
$Context.Load($web)
$Context.Load($web.Webs)
$Context.executeQuery()
#Iterate through each subsite in the current web
foreach ($Subweb in $web.Webs)
{
#Get the web object
#$Subweb
$SubwebURL = $Subweb.Url
$SubwebTitle = $Subweb.Title
write-host "Subsite URL: " $Subweb.url
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SubwebURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
$LibraryName= "SottoCommesse $SubwebTitle"
$Library=$Ctx.web.Lists.GetByTitle($LibraryName)
$Ctx.Load($Library)
$Ctx.ExecuteQuery()
$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewFields.Add("DocIcon") > $null
$viewFields.Add("LinkFilename") > $null
$viewFields.Add("_ExtendedDescription") > $null
$viewFields.Add("PAL_Item") > $null
$viewFields.Add("PAL_ItemCode") > $null
$viewFields.Add("PAL_ItemDescription") > $null
$viewFields.Add("PAL_SerialNumber") > $null
$viewFields.Add("Modified") > $null
$viewFields.Add("Editor") > $null
$viewFields.Add("Version") > $null
$viewFields.Add("PAL_Status") > $null
$viewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
$viewInfo.Paged = $true
$viewInfo.SetAsDefaultView = $true
$viewInfo.ViewFields = $viewFields
$viewInfo.Title = "$LibraryName View"
$newView = $Library.Views.Add($viewInfo)
$Ctx.ExecuteQuery()
$View = $Library.Views[0]
$Ctx.Load($View)
$Ctx.ExecuteQuery()
$projNameWithoutDash = $SubwebTitle -replace "-", ""
$Ctx.web.RootFolder.WelcomePage = "SottoCommesse%20" + $projNameWithoutDash + "/Forms/SottoCommesse%20" + $projNameWithoutDash + "%20View.aspx"
$Ctx.web.RootFolder.Update()
$Ctx.ExecuteQuery()
}
# ************** QUOTATIONS ****************
# $SiteURL= "https://italsortbuttrio.sharepoint.com/sites/Offerte"
# $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
# $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
# for ($i = 3; $i -le 5; $i++) {
# $year = "202$i"
# $LibraryName="Offerte $year"
# $Library=$Ctx.web.Lists.GetByTitle($LibraryName)
# $Ctx.Load($Library)
# $Ctx.ExecuteQuery()
# $viewFields = New-Object System.Collections.Specialized.StringCollection
# $viewFields.Add("DocIcon") > $null
# $viewFields.Add("LinkFilename") > $null
# $viewFields.Add("PAL_Quotation_Reason") > $null
# $viewFields.Add("PAL_ID_Quotation") > $null
# $viewFields.Add("PAL_Quotation_Name") > $null
# $viewFields.Add("PAL_Authors") > $null
# $viewFields.Add("PAL_Status") > $null
# # $viewQuery = '<OrderBy><FieldRef Name="LinkFileName" /></OrderBy>
# # <Where><Contains><FieldRef Name="File_x0020_Series"/><Value Type="Choice">' + $L1Folder + '</Value></Contains></Where>'
# $viewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
# # $viewInfo.Query = $viewQuery
# # $viewInfo.RowLimit = 50
# $viewInfo.Paged = $true
# $viewInfo.SetAsDefaultView = $true
# $viewInfo.ViewFields = $viewFields
# $viewInfo.Title = "$LibraryName View"
# $newView = $Library.Views.Add($viewInfo)
# $Ctx.ExecuteQuery()
# }
# ************** PURCHASING PO ****************
# $SiteURL= "https://italsortbuttrio.sharepoint.com/teams/purchasing/OrdinidiAcquisto/"
# $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
# $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
# for ($i = 2; $i -le 5; $i++) {
# $year = "202$i"
# $LibraryName="Ordini di Acquisto $year"
# $Library=$Ctx.web.Lists.GetByTitle($LibraryName)
# $Ctx.Load($Library)
# $Ctx.ExecuteQuery()
# $viewFields = New-Object System.Collections.Specialized.StringCollection
# $viewFields.Add("DocIcon") > $null
# $viewFields.Add("LinkFilename") > $null
# $viewFields.Add("PAL_PO_Supplier") > $null
# $viewFields.Add("PAL_Status") > $null
# $viewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
# $viewInfo.Paged = $true
# $viewInfo.SetAsDefaultView = $true
# $viewInfo.ViewFields = $viewFields
# $viewInfo.Title = "$LibraryName View"
# $newView = $Library.Views.Add($viewInfo)
# $Ctx.ExecuteQuery()
# }
# ************** PURCHASING DDT ****************
# $SiteURL= "https://italsortbuttrio.sharepoint.com/teams/purchasing/DDTdiAcquisto"
# $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
# $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
# for ($i = 2; $i -le 5; $i++) {
# $year = "202$i"
# $LibraryName="DDT di Acquisto $year"
# $Library=$Ctx.web.Lists.GetByTitle($LibraryName)
# $Ctx.Load($Library)
# $Ctx.ExecuteQuery()
# $viewFields = New-Object System.Collections.Specialized.StringCollection
# $viewFields.Add("DocIcon") > $null
# $viewFields.Add("LinkFilename") > $null
# $viewFields.Add("PAL_PO_Supplier") > $null
# $viewFields.Add("PAL_Status") > $null
# $viewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
# $viewInfo.Paged = $true
# $viewInfo.SetAsDefaultView = $true
# $viewInfo.ViewFields = $viewFields
# $viewInfo.Title = "$LibraryName View"
# $newView = $Library.Views.Add($viewInfo)
# $Ctx.ExecuteQuery()
# }
# ************** PURCHASING RDA ****************
# $SiteURL= "https://italsortbuttrio.sharepoint.com/teams/purchasing/RichiestediAcquisto"
# $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
# $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
# for ($i = 2; $i -le 5; $i++) {
# $year = "202$i"
# $LibraryName="Richieste di Acquisto $year"
# $Library=$Ctx.web.Lists.GetByTitle($LibraryName)
# $Ctx.Load($Library)
# $Ctx.ExecuteQuery()
# $viewFields = New-Object System.Collections.Specialized.StringCollection
# $viewFields.Add("DocIcon") > $null
# $viewFields.Add("LinkFilename") > $null
# $viewFields.Add("PAL_PO_Supplier") > $null
# $viewFields.Add("PAL_Status") > $null
# $viewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
# $viewInfo.Paged = $true
# $viewInfo.SetAsDefaultView = $true
# $viewInfo.ViewFields = $viewFields
# $viewInfo.Title = "$LibraryName View"
# $newView = $Library.Views.Add($viewInfo)
# $Ctx.ExecuteQuery()
# }
# ************** NC but NCS****************
# $SiteURL= "https://italsortbuttrio.sharepoint.com/sites/NonConformità"
# $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
# $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
# for ($i = 2; $i -le 5; $i++) {
# $year = "202$i"
# $LibraryName="Non Conformità $year"
# $Library=$Ctx.web.Lists.GetByTitle($LibraryName)
# $Ctx.Load($Library)
# $Ctx.ExecuteQuery()
# $viewFields = New-Object System.Collections.Specialized.StringCollection
# $viewFields.Add("DocIcon") > $null
# $viewFields.Add("LinkFilename") > $null
# $viewFields.Add("PAL_NC_Source") > $null
# $viewFields.Add("PAL_NC_Reference") > $null
# $viewFields.Add("PAL_NC_Nominative") > $null
# $viewFields.Add("PAL_NC_DateOfDetection") > $null
# $viewFields.Add("PAL_NC_Project") > $null
# $viewFields.Add("PAL_NC_ItemCode") > $null
# $viewFields.Add("PAL_NC_PortalUrl") > $null
# $viewFields.Add("PAL_Status") > $null
# $viewInfo = New-Object Microsoft.SharePoint.Client.ViewCreationInformation
# $viewInfo.Paged = $true
# $viewInfo.SetAsDefaultView = $true
# $viewInfo.ViewFields = $viewFields
# $viewInfo.Title = "$LibraryName View"
# $newView = $Library.Views.Add($viewInfo)
# $Ctx.ExecuteQuery()
# }
@@ -0,0 +1,246 @@
##########################
# Writer: Davide Conforti
# Company: PAL s.r.l.
#-------------------------
# Date: 2021/12/01
# v: 1.0
# Reason: Emission
#-------------------------
# Date: 2023/02/20
# v: 1.1
# Reason: Added winget functions
#-------------------------
##########################
#region Functions
function Initialize-Graylog {
Param ([string]$Facility)
if(!(Test-Path -PathType Container -Path "C:\temp\")){
New-Item -ItemType Directory -Force -Path "C:\temp\" | Out-Null
}
$logFile = "C:\temp\$($Facility).log"
if (Test-Path $logFile)
{
Remove-Item $logFile
}
try{
# Installing Graylog Module
if(!(Get-InstalledModule -Name "PSGELF")){
Add-Content -Path $logFile -Value "Installing PSGELF module"
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
Install-Module -Name PSGELF
Add-Content -Path $logFile -Value "PSGELF module installed!"
}
if(!(Get-Module -Name PSGELF)){
Add-Content -Path $logFile -Value "Importing PSGELF module"
Import-Module -Name PSGELF
Add-Content -Path $logFile -Value "PSGELF module imported!"
}
}
catch{
Add-Content -Path $logFile -Value $_
}
}
function Initialize-Winget {
$logString = "";
try{
if(!(Get-InstalledModule -Name winget)){
$logString += "Installing winget module...`r`n"
$logString += Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
$logString += Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
$logString += Install-Module -Name winget
$logString += "winget module installed!`r`n"
}
if(!(Get-Module -Name winget)){
$logString += "Importing winget module...`r`n"
$logString += Import-Module -Name winget
$logString += "winget module imported!`r`n"
}
}
catch{
$logString += "$_`r`n"
}
return $logString
}
# New
function Initialize-Icinga {
$logString = "";
$module = "icinga-powershell-framework";
try{
if(!(Get-InstalledModule -Name $module)){
$logString += "Installing icinga module...`r`n"
#$logString += Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
$logString += Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
$logString += Install-Module -Name $module
$logString += "Icinga module installed!`r`n"
}
if(!(Get-Module -Name $module)){
$logString += "Importing icinga module...`r`n"
$logString += Import-Module -Name $module
$logString += "Icinga module imported!`r`n"
}
}
catch{
$logString += "$_`r`n"
}
return $logString
}
function Write-Log {
Param ([string]$Facility, [string]$LogString, [int32]$Level = 5)
Initialize-Graylog $Facility
Send-PSGelfUDP -GelfServer "palgraylog01.pal.local" -Port 12204 -ShortMessage $LogString -Level $Level -Facility $Facility
}
function Install-Software {
Param ([string]$Facility, `
[string]$software, `
[string]$version, `
[string]$installPath, `
[string]$installArgument, `
[int32] $timeoutMinutes = 40, `
[bool]$mustUninstallOldVersions = $False, `
[bool]$forceInstallation = $False)
try{
$upToDate = $False
$logString = "`r`n"
$logString += "Checking current installed version for $($software)... (needing $($version))`r`n"
if(!$forceInstallation){
Get-Package -Name "$($software)" |
Foreach-Object {
if([System.Version]$_.Version -ge [System.Version]$version)
{
$logString += "-- Up to date with $($_.Name) v. $($_.Version)`r`n"
$upToDate = $True
}
else
{
if($_)
{
$logString += "-- Found old version: $($_.Name) v. $($_.Version)"
if($mustUninstallOldVersions){
# foreach ($uninstallPath in $uninstallPathArray) {
$logString += " - Uninstalling it..."
Write-Log $Facility $logString
Uninstall-Package $_
#Start-Process -NoNewWindow -Wait -FilePath $uninstallPath -ArgumentList $uninstallArgument
Write-Log $Facility "$($_.Name) v. $($_.Version) successfully uninstalled!"
$logString = ""
# }
}
else{
$logString += " `r `n"
}
}
}
}
}
if($logString){
Write-Log $Facility $logString
}
if(!$upToDate){
Write-Log $Facility "Installing $($software) v. $version"
$timeoutMinutes = $timeoutMinutes * 60
$proc = Start-Process -WindowStyle Hidden -FilePath $installPath -ArgumentList $installArgument -Passthru
$proc | Wait-Process -Timeout $timeoutMinutes -ErrorAction SilentlyContinue
Write-Log $Facility "$($software) installation succesfull!`r`n"
}
}
catch{
Write-Log $Facility $_ 3
}
}
function Set-WingetLocation {
$wingetdir = (Resolve-Path "C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe" | Sort-Object -Property Path | Select-Object -Last 1)
Set-Location $wingetdir
}
function Get-WingetInstalledSoftware {
Set-WingetLocation
$softwareList = .\winget.exe list --accept-source-agreements | Out-String
return $softwareList
}
function Install-WingetSoftware {
Param ([string]$SoftwareName, `
[string]$SoftwareId, `
[string[]] $InstalledSoftwareList)
Set-WingetLocation
$logString = ""
try{
$logString += "Checking for $($softwareName) installation...`r`n"
if($InstalledSoftwareList -like "*$($softwareId)*") {
$logString += "$($softwareName) already installed!`r`n"
}
else {
$logString += .\winget.exe install -h --accept-package-agreements --accept-source-agreements --id $softwareId | Out-String
$logString += "`r`n$($softwareName) installed!`r`n"
}
}
catch{
$logString += "$_`r`n"
}
return $logString
}
function Install-WingetUpdates {
Set-WingetLocation
$logString = "Checking for updates...`r`n"
try{
$logString += .\winget.exe upgrade -h --all --accept-source-agreements | Out-String
$logString += "Updates installed!`r`n"
}
catch{
$logString += "$_`r`n"
}
return $logString
}
function Add-Machine-EnvVar-PSModulePath($Path) {
$Path = [Environment]::GetEnvironmentVariable("PSModulePath", "Machine") + [IO.Path]::PathSeparator + $Path
[Environment]::SetEnvironmentVariable( "PSModulePath", $Path, "Machine" )
}
function Get-IsComputerMemberOf {
Param ([string]$Group)
try {
#Get Computer's DN
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher.Filter = "(&(objectCategory=Computer)(SamAccountname=$($env:COMPUTERNAME)`$))"
$obj = $objSearcher.FindOne()
$Computer = $obj.Properties["distinguishedname"]
#Now get the members of the group
$objSearcher.Filter = "(&(objectCategory=group)(SamAccountname=$Group))"
$obj = $objSearcher.FindOne()
[String[]]$Members = $obj.Properties["member"]
return $Members -contains $Computer
}
catch {
return $False;
}
}
#endregion
@@ -0,0 +1,119 @@
##########################
# Writer: Davide Conforti
# Company: PAL s.r.l.
#-------------------------
# Date: 2023/02/20
# v: 1.0
# Reason: Emission
#-------------------------
##########################
# This is needed to run the software in debug mode
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# Importing base functions
. \\pal.local\NETLOGON\Powershell\Base-Functions.ps1
$latestDate = "01/12/2021" # First release
$scriptUser = "DC"
$latestVersion = "1.0.0"
$displayName = "Software Installation Script"
#region Initialization
$logString = "`r`n"
$logString += "#################################`r`n"
$logString += "# __________ _____ .____ #`r`n"
$logString += "# \______ \/ _ \ | | #`r`n"
$logString += "# | ___/ /_\ \| | #`r`n"
$logString += "# | | / | \ |___ #`r`n"
$logString += "# |____| \____|__ /_______ \ #`r`n"
$logString += "# \/ \/ #`r`n"
$logString += "# #`r`n"
$logString += "#################################`r`n"
$logString += "`r`n"
$logString += "`r`n"
$logString += " *** $displayName *** `r`n"
$logString += "`r`n"
$logString += " Date: $($latestDate)`r`n"
$logString += " User: $($scriptUser)`r`n"
$logString += " Version: $($latestVersion)`r`n"
$logString += "`r`n"
try {
$logString += "Initializing WinGet...`r`n"
$logString += Initialize-Winget
$logString += "Done!`r`n"
$logString += "Getting the list of installed software...`r`n"
$installedSoftwareList = Get-WingetInstalledSoftware
$logString += "Done!`r`n"
# 7Zip
if(Get-IsComputerMemberOf -Group "PAL SFTW 7ZIP") {
$logString += Install-WingetSoftware -SoftwareName "7Zip" -SoftwareId "7zip.7zip" -InstalledSoftwareList $installedSoftwareList
}
# Adobe Acrobat Reader DC
if(Get-IsComputerMemberOf -Group "PAL SFTW ADOBE READER") {
$logString += Install-WingetSoftware -SoftwareName "Adobe Acrobat Reader DC (64-bit)" -SoftwareId "Adobe.Acrobat.Reader.64-bit" -InstalledSoftwareList $installedSoftwareList
}
# Anydesk
if(Get-IsComputerMemberOf -Group "PAL SFTW ANYDESK") {
$logString += Install-WingetSoftware -SoftwareName "Anydesk" -SoftwareId "AnyDeskSoftwareGmbH.AnyDesk" -InstalledSoftwareList $installedSoftwareList
}
# LibreOffice
if(Get-IsComputerMemberOf -Group "PAL SFTW LIBREOFFICE") {
$logString += Install-WingetSoftware -SoftwareName "Libreoffice" -SoftwareId "TheDocumentFoundation.LibreOffice" -InstalledSoftwareList $installedSoftwareList
}
# Mozilla Firefox
if(Get-IsComputerMemberOf -Group "PAL SFTW FIREFOX") {
$logString += Install-WingetSoftware -SoftwareName "Mozilla Firefox" -SoftwareId "Mozilla.Firefox" -InstalledSoftwareList $installedSoftwareList
}
# Mozilla Thunderbird
if(Get-IsComputerMemberOf -Group "PAL SFTW THUNDERBIRD") {
$logString += Install-WingetSoftware -SoftwareName "Mozilla Thunderbird" -SoftwareId "Mozilla.Thunderbird" -InstalledSoftwareList $installedSoftwareList
}
# Nextcloud Desktop
if(Get-IsComputerMemberOf -Group "PAL SFTW NEXTCLOUD DESKTOP") {
$logString += Install-WingetSoftware -SoftwareName "Nextcloud Desktop" -SoftwareId "Nextcloud.NextcloudDesktop" -InstalledSoftwareList $installedSoftwareList
}
# Notepad++
if(Get-IsComputerMemberOf -Group "PAL SFTW NOTEPAD PLUS PLUS") {
$logString += Install-WingetSoftware -SoftwareName "Notepad++" -SoftwareId "Notepad++.Notepad++" -InstalledSoftwareList $installedSoftwareList
}
# VideoLAN VLC Media Plauer
if(Get-IsComputerMemberOf -Group "PAL SFTW VLC") {
$logString += Install-WingetSoftware -SoftwareName "VideoLAN VLC" -SoftwareId "VideoLAN.VLC" -InstalledSoftwareList $installedSoftwareList
}
# Microsoft Visual Studio 7
if(Get-IsComputerMemberOf -Group "PAL SFTW VSC") {
$logString += Install-WingetSoftware -SoftwareName "Microsoft - Visual Studio Code" -SoftwareId "Microsoft.VisualStudioCode" -InstalledSoftwareList $installedSoftwareList
}
# Microsoft DotNet Runtime 7
$logString += Install-WingetSoftware -SoftwareName "Microsoft .NET Desktop Runtime 7" -SoftwareId "Microsoft.DotNet.DesktopRuntime.7" -InstalledSoftwareList $installedSoftwareList
# Microsoft WebView 2
$logString += Install-WingetSoftware -SoftwareName "Microsoft - WebView2 Runtime" -SoftwareId "Microsoft.EdgeWebView2Runtime" -InstalledSoftwareList $installedSoftwareList
# Upgrade all software
$logString += Install-WingetUpdates
}
catch {
$logString += "$_`r`n"
}
Write-Log $displayName $logString
+14
View File
@@ -0,0 +1,14 @@
$Today = (Get-Date).DateTime
$Hello = 'Hello World!'
$Senza = 'Senza Write Host'
Write-Host $Hello
Write-Host $Today
$Senza
# $null eliminare una variabile
$Senza = $null
$Senza
+13
View File
@@ -0,0 +1,13 @@
#Read Host
#function getUsername {
# param ([string]
# $name = (
# Read-Host 'Inserisci il tuo nome:'
# )
# )
# Write-Host 'Benvenuto $name'
#}
$name = Read-Host 'Inserisci il tuo nome'
Write-Host 'Benvenuto', $name, '!'
+6
View File
@@ -0,0 +1,6 @@
Get-ADDomain | Select-Object InfrastructureMaster, RIDMaster, PDCEmulator
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster
Get-ADDomainController -Filter * |
Select-Object Name, Domain, Forest, OperationMasterRoles |
Where-Object {$_.OperationMasterRoles} |
Format-Table -AutoSize
+27
View File
@@ -0,0 +1,27 @@
function Show-Menu {
param (
[string]$Title = 'My Menu'
)
Clear-Host
Write-Host "================ $Title ================"
Write-Host "1: Press '1' for this option."
Write-Host "2: Press '2' for this option."
Write-Host "3: Press '3' for this option."
Write-Host "Q: Press 'Q' to quit."
} do {
Show-Menu
$selection = Read-Host "Please make a selection"
switch ($selection)
{
'1' {
'You chose option #1'
} '2' {
'You chose option #2'
} '3' {
'You chose option #3'
}
}
pause
}
until ($selection -eq 'q')
+1
View File
@@ -0,0 +1 @@
1..254 | ForEach-Object {Test-Connection -ComputerName "172.16.83.$_" -Count 1 -ErrorAction:SilentlyContinue -AsJob} | Get-Job | Receive-Job -Wait -AutoRemoveJob | Where-Object {$_.StatusCode -eq 0} | Select-Object -Property Address
+22
View File
@@ -0,0 +1,22 @@
$EmailFrom = "no-replay@pal.it"
$Subject = "PAL SRL - BUONI CARBURANTE Q8"
$EmailTo = "claudio.boggian00@gmail.com"
$Body = "Buongiorno,
a seguito della decisione aziendale di erogare il 'bonus benzina' secondo la possibilità data dallart. 1 del DL n. 5 del 2023 (Decreto carburanti), con la presente invio in allegato il file pdf contenente i buoni carburante Q8.
I buoni potranno essere presentati in cassa (da smartphone o stampati) oppure utilizzati digitando il codice di 26 cifre nella colonnina del distributore self-service, selezionando la voce 'utilizza codice'.
Cordiali saluti,
PAL s.r.l."
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$SMTPClient = New-Object Net.Mail.SmtpClient("paldocker01.pal.local", 25)
$SMTPClient.Send($SMTPMessage)
LogWrite("Send mail to $EmailTo with $FilePath1")
Write-Host("Send mail to $EmailTo") -ForegroundColor Green
+41
View File
@@ -0,0 +1,41 @@
$ArNames1 = @("Hakeem Drake", "Bill Kimble", "Dejon Howard", "Lazaro Klinger", "Madilynn Nunn", "Melanie Bandy", "Maribel Purvis", "Willis Meeks", "Maryann Burk", "Breeanna Goldman", "Lazagerro Klin")
$ArRev1 = @("B","F","U","D","G","E","K","N","K","O","")
$objs = $null
$ArNames2 = @("Hakeem Drake", "Bill Kimble", "Dejon Howard", "Lazaro Klinger", "Melanie Bandy", "Maribel Purvis", "Willis Meeks", "Maryann Burk", "Breeanna Goldman", "Maribel Nim")
$ArRev2 = @("B","F","U","R","G","E","K","J","K","O")
if($ArNames1.Count -eq $ArRev1.Count){
for ($i = 0; $i -lt $ArNames1.Count; $i++) {
$sp = $ArNames2.IndexOf($ArNames1[$i])
if($sp -lt 0){
$objs += @(New-Object -TypeName PSObject -Property @{
Name = $ArNames1[$i]
RevA = $ArRev1[$i]
Eq = "missing"
})
}
else{
$eq = $ArRev1[$i].Equals($ArRev2[$sp])
$objs += @(New-Object -TypeName PSObject -Property @{
Name = $ArNames1[$i]
RevA = $ArRev1[$i]
RevB = $ArRev2[$sp]
Eq = $eq
})
}
}
}
$objs | Select-Object Name, RevA, RevB, Eq
+21
View File
@@ -0,0 +1,21 @@
$e = @(
"pipplo a pluto",
"pipplo b pluto0",
"pipplo c pluto",
"pipplo a pluto",
"pipplo b pluto1",
"pipplo a pluto",
"pipplo a pluto",
"pipplo a pluto",
"pipplo b pluto2",
"pipplo a pluto",
"pipplo b pluto3",
"pipplo a pluto"
)
foreach($s in $e)
{
if ($s -Match " b ") {
Write-Output $s
}
}
@@ -0,0 +1,13 @@
Invoke-Command -ComputerName PC179 -ScriptBlock {
Get-ciminstance -class SoftwareLicensingProduct |
where {$_.name -match Office 16, Office16O365HomePremR_Subscription5 -AND $_.licensefamily} |
format-list -property Name, Description, `
@{Label=Grace period (days); Expression={ $_.graceperiodremaining / 1440}}, `
@{Label= License Status; Expression={switch (foreach {$_.LicenseStatus}) `
{ 0 {Unlicensed} `
1 {Licensed} `
2 {Out-Of-Box Grace Period} `
3 {Out-Of-Tolerance Grace Period} `
4 {Non-Genuine Grace Period} `
} } }
}
+11
View File
@@ -0,0 +1,11 @@
Get-ciminstance -class SoftwareLicensingProduct |
where {$_.name -match Office 16, Office16O365HomePremR_Subscription5 -AND $_.licensefamily} |
format-list -property Name, Description, `
@{Label=Grace period (days); Expression={ $_.graceperiodremaining / 1440}}, `
@{Label= License Status; Expression={switch (foreach {$_.LicenseStatus}) `
{ 0 {Unlicensed} `
1 {Licensed} `
2 {Out-Of-Box Grace Period} `
3 {Out-Of-Tolerance Grace Period} `
4 {Non-Genuine Grace Period} `
} } }
@@ -0,0 +1,13 @@
$app = 'PS - User Catch'
$ver = 'v 0.0'
Write-Host $app, $ver,"`n Sweep Ip start"
$sweepip = (190..202) | % {
$ip="172.16.82.$_";
Write-output "$IP `t` $(test-connection -computername "$ip" -quiet -count 1) `t` $(Resolve-DnsName $ip -ErrorAction Ignore |select -exp NameHost)`n"
}
#$userquery = query user /server:$pippo
Write-Host $sweepip
@@ -0,0 +1,29 @@
$app = 'PS - User Catch'
$ver = 'v 0.1'
Write-Host $app, $ver,"`n UserCatch"
$SweepIp = (193..198) | % {
$Ip="172.16.82.$_";
$Status=test-connection -computername "$ip" -quiet -count 1;
$StatusOut = switch ($Status) {
'True' {"True"}
'False' {"`0"}
}
$GetHostname=Resolve-DnsName $ip -ErrorAction Ignore |select -exp NameHost;
$QueryUser=if ($StatusOut -like 'True'){
if ($GetHostname -like 'PC*'){
(query user /server:$GetHostname) -split "`n" -replace '\s\s+', ';' | convertfrom-csv -Delimiter ';'
}
}
Write-output "`n$IP `t $StatusOut `t $GetHostname"
if ($GetHostname -like 'PC*'){
Write-Output "`n$QueryUser"
}
}
Write-Host $SweepIp
@@ -0,0 +1,43 @@
$app = "PS - User Catch"
$ver = "v 0.2"
$start = "Stai eseguendo:"
$exec = "Lo script $app e' in esecuzione."
Write-Host $start, $app, $ver, "`n$exec"
$UserCatch = (173..176) | % {
$Ip = "172.16.91.$_";
$Status = test-connection -computername "$ip" -quiet -count 1;
$StatusOut = switch ($Status) {
'True' {"True"}
'False' {"`0"}
}
$GetHostname = Resolve-DnsName $ip -ErrorAction Ignore |select -exp NameHost;
$QueryUser = if ($GetHostname -like 'PC*'){
foreach ($s in $GetHostname) #For Each Server
{
foreach($ServerLine in @(query user /server:$s) -split "\n") #Each Server Line
{
#USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
$Parsed_Server = $ServerLine -split "\s+"
$Parsed_Server[1] #USERNAME
$Parsed_Server[4] #STATE
$Parsed_Server[6] #LOGON TIME
}
}
}
Write-output "`n$IP`t$StatusOut`t$GetHostname"
if ($GetHostname -like 'PC*'){
Write-Output "`n$QueryUser`n"
}
}
Write-Host $UserCatch
@@ -0,0 +1,51 @@
$app = "PS - User Catch"
$ver = "v 0.3"
$start = "Stai eseguendo:"
$exec = "Lo script $app e' in esecuzione."
Write-Host $start, $app, $ver
Write-Host $exec -fore green
$UserCatch = (180..200) | % {
$Ip = "172.16.82.$_";
$Status = test-connection -computername "$ip" -quiet -count 1;
$StatusOut = switch ($Status) {
'True' {"True"}
'False' {"`0"}
}
if ($Status -like 'True') {
$GetHostname = Resolve-DnsName $ip -ErrorAction Ignore |select -exp NameHost;
$QueryUser = if ($GetHostname -like 'PC*') {
foreach ($s in $GetHostname){
foreach($ServerLine in @(query user /server:$s) -split"\n")
{
$Parsed_Server = $ServerLine -split"\s+"
$Parsed_Server[1]
$Parsed_Server[4]
$Parsed_Server[6]
}
}
}
Write-output "`n$IP`t$StatusOut`t$GetHostname"
if ($GetHostname -like 'PC*') {
Write-Output "`n$QueryUser`n"
}
}
else {
"`0"
}
}
Start-Transcript -Path .\testlog.txt
Write-Host $UserCatch
Stop-Transcript
@@ -0,0 +1,69 @@
$app = "PS - UserCatch"
$ver = "v 0.4"
$start = "Stai eseguendo:"
$exec = "Lo script $app e' in esecuzione."
Write-Host $start, $app, $ver
Write-Host $exec -fore green
$UserCatch = (1..254) | % {
$Ip = "172.16.94.$_";
$Status = test-connection -computername "$ip" -quiet -count 1;
$StatusOut = switch ($Status) {
'True' {"True"}
'False' {"`0"}
}
if ($Status -like 'True') {
$GetHostname = Resolve-DnsName $ip -ErrorAction Ignore | select -exp NameHost;
$QueryUser = if ($GetHostname -like 'PC*') {
foreach ($s in $GetHostname){
foreach($ServerLine in @(query user /server:$s) -split"\n")
{
$Parsed_Server = $ServerLine -split"\s+"
$Parsed_Server[1]
}
}
}
$QueryState = if ($GetHostname -like 'PC*') {
foreach ($s in $GetHostname){
foreach($ServerLine in @(query user /server:$s) -split"\n")
{
$Parsed_Server = $ServerLine -split"\s+"
$Parsed_Server[4]
}
}
}
$QueryLogon = if ($GetHostname -like 'PC*') {
foreach ($s in $GetHostname){
foreach($ServerLine in @(query user /server:$s) -split"\n")
{
$Parsed_Server = $ServerLine -split"\s+"
$Parsed_Server[6]
}
}
}
Write-output "`n$IP`t$GetHostname"
if ($GetHostname -like 'PC*') {
Write-Output "`n`n$QueryUser"
Write-Output "`n$QueryState"
Write-Output "`n$QueryLogon`n"
}
}
else {
"`0"
}
}
Write-Host $UserCatch
+14
View File
@@ -0,0 +1,14 @@
$Server = "PC284.pal.local"
$Sessions = (quser /server:$Server) -replace '\s{2,}', ',' | ConvertFrom-Csv
$Utente = $Sessions.NOMEUTENTE
$Sessione = $Sessions.NOMESESSIONE
$Stato = $Sessions.STATO
$Tempo = $Sessions."INATTIVITÀ ACCESSO"
Write-Host "Host: "$Server
Write-Host "Utente: "$Utente
Write-Host "Sessione: "$Sessione
Write-Host "Stato: "$Stato
Write-Host "Tempo: "$Tempo
+12
View File
@@ -0,0 +1,12 @@
$app = "PS - UserCatch"
$ver = "v 1.0"
$start = "Stai eseguendo:"
$exec = "Lo script $app e' in esecuzione."
Write-Host $start, $app, $ver
Write-Host $exec -fore Yellow
(1..254) | % {$IP ="172.16.94.$_"; Write-Output "$(
ForEach-Object {Test-Connection -ComputerName $IP -Count 1 -ErrorAction:SilentlyContinue -AsJob} | Get-Job | Receive-Job -Wait -AutoRemoveJob | Where-Object {$_.StatusCode -eq 0} | Select-Object -exp Address
)"}
+14
View File
@@ -0,0 +1,14 @@
PS C:\Users\cbo\Documents\Code\PowerShell\Script> .\UserCatch.ps1
Stai eseguendo: PS - User Catch v 0.3
Lo script PS - User Catch e' in esecuzione.
172.16.82.191 True
172.16.82.192 True Galaxy-A20e.pal.local
172.16.82.193 True NB082.pal.local
172.16.82.196 True Galaxy-Tab-S4.pal.local
172.16.82.197 True PC213.pal.local
NOMEUTENTE STATO ACCESSO dc Attivo 20/05/2021
172.16.82.198 True PC210.pal.local
NOMEUTENTE STATO ACCESSO cbo Attivo 25/05/2021