I want to watch a folder with powershell and I am a PS beginner.
That script works ONE time when I start the script.
But when I have to restart the script again because I changed some script code I get this error message:
Cannot subscribe to the specified event. A subscriber with the source identifier 'FileChanged' already exists.
I tried:
this at the top of the script:
Unregister-Event -SourceIdentifier FileChanged
does not work.
How do I correctly unregister the event so I can run my script as often I want and the previously registered event is disposed?
CODE
$folder = "C:\temp"
$Watcher = New-Object IO.FileSystemWatcher $folder -Property @{
IncludeSubdirectories = $true
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onChanged = Register-ObjectEvent $Watcher Changed -SourceIdentifier FileChanged -Action {
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp"
Write-Host $path
#Move-Item $path -Destination $destination -Force -Verbose
}