Der Code ist für unser Betriebs Netzwerk zu langsam. Lokal funktioniert alles super. Wie kann man den Code schneller machen?
Code:
$desktopFolder=[Environment]::GetFolderPath('Desktop')
$VonOrdner="\\deploy\deployment$\log\EmpPackages"
$global:NachOrdner="$desktopFolder\test2"
$Dateiname="Alle2.log"
Copy-Item "$VonOrdner\$Dateiname" $global:NachOrdner
#Inhalt der KopiertestServer.txt Datei einlesen
$global:VergleichsString=try{[System.IO.File]::ReadAllText("$VonOrdner\$Dateiname")}catch{}
New-Item $global:NachOrdner -ItemType "directory" -force #Ordner anlegen falls er nicht existiert
$watcher=New-Object System.IO.FileSystemWatcher
$watcher.Path=$VonOrdner
$watcher.Filter=$Dateiname
$watcher.IncludeSubdirectories=$false
$watcher.EnableRaisingEvents=$false
$action={
$changeType = $Event.SourceEventArgs.ChangeType
$VonPfad = $Event.SourceEventArgs.FullPath
$SourceDatei = $Event.SourceEventArgs.Name
$NachPfad = "$global:NachOrdner\$SourceDatei"
#Den neuen Inhalt einlesen
$NeuerInhalt=try{[System.IO.File]::ReadAllText($VonPfad)}catch{}
Write-Host "Start"
#Ab hier hängt sich auf
#---------------------------------------------------------------------------------------------------------------------
$Unterschied=$NeuerInhalt -replace "^$global:VergleichsString",''
#---------------------------------------------------------------------------------------------------------------------
#Ausgabe des Unterschiedes
Write-Host "Unterschied: $Unterschied" -fo red
[System.IO.File]::AppendAllText($NachPfad,$Unterschied)
#vergleichsstring updaten
$global:VergleichsString=$NeuerInhalt
}
Register-ObjectEvent $watcher "Changed" -Action $action|Out-Null
while ($true) {
sleep 1
}