• Bewerte uns auf OMR Reviews: Klick

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagatracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

NSP bereinigen - Fehlerhafter Einträge NSP/FileSystem

Hallo,
aus gegebenen Anlass.
Bei mir kam es nun vor, vielleicht auch nur Zufall.
Der Ablageplatz im NSP FileSystem für LargeFile wurde immer größer.
Einige Ordner waren vorhanden, jedoch konnten diese in der NSP Console nicht gefunden werden.

Suche war Mühselig, also baute ich mir was zusammen, vielleicht kann es jemand benötigen.
Simpel und Einfach gehalten.

Das PowersShell Script geht in den Ordner wo die Daten liegen
idr. C:\Program Files\Net at Work Mail Gateway\enQsig Webportal\App_Data\Files
sucht sich alle Ordner raus und vergleich die Ordnernamen (IDs) mit den IDs im NSP.
Wenn Ordner vorhanden aber im NSP diese ID nicht zu finden ist, wird gefragt ob Ordner gelöscht werden soll.


Bash:
# v1.2
write-Host "---------------------------------------------" -ForegroundColor Yellow

#Path to the Webportal on Server
$filePath = "C:\Program Files\Net at Work Mail Gateway\enQsig Webportal\App_Data\Files"

if (Test-Path $filePath)
{
#Check Folders an geht all Folder Names
$NSPStoreFolder = Get-ChildItem -Recurse -Force -Directory $filePath -ErrorAction SilentlyContinue
#Count all Folders
$NSPStoreFolderID = $NSPStoreFolder.Count
#Output Sum
Write-Host "Found $NSPStoreFolderID Entrys"

#do for each Folder Check / Check Folder ID with NSP ID - IF Found OK - Not Found aks to delete
foreach($NSPStoreFolderGET in $NSPStoreFolder)
{
$checkNSP = (Get-NspLargeFile -NameOrId $NSPStoreFolderGET).count

if($checkNSP -eq $true)
{
#if found Output Found - can be Disabled with a # next Line
#Write-Host "found" + $NSPStoreFolderGET -ForegroundColor Green
}
else
{
# not found in NSP
Write-Host "NoFound" + $NSPStoreFolderGET -ForegroundColor Red
# aks to delete from Filesystem
$NSPConfirmDEL = Read-Host "Delte entry $NSPStoreFolderGET that not found in NSP? (type y for yes)"
if($NSPConfirmDEL -eq 'y')
{
# remove ID from Storage
#Remove-NspLargeFile -Id $NSPStoreFolderGET
Remove-Item -Path "$filePath\$NSPStoreFolderGET" -Recurse

Write-Host "$filePath\$NSPStoreFolderGET is deleted" -ForegroundColor Magenta
}
}

}


}
else {
write-warning -Message "--------Pathn not exist ----------------"
}


1718955374933.png
 
Danke fürs teilen! Besteht die Möglichkeit den Code in einem Git Repository bereit zustellen. Ich würde mich gerne an der Weiterentwicklung/Verbesserung beteiligen. Macht aber keinen Sinn, dass wir nach und nach verschiedene Kopien hier im Beitrag haben.
 
hier hab ich es mal hoch gepackt,
Danke dir, Frank.

@Sören
Ich habe zwei Fragen an dich:
  • Wo finde ich die Informationen, bezüglich der Installation von Web Portal bzw. den Pfad zur Datei WebPortal.config. Ich würde diese gerne dynamisch auslesen.
  • Das cmdlet Get-NspLargeFile ist meines Wissens nach nur auf dem Server, auf dem die Intranet Rolle installiert ist, verfügbar. Was zur Folge hat, dass das Skript nur funktioniert, wenn Intranet und Web Portal Rolle auf einem Server laufen. Gibt es eine Möglichkeit das cmdlet auch auf dem WebPortal zu installieren?

Gruß,
Dani
 
Guten Morgen,

es gibt zwei Mögliche Standardpfade für die WebPortal Installation:
pre v14: C:\Program Files\Net at Work Mail Gateway\enQsig Webportal
post v14: C:\Program Files\NoSpamProxy\Web Portal
Dort dann jeweils im "App_Data" Unterverzeichnis.


Das CmdLet kann nicht auf dem WebPortal betrieben werden da es ausschließlich mit der Intranet Rolle interagiert. Wir werden aber beim Neubau des WebPortals schauen, dass eine Verwahrlosung eher nicht weiter auftritt.
 
es gibt zwei Mögliche Standardpfade für die WebPortal Installation:
Bei ist das D:\ und E:\. Daher die Frage, wie ich den Pfad dynamisch erfassen kann.

Das CmdLet kann nicht auf dem WebPortal betrieben werden da es ausschließlich mit der Intranet Rolle interagiert. Wir werden aber beim Neubau des WebPortals schauen, dass eine Verwahrlosung eher nicht weiter auftritt.
Argh, okay. Das ist natürlich unschön. Wer installiert schon beide Rollen auf einer VM?! o_O
 
Wenn das bei dir dein generelles Systemlaufwerk/Programmverzeichnis ist wird dir
Code:
$env:ProgramFiles
den Pfad bis NoSpamProxy liefern.
Wenn du aber einen eignen Pfad während der Installation gewählt hast gibt es keinen einfachen und sinnvollen Weg das automatisch abzufragen ;)
 
Argh, okay. Das ist natürlich unschön. Wer installiert schon beide Rollen auf einer VM?! o_O
Kunden die nur die Encryption oder Disclaimer gekauft haben sowie Kunden die keine DMZ haben, Kunden die die Maschinen bei AWS, Hetzner, usw hosten und lediglich ein Sync ins Azure AD machen... die "keine DMZ" kann man nur belehren, da die sowieso ein größeres Problem haben
 
Wenn du aber einen eignen Pfad während der Installation gewählt hast gibt es keinen einfachen und sinnvollen Weg das automatisch abzufragen ;)
Okay. Es wird in dem Fall eine Benutzereingabe. :LOL:

Kunden die nur die Encryption oder Disclaimer gekauft haben sowie Kunden die keine DMZ haben, Kunden die die Maschinen bei AWS, Hetzner, usw hosten und lediglich ein Sync ins Azure AD machen...
Prima. Jetzt werde ich heute Abend wieder nur ganz schwer einschlafen. ;)
 
Zurück
Oben