AMSI Defender Erweiterung für SharePoint aktivieren

AMSI steht für Antimalware Scan Interface. Die Software ist eine Art Zwischenschicht zwischen einer Antiviren-Lösung (wie Defender) und einem Software-Produkt (wie SharePoint, Exchange usw.), welche es der Software ermöglicht, zusätzliche Bedrohungen schon dann zu erkennen, bevor die Bedrohung die eigentlichen Prozesse erreicht. [1]

Im Grunde wird der HTTP-Datenstrom bzw. Arbeitsspeicher bzw. auf der Protokollebene von dem Softwareprodukt mit Hilfe der API der Antivirenlösung auf bedrohliche Elemente im voraus gescannt.

Die AMSI-Integration in SharePoint Server ist standardmäßig deaktiviert. [2]
In dieser Anleitung wird gezeigt, wie man AMSI für SharePoint aktiviert.

Es müssen mindestens folgende zwei Voraussetzungen erfüllt sein:

  • Antivirenprodukt muss AMSI unterstützen und
  • Das Produkt bzw. die Software muss die AMSI-Schnittstelle integriert haben.

Unter anderem folgende Elemente werden gescannt: [3]

  • Benutzerkontensteuerung oder UAC (Erhöhung der EXE-, COM-, MSI- oder ActiveX-Installation)
  • PowerShell (Skripts, interaktive Verwendung und dynamische Codeauswertung)
  • Windows Script Host (wscript.exe und cscript.exe)
  • JavaScript und VBScript
  • Office VBA-Makros

AMSI-Architektur

Voraussetzungen

Auf jedem SP-Server überprüfen:

  • Windows Server 2016 oder höher
  • SharePoint Server-Abonnementedition Version 22H2 oder höher
  • SharePoint Server 2019 Build 16.0.10396.20000 oder höher (KB-5002358: Sicherheitsupdate vom 14. März 2023 für SharePoint Server 2019)
  • SharePoint Server 2016 Build 16.0.5391.1000 oder höher (KB-5002385: Sicherheitsupdate vom 11. April 2023 für SharePoint Server 2016)
  • Microsoft Defender mit AV-Engine-Version 1.1.18300.4 oder höher (alternativ ein kompatibler AMSI-fähiger Drittanbieter für Antiviren-/Antischadsoftware) ^2

Mögliche Nachteile

  • Je nach Antiviren-Software kann die Performance des Softwareproduktes bzw. die CPU-Leistung stark beeinträchtigt werden, weil theoretisch jede HTTP-Anfrage untersucht werden könnte. ^2
  • Wird eine Antivirensoftware installiert, dann wird Defender automatisch deaktiviert, bis die Antivirensoftware deinstalliert wird. Falls die neue Antivirensoftware dabei kein AMSI unterstützt, dann ist der AMSI-Schutz nicht vorhanden.

AMSI-Provider anzeigen

Anzeigen, welche AMSI-Provider von Antiviren-Tools registriert wurden

$AMSI = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\AMSI\Providers' -Recurse
$AMSI -match '[0-9A-Fa-f\-]{36}'
$Matches.Values | ForEach-Object {Get-ChildItem "HKLM:\SOFTWARE\Classes\CLSID\{$_}" | Format-Table -AutoSize}

Hier ist nur der Defender vorhanden, der auf die AMSI API zugreift.

Ausgabebeispiel:


True

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{2781761E-28E0-4109-99FE-B9D127C57AFE}

Name                   Property                                      
----                   --------                                      
Hosts                  (default) : Scanned Hosting Applications                                                          
Implemented Categories                                               
InprocServer32         (default)      : "C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.23050.5-0\MpOav.dll"    
                       ThreadingModel : Both

SP-Farm Version anzeigen

# SharePoint Modul laden
Add-PSSnapin Microsoft.SharePoint.PowerShell
# Buildversion ausgeben 
(get-spfarm).buildversion

Die Farmversion muss ^2

  • Für SP 2016 > 16.0.5391.1000 sein
  • Für SP 2019 > 16.0.10396.20000 sein

Ausgabebeispiel:

Major  Minor  Build  Revision
-----  -----  -----  --------
16     0      10398  20000

Defender Engine Version anzeigen

CMD als Admin öffnen.

cd %ProgramData%\Microsoft\Windows Defender\Platform
dir
:: Angezeigten <Ordnernamen> mit höchster Version beim nächsten Befehl verwenden
cd <Ordnername>
mpcmdrun.exe -SignatureUpdate

Die Engine muss > 1.1.18300.4 sein ^2

Copyright (C) Microsoft Corporation. All rights reserved.
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2105.5-0>MpCmdRun.exe -SignatureUpdate
Signature update started . . .
Service Version: 4.18.2106.6
➡ Engine Version: 1.1.18300.4 ⬅
AntiSpyware Signature Version: 1.343.1364.0
AntiVirus Signature Version: 1.343.1364.0
Signature update finished. No updates needed
C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2105.5-0>

AMSI Aktivierung per Zentraladministration

Pro Webanwendung folgende Schritte durchführen.

  1. CA aufrufen
  2. Application Management
  3. Manage web applications
  4. Webanwendung auswählen, für die AMSI aktiviert werden soll
    1. Manage Features (oben im Ribbon)
  5. Feature suchen
    1. SharePoint Server Antimalware Scanning
      Beschreibung: "Detect and block potential malware attacks against a web application."
    2. und auf Activate klicken.
    3. Mit OK das Fenster schließen.
  6. Für alle gewünschten WebApps wiederholen (bei uns MySite, Portal und CA).

AMSI Aktivierung per PowerShell (alternativ) ^2

Einzeln und selektiv (nach Bedarf) in PowerShell ausführen.


# SharePoint Modul laden
Add-PSSnapin Microsoft.SharePoint.PowerShell

# Alle WebApplikationen ausgeben (inkl. CA)
Get-SPWebApplication -IncludeCentralAdministration

# Prüfen, ob AMSI für eine bestimmte WebApp aktiv ist
Get-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -WebApplication https://WebApp-url.de/
# Aktiviert, wenn Ausgabe ohne Fehler, bei Fehler (s.u.) nicht aktiviert.
# Get-SPFeature : Cannot find an Enabled Feature object with Id: 4cf046f3-38c7-495f-a7da-a1292d32e8e9 in scope  WebApplication Url: https://WebApp-url.de/

# AMSI für eine WebApp aktivieren
# DisplayName "AntimalwareScan"
Enable-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -Url https://WebApp-url.de/

# AMSI für eine WebApp deaktivieren
# DisplayName "AntimalwareScan"
Disable-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -Url https://WebApp-url.de/

# AMSI für alle WebApps (inkl. CA) aktivieren
# URLs der WebApps
$WebApps = Get-SPWebApplication -IncludeCentralAdministration | select Url
# WebApps zu String
# Vorsicht: Es gibt auch leere Zeilen davor und danach
$WebAppsString = $WebApps | Out-String
# Strin in Zeilen aufteilen
$WebAppArray = $WebAppsString.split("`n")
# Erste Header-Zeilen und letzten leeren Zeilen entfernen
$WebAppNoHeader = $WebAppArray | Select-Object -Skip 3 | Select-Object -SkipLast 3
# Feature für alle WebApps aktivieren
ForEach($WebApp in $WebAppNoHeader){
    Enable-SPFeature -Identity 4cf046f3-38c7-495f-a7da-a1292d32e8e9 -url $WebApp
}

Dokumentenversionen auflisten und löschen per PowerShell

Alle Dokumentenversionen einer Dokumentenbibliothek inklusive Dateigrößen per PowerShell anzeigen und löschen

Manchmal fällt es auf, dass die SharePoint-Seiten bzw. Dokumentenbibliotheken viel Speicherplatz belegen, obwohl die Summe der eigentlichen Dateien viel geringer ist.

Der Speicherplatzverbrauch ist evtl. durch verbrauchte Speicher-Quota oder durch das Betrachten der Speichermetriken (Websiteeinstellungen > Websitesammlungsverwaltung > Speichermetriken) aufgefallen.

Storage Metrics - Speichermetriken - _layouts-storman.aspx - SharePoint 2013

Die echten Dateigrößen kann man sich anzeigen lassen, indem man die Dokumentenbibliotheks- oder Dateieigenschaften im Windows-Explorer per WebDav-Protokoll öffnet.
(Dokumentenbibliothek im IE > Reiter „Bibliothek“ > „Mit Explorer öffnen“). SharePoint Bibliothek - Reiter BIBLIOTHEK - Menü lang - Mit Explorer öffnen Button - SharePoint 2013

Falls die in Speichermetriken angezeigten Datengrößen von den Tatsächlichen Dateigrößen abweichen, dann könnte es sein, dass die Speicherbelegung durch die Dokumentenversionen zustande kommt. Denn auch wenn nur geringe Änderungen in einem (großen) Dokument durchgeführt werden, wird (bei eingeschalteter Versionierung) jedes mal eine komplette Kopie dieser großen Datei erstellt.

Mehrere Probleme bei aktivierter Versionierung

Deaktivieren der Versionierung löscht die Versionen nicht

Nach dem Deaktivieren der Versionierung bzw. Begrenzung der Anzahl der Versionen werden bereits vorhandene Dokumentenversionen nicht gelöscht bzw. nicht bereinigt, somit wird der bereits belegte Speicher nicht freigegeben.

Dokumentenversionen auflisten und löschen per PowerShell weiterlesen

MissingSetupFile – Missing Server Side Dependencies – Fix

MissingSetupFile

MissingSetupFile – File is referenced [1] times in the database, but is not installed on the current farm

MissingSetupFile – File [Features\Brandysoft.SharePoint.ADSelfService\ADSelfService.dwp] is referenced [1] times in the database [WSS_Content], but is not installed on the current farm. Please install any feature/solution which contains this file.

MissingSetupFile – Auf die Datei wird in der Datenbank [1] Mal verwiesen, sie ist jedoch für die aktuelle Farm nicht installiert

MissingSetupFile – Auf die Datei ‚[Features\Brandysoft.SharePoint.ADSelfService\ADSelfService.dwp]‘ wird in der Datenbank [‚WSS_Content‘] [1] Mal verwiesen, sie ist jedoch für die aktuelle Farm nicht installiert. Installieren Sie ein Feature oder eine Lösung, das bzw. die diese Datei enthält. Auf mindestens eine nicht in der aktuellen Farm installierte Setupdatei wird in der Datenbank [‚WSS_Content‘] verwiesen. Installieren Sie die Features oder Lösungen, die diese Dateien enthalten.

Serverseitige Abhängigkeiten fehlen

Title
Serverseitige Abhängigkeiten fehlen.

[MissingSetupFile] Auf die Datei ‚[Features\Brandysoft.SharePoint.ADSelfService\ADSelfService.dwp]‘ wird in der Datenbank [‚WSS_Content‘] [1] Mal verwiesen, sie ist jedoch für die aktuelle Farm nicht installiert. Installieren Sie ein Feature oder eine Lösung, das bzw. die diese Datei enthält. Auf mindestens eine nicht in der aktuellen Farm installierte Setupdatei wird in der Datenbank [‚WSS_Content‘] verwiesen. Installieren Sie die Features oder Lösungen, die diese Dateien enthalten. MissingSetupFile – Missing Server Side Dependencies – Fix weiterlesen

Nintex Workflows auflisten (Statusabhängig) – Tipp

Nintex Workflows auflisten (je nach Workflow-Status)

In diesem kurzen Tipp-Artikel zeige ich, wie man Nintex-Workflows nach Status (Running, Completed, Cancelled, Error) gefiltert, auflisten kann.

Das könnte z.B. dann hilfreich sein, wenn ein Workflow eine Mail verschickt, und man herausfinden will, welcher Workflow denn das nun genau tut.

Nintex Workflows auflisten (Statusabhängig) – Tipp weiterlesen

Telnet-Client per PowerShell installieren – Tipp

Telnet-Client per PowerShell auf einem Windows Server installieren

Mit Hilfe des Telnet-Client kann getestet werden, ob die Verbindung zu einem Server auf einem bestimmten Port funktioniert.

Leider ist der Telnet-Client zwar vorhanden, aber in Windows standardmäßig nicht aktiviert (als Feature nicht installiert).

In diesem kurzen Tipp möchte ich zeigen, wie man Telnet-Client per PowerShell installieren kann.

Telnet-Client per PowerShell installieren – Tipp weiterlesen

Event-ID: 8313 – A failure was reported when trying to invoke a service application: EndpointFailure

Problem

Event-ID: 8313 – SharePoint Foundation – Topologie – Fehler beim Versuch, eine Dienstanwendung aufzurufen: EndpointFailure

Fehler beim Versuch, eine Dienstanwendung aufzurufen: EndpointFailure.
. . .

Event-ID: 8313 – SharePoint Foundation – Topologie – A failure was reported when trying to invoke a service application: EndpointFailure

A failure was reported when trying to invoke a service application: EndpointFailure
. . .

Event-ID: 8313 – A failure was reported when trying to invoke a service application: EndpointFailure weiterlesen

CHKDSK Log – Ergebnisse der Fehlerüberprüfung finden

CHKDSK Log

In manchen Fällen möchte man sich die Ergebnisse vom CHKDSK Lauf (Datenträger-Fehlerüberprüfung) anschauen.

Das ist z.B. der Fall, wenn Windows einen Festplattenfehler feststellt und nach einem Neustart anfängt CHKDSK auszuführen. Das Problem dabei ist, dass die Festplatten-Überprüfung recht lange dauert und die Ergebnisse am Ende des CHKDSK-Checks kurz angezeigt werden und der Rechner danach sofort hochfährt. Sitzt man am Ende der Überprüfung nicht vor dem Bildschirm, so hat man scheinbar Pech gehabt. In dem Moment bleibt es erst einmal unklar, ob CHKDSK Fehler gefunden und repariert hat.

Manchmal werden die CHKDSK-Ergebnisse auch gar nicht angezeigt wie im Fall von Windows 10

CHKDSK Check Windows 10 - Windows Start - Laufwerk C wird überprüft

In dieser Anleitung zeige ich, wie man das CHKDSK Log auch nachträglich finden und anschauen kann.

CHKDSK Log – Ergebnisse der Fehlerüberprüfung finden weiterlesen

Alte IIS C:\inetpub\logs\LogFiles nach X Tagen bereinigen

IIS Log Dateien löschen, die älter sind als X Tage

Es kann passieren, dass der Ordner in dem der Web-Server die Log-Dateien speichert (C:\inetpub\logs\LogFiles) mit der Zeit recht groß wird.

Im Internetinformationsdienste (IIS)-Manager selbst kann man nur auswählen, wie oft eine neue Log-Datei erstellt oder wie groß die Log-Datei werden soll. Auch kann eingestellt werden, dass keine neuen Protokolldateien erstellt werden sollen. Allerdings kann nicht eingestellt werden, dass die neusten Dateien behalten und die alten Log-Dateien gelöscht werden.

internetinformationsdienste-iis-manager-protokollierung-c-inetpub-logs-logfiles

Wie die IIS Log Dateien, die älter als X Tage sind, trotzdem regelmäßig gelöscht werden können, zeige ich in diesem kurzen Artikel weiter unten.

Alte IIS C:\inetpub\logs\LogFiles nach X Tagen bereinigen weiterlesen

Nintex Workflow 2013 und Nintex Forms 2013 Installation

In diesem Artikel werde ich eine Nintex Workflow 2013 und Nintex Forms 2013 Installation in einer 3 Tier SharePoint-Farm durchführen und auf Besonderheiten und Probleme eingehen. Nintex Workflow 2013 und Nintex Forms 2013 Installation weiterlesen

ID: 6398 – Microsoft.SharePoint.Diagnostics – SP_TRACE_CREATE – SYS.TRACES

Problem

Event-ID: 6398 – Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPSqlDeadlockDiagnosticProvider‘

Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPSqlDeadlockDiagnosticProvider‘ (ID <ID>). Weitere Informationen finden Sie unten.

Sie besitzen nicht die Berechtigung zum Ausführen von ‚SP_TRACE_CREATE‚.

Event-ID: 6398 – Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPSqlBlockingReportDiagnosticProvider‘

Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPSqlBlockingReportDiagnosticProvider‘ (ID <ID>). Weitere Informationen finden Sie unten.

The blocking query diagnostics provider could not set the ‚blocked process threshold‘ for the sql instance <SQL-Instanz-Name>.  Blocking queries will not be captured in this instance.  Error Code: Der Benutzer besitzt nicht die Berechtigung zum Ausführen dieser Aktion.
Sie haben keine Berechtigung zum Ausführen der RECONFIGURE-Anweisung.
Die Konfigurationsoption ‚blocked process threshold‘ ist nicht vorhanden, oder sie ist möglicherweise eine erweiterte Option.
Sie haben keine Berechtigung zum Ausführen der RECONFIGURE-Anweisung.

Event-ID: 6398 – Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPIOIntensiveQueryDiagnosticProvider‘

Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPIOIntensiveQueryDiagnosticProvider‘ (ID <ID>). Weitere Informationen finden Sie unten.

Sie besitzen nicht die Berechtigung zum Ausführen von ‚SP_TRACE_CREATE‚.

Event-ID: 6398 – Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPDiagnosticsMetricsProvider‘

Ausnahme der Methode ‚Execute‘ der Auftragsdefinition ‚Microsoft.SharePoint.Diagnostics.SPDiagnosticsMetricsProvider‘ (ID <ID>). Weitere Informationen finden Sie unten.

Aktualisierungskonflikt. Sie müssen diese Aktion wiederholen. Das SPWebService-Objekt wurde von <Farm/TimerService-Account>) im Prozess OWSTIMER (26568) auf dem Computer <SP-Server-Name> aktualisiert. Weitere Informationen zu dem Konflikt finden Sie im Ablaufverfolgungsprotokoll.

Failed to check usage db server Sie besitzen nicht die Berechtigung zum Ausführen von ‚SP_TRACE_CREATE‘.

In den ULS-Logs zu finden.

Oder auf Englisch: Failed to check usage db server You do not have permission to run ‚SP_TRACE_CREATE‚.

Failed to get legacy traces, Sie besitzen nicht die Berechtigung zum Ausführen von ‚SYS.TRACES‘.

In den ULS-Logs zu finden.

Oder auf Englisch: Failed to get legacy traces, You do not have permission to run ‚SYS.TRACES‚.

Unable to write service call usage entry.

In den ULS-Logs zu finden.

The Execute method of job definition Microsoft.SharePoint.Diagnostics.xxxx (ID xxxxx) threw an exception.

In den ULS-Logs zu finden.

… The blocking query diagnostics provider could not set the ‚blocked process threshold‘ for the sql instance …

In den ULS-Logs zu finden.

ID: 6398 – Microsoft.SharePoint.Diagnostics – SP_TRACE_CREATE – SYS.TRACES weiterlesen