PowerShell, FileSystem Monitoring

Push
Free Push Services
5 maggio 2016
List-RDPs
PowerShell, List RDP Sessions
30 maggio 2016
Mostra tutto

PowerShell, FileSystem Monitoring

PowerShell
A volte è necessario sapere in tempo reale, se un file o una cartelle sono stati modificati.
Tramite PowerShell è possibile monitorare questi cambiamenti, ecco come creare una semplice funzione per il monitoraggio:
Function Register-Watcher {
    param ($folder)
    $filter = "*.*" #Tutti i File
    $watcher = New-Object IO.FileSystemWatcher $folder, $filter -Property @{ 
        IncludeSubdirectories = $false #Ricorsivo
        EnableRaisingEvents = $true
    }

    $changeAction = [scriptblock]::Create('
        # Questo è il codice eseguito ad ogni rilevamento!
        $path = $Event.SourceEventArgs.FullPath
        $name = $Event.SourceEventArgs.Name
        $changeType = $Event.SourceEventArgs.ChangeType
        $dateStamp = Get-Date -format "d/MM/yyyy" $Event.TimeGenerated
        $timeStamp = Get-Date -format "HH:mm:ss" $Event.TimeGenerated
        Write-Host "Il file $name è stato $changeType il $dateStamp alle $timestamp"
    ')

    Register-ObjectEvent $Watcher "Changed" -Action $changeAction
}

# Monitoraggio cartella di test
 Register-Watcher "c:temp"
Nell'esempio riportato, viene creata una funzione "Register-Watcher" per il monitoring che viene poi richiamata passandogli il path da monitorare, in questo caso: "C:Temp".

* Nota: Oltre all'evento "Changed" il watcher supporta i seguenti eventi: "Changed", "Created", "Deleted" e "Renamed".

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *