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
}

Layer2 BDLC automatischer Sync funktioniert nicht

Beschreibung

Layer2 BDLC Synchronisierung funktioniert nur manuell. Automatische Synchronisierung (als Job um eine bestimmte Zeit) funktioniert nicht.

Analyse

Es scheint als würde der Timer-Dienst für Layer2 nicht existieren.

Prüfen, ob der SP-Dienst für Layer2 aufgelistet wird. In der Zentraladministration wurde der Dienst nicht aufgelistet.

CA > Monitoring > Review job definitions > Job Definitions > Layer2 Business Data List Connector – Background Update Job

Per PowerShell (in unserem Fall wurde gar nichts ausgegeben).

⚠ Achtung: Diese PowerShell-Ausgabe ist nicht konsistent, weil: Der Timer-Service wird in der PowerShell-Konsole Serverabhängig angezeigt. D.h. Auf dem Server01 evtl. nicht da, aber auf dem Server02 doch da. In der CA wird aber immer dann angezeigt, wenn auf einem der Server vorhanden. Besser die Abfrage über alle Server (siehe weiter unten).

# Timer Job mit bestimmten Namen auflisten
Add-PSSnapin Microsoft.SharePoint.PowerShell
#Puffer (sonst werden z.B. Spalten rechts abgeschnitten etc.)
$buffer = $host.ui.RawUI.BufferSize; $buffer.width = 3000; $buffer.height = 3000; $host.UI.RawUI.Set_BufferSize($buffer)

Get-SPTimerJob | where {$_.name -like "*Layer*" -or $_.name -like "*bdlc*" -or $_.displayname -like "*layer*"} | fl #ft -AutoSize Title, TypeName, Status, Schedule, LastrunTime, ID #, Name, TypeName, DisplayName 

Besser ist es , auf allen Servern zu prüfen. Ist der Timer-Dienst mindestens auf einem Server aufgelistet, dann funktioniert er wieder.

# Timer-Dienst mit bestimmten Namen auf allen SP-Servern anzeigen
Add-PSSnapin Microsoft.SharePoint.PowerShell
Get-SPServer | ?{$_.Role -ne 'Invalid'} | Sort |
    %{
        #Write-Host "`n$($_.Address)" -ForegroundColor Cyan; 
        Invoke-Command -ComputerName $_.Address -ScriptBlock {
            Add-PSSnapin Microsoft.SharePoint.PowerShell; 
            #Write-Host "$(gc env:computername)"
            Get-SPTimerJob | 
                where {$_.name -like "*bdlc*" -or $_.displayname -like "*layer*"} | 
                select @{label="Computer";Expression={$(gc env:computername)}}, Name, Schedule, LastRunTime, Status, IsDisabled |
                ft -AutoSize *
        }
    }

Ausgabe

Computer    Name            Schedule                         LastRunTime Status IsDisabled
--------    ----            --------                         ----------- ------ ----------
Server01    BDLC Update Job every 15 minutes between 0 and 0             Online      False

Computer    Name            Schedule                         LastRunTime Status IsDisabled
--------    ----            --------                         ----------- ------ ----------
Server02    BDLC Update Job every 15 minutes between 0 and 0             Online      False

Lösung Nr. 1 – Farm Feature de-aktivieren 👍

Farm Feature per CA de/aktivieren

  • CA > System Settings > Manage farm features
  • Das Feature mit orangenen Rechtecken mit dem Namen Layer2 Business Data List Connector for SharePoint – Timer Job
    • Weißen Button "Deactivate" betätigen
      • Link "Deactivate this feature" anklicken und somit bestätigen.
    • Weißen Button "Activate" betätigen

Farm Feature - Layer2 BDLC - Business Data List Connector for SharePoint - Timer Job

Farm Feature per PS de/aktivieren

# Layer2 Features anzeigen
# Get-SPFeature | ?{$_.DisplayName -like "*layer*"}

<# Für uns entscheidendes Feature
Name: FeatureDefinition/15/ee5cd108-1591-4409-b9e1-cf018e5a2ed8
ID: ee5cd108-1591-4409-b9e1-cf018e5a2ed8
DisplayName: Layer2.Products.BDLCTimerJob
Scope: Farm
#>

# Layer2 Farm-Feature aktivieren/deaktivieren
Get-SPFeature Layer2.Products.BDLCTimerJob | Disable-SPFeature -Confirm:$false
Get-SPFeature Layer2.Products.BDLCTimerJob | Enable-SPFeature

# Timer-Dienste erneute anzeigen lassen (es muss nun mind. 1 vorhanden sein)

Lösung Nr. 1 a – Farm Solution de-aktivieren

Bringt wohl selten ein Erfolg mit. Nur, wenn gar nichts mehr hilft.

⚠ Achtung, es werden wohl die App-Pools zurück gesetzt, so dass zwischendurch auch mal der Fehler "HTTP Error 503. The service is unavailable." auftauchen könnte.

In einem Fall war das die Lösung, in dem anderen Fall war Nr. 2 die Lösung.

  • CA > System Settings > Manage farm solutions > (Fenster "Solution Management") >
    • Name "layer2.businessdatalistconnector.wsp" anklicken > Retract Solution > Now > OK
    • Etwas warten und die Seite aktualisieren, bis dort nicht mehr "Retracting" sondern "Not Deployed" im Status steht.
    • Name "layer2.businessdatalistconnector.wsp" anklicken > Deploy Solution > Now > OK

Lösung Nr. 2

Layer2 Installer > Repair oder Upgrade durchführen.

DB zur Always On Availability Group hinzufügen – Anleitung

Hier wird gezeigt, wie man eine MS-SQL Datenbank zu einer (schon vorhandenen) Verfügbarkeitsgruppe hinzufügt.

Vollsicherung der neuen DBs erstellen

Die Datenbanken können erst dann zu Always On availability groups hinzugefügt werden, nachdem diese mit einem Full Backup (irgendwohin) gesichert wurden. Es ist dem SQL-Server egal mit welchem System oder wohin die DBs gesichert werden, Hauptsache, man hat eine Vollsicherung für die DBs durchgeführt.

Anderenfalls kann man die DBs nicht auswählen und als „Status“ wird

„Full backup is required“ angezeigt.

In den Details steht:

„This database lacks a full database backup. Before you can add this database to an availability group, you must perform a full database backup.“

This database lacks a full database backup. Before you can add this database to an availability group, you must perform a full database backup.

Man kann also eine vorhandene Backup-Lösung benutzen, oder DB-Dumps per SQL oder PowerShell erstellen.

Mit folgendem PowerShell-Skript kann man alle DBs sichern. Alle DB der SQL-Instanz, außer die in der „ExcludeList“ werden gesichert. D.h. die, die man sichern will, müssen aus der Exclude-Liste entfernt werden.

# SQL DBs Backup (DB-Dump im "Copy-Only"-Modus)
# ------------------------------------------------------------------
# Macht einen DB-Dump im "Copy-Only"-Modus und kann problemlos und im laufenden Betrieb ausgeführt werden.
# Ausführen im PS
# Zeilen mit BackupFolder, LogFile, SQLInstance UND ExcludeList anpassen.

function Write-LogFile
{
	param (
		$Message,
		[Parameter(Mandatory = $true)]
		[string]$LogFileLocation,
		[Parameter(ParameterSetName = 'WriteError')]
		[switch]$AsFailure,
		[Parameter(ParameterSetName = 'WriteInformation')]
		[switch]$AsInformation,
		[Parameter(ParameterSetName = 'WriteDebug')]
		[switch]$AsDebug
	)
	
	$TimeStampNow = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
	$ServerName = $ENV:COMPUTERNAME
	if ($AsFailure)
	{
		if ($Message)
		{
			$CustomErrorMessage = "$TimeStampNow `t ERROR `t $ServerName `t $Message"
			$CustomErrorMessage | Out-File -FilePath $LogFileLocation -Append
			Write-Host $CustomErrorMessage -ForegroundColor Red
		}
		else
		{
			$TMP_ErrorMessage = $GLOBAL:Error[0].Exception.Message
			$ErrorMessage = "$TimeStampNow `t ERROR `t $ServerName `t $($TMP_ErrorMessage)"
			$ErrorMessage | Out-File -FilePath $LogFileLocation -Append
			Write-Host $ErrorMessage -ForegroundColor Red
		}
	}
	elseif ($AsInformation)
	{
		$InformationMessage = "$TimeStampNow `t INFOR `t $ServerName `t $Message"
		$InformationMessage | Out-File -FilePath $LogFileLocation -Append
		Write-Output $InformationMessage
	}
	elseif ($AsDebug)
	{
		$DebugMessage = "$TimeStampNow `t DEBUG `t $ServerName `t $Message"
		$DebugMessage | Out-File -FilePath $LogFileLocation -Append
		Write-Output $DebugMessage
	}
}

# Anpassen !!!
# ================================

$BackupFolder = "B:\Backup"   #Net Share funktioniert auch
$LogFile = "$($BackupFolder)\$(Get-Date -Format 'yyyyMMdd-HHmm')_BackupLogfile.log"
$SQLInstance = "ServerName\Instance"

$ExcludeList = 'master', 'tempdb', 'model', 'msdb'

# Alle DBs ausgeben in SSMS: SELECT * FROM master.dbo.sysdatabases

# Zeitstempel im Dateinamen
$timeStamp = Get-Date -format yyyyMMdd
#$timeStamp = Get-Date -format yyyyMMdd-HHmmss

# ================================


[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null

$srv = New-Object ("Microsoft.SqlServer.Management.Smo.Server") $SQLInstance
$srv.ConnectionContext.StatementTimeout = 0
$dbs = New-Object Microsoft.SqlServer.Management.Smo.Database
$dbs = $srv.Databases

Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "Starting SQL Backup..."
Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "   loaded $($dbs.count) databases"
Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "   Excluding the following databases:"
Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "   $($ExcludeList)"
Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "   Saving backups to $($BackupFolder)"


$counter = 0
$DBCount = $dbs.count
foreach ($Database in $dbs)
{
	$counter++
	Write-Progress -Activity 'Backup' -Status "[$($Counter)/$($DBCount)] - $($Database.name)" -PercentComplete ((100/$DBCount)*$counter)
	if ($ExcludeList -contains $Database.name)
	{
		Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "Database $($Database.name) is in the exclude list and will be skipped"
		continue;
	}
		
	$bk = New-Object ("Microsoft.SqlServer.Management.Smo.Backup")
	$bk.Action = [Microsoft.SqlServer.Management.Smo.BackupActionType]::Database
	$bk.BackupSetName = $Database.Name + "_backup_" + $timeStamp
	$bk.Database = $Database.Name
	$bk.CopyOnly = $true
	$bk.CompressionOption = 1
	$bk.MediaDescription = "Disk"
	$bk.Devices.AddDevice($BackupFolder + "\" + $Database.Name + "_" + $timeStamp + ".bak" , "File")
	
	TRY
	{
		Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "Starting Backup of database $($Database.name) with estimated DB size of $([Math]::Round($Database.Size,2))MB"
		Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "   Destination path: $($BackupFolder + '\' + $Database.Name + '_' + $timeStamp + '.bak')"
		$bk.SqlBackup($srv)
		Write-LogFile -LogFileLocation $LogFile -AsInformation -Message "   Successfully finished backup of database $($Database.name)" 
	}
	CATCH
	{
		Write-LogFile -LogFileLocation $LogFile -AsFailure -Message "$($Database.Name) backup failed!" 
		Write-LogFile -LogFileLocation $LogFile -AsFailure -Message "$($_.Exception.Message)" 
		Write-LogFile -LogFileLocation $LogFile -AsFailure
	}
}

Datenbanken hinzufügen

Wizard in SSMS starten

  1. SSMS (SQL Server Management Studio) auf dem primären Cluster-Knoten starten.
  2. Sich mit der SQL Instanz verbinden.
  3. Im Baum auf der linken Seite navigieren:
    1. Instanz > Always On High Availability > Availability Groups
      1. Rechte Maustaste auf den Namen der Gruppe. Hier „HA_GROUP (Primary)“
        1. Add Database…

SSMS - Always On High Availability - Availability Groups - Add Database

Wizard durchgehen

  1. Tab „Introduction“
    1. Next
  2. Tab „Select Databases“
    1. DBs auswählen, die hinzugefügt werden sollen
    2. Next
  3. Tab „Connect to Replicas“
    1. Button „Connect…“
    2. Im Fenster „Connect to Server“ noch einmal „Connect“ (mit den aktuellen Zugangsdaten).
    3. Next
  4. Tab „Select Data Synchronization“
    1. Option „Automatic seeding“ auswählen.
    2. Next
  5. Tab „Validation“
    1. Alle vier Haken sind grün und als Result steht überall „Success“
    2. Next
  6. Tab „Summary“
    1. Aufgelisteten DBs, die zur HA hinzugefügt werden, überprüfen.
    2. Button „Finish“
  7. Tab „Results“
    1. Meldung: „The wizard completed successfully“
    2. Result: Success
    3. Button „Close“

Prüfen & Warten

Dashboard öffnen

Um den Status besser sehen zu können, kann man das Dashboard öffnen. Dieses aktualisiert sich normalerweise automatisch.

  1. Im Baum auf der linken Seite navigieren:
    1. Instanz > Always On High Availability > Availability Groups
      1. Rechte Maustaste auf den Namen der Gruppe. Hier „HA_GROUP (Primary)“
        1. Show Dashboard…

Status beobachten

  • Ganz oben links ist noch ein roter Kreis mit einem ❌
    • Availability group state: Critical (1), Warnings (2)
    • Details im Link
      • ❌Availability group is not ready for automatic failover.
      • ⚠ Some availability replicas are not synchronizing data.
      • ⚠ Some synchronous replicas are not synchronized.
  • Availability replica:
    • ⚠ Die „Role“ Secondary steht mit „Synchronization State“ auf „Not Synchronizing“ und zeigt in der Spalte „Issues“ ein „Warning“
  • Einzelne neue (noch nicht synchronisierte) DBs stehen mit dem gelben Dreieck und Ausrufezeichen ⚠
    • Spalte Synchronization steht steht auf „Not Synchronizing“
    • Spalte „Failover Readi…“ steht auf „Data Loss“. In Details steht:
      • „Data synchronization state of availability database is not healthy.“
      • „Secondary database is not joined.“
        SSMS - Availability group state: Critical (1), Warnings (2)
    • Nach und nach kriegen die neuen DBs den grünen Kreis mit dem Häkchen ✅ und sind repliziert und in HA eingebunden.

 

Workflows nicht funktional nach Update Juli 2021 – KB5001975, KB5001976, KB5001992

Nach dem Einspielen der Juli 2021 Updates funktionieren SharePoint Workflows nicht mehr bzw. nicht vollständig (hier Nintex Workflow).

Problematische Patche:

Es könnten mehrere Probleme auftauchen. Im SharePoint 2019 könnte es passieren, dass Nintex Workwlows nicht veröffentlicht werden können.

Im SharePoint 2013 könnte (evtl. zusätzlich) das Problem auftauchen, dass die Workflows mit einem Warten-Element bzw. Pausen-Baustein bzw. „Anhalten für…“ unvollständig oder gar nicht ausgeführt werden können.

Fehler beim Veröffentlichen eines Workflows – Failed to publish workflow: This feature has been temporarily disabled

Es wird folgende Fehlermeldung angezeigt, wenn ein Nintex Workflow veröffentlicht wird:

soap:ServerServer was unable to process request. ---> Fehler bei der Veröffentlichung des Workflows: This feature has been temporarily disabled

bzw. auf Englisch

soap:ServerServer was unable to process request. ---> Failed to publish workflow: This feature has been temporarily disabled

Lösung

Auf allen SharePoint-Server für alle SharePoint-Sites bzw. für alle Zonen im Pfad
C:\inetpub\wwwroot\wss\VirtualDirectories\<Site>
die Datei web.config
wie folgt anpassen.

Bereich in der web.config Datei finden:

. . .
<authorizedTypes>
<targetFx version="v4.0">

und folgende zwei Zeilen dazu fügen:

 <authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="Int64" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="Int64" Authorized="True" />

soap:ServerServer was unable to process request. ---> Failed to publish workflow: This feature has been temporarily disabled - webconfig - authorizedType - Int64

Danach IIS-Reset durchführen

iisreset

Quelle:

Unable to publish or run workflows after installing SharePoint On Premises July 2021 CU

Fehler: „Anhalten für… unvollständig

Nintex Workflow - Anhalten für - Fehler - Error - SharePoint2013

Workflow meldet „Fehler beim Ausführen von <Workflow Name>„. In Details steht:
Anhalten für... unvollständig

Im ULS-Log finden sich in den Spalte „Category“ „Legacy Workflow Infrastructure“ folgende oder ähnliche Einträge mit den IDs c42q8, c42ra, c42rh

Potentially malicious xoml node: <ns0:RootWorkflowActivityWithData x:Class="Microsoft.SharePoint.Workflow.ROOT" . . . 
. . . 
Error parsing xoml: <ns0:RootWorkflowActivityWithData x:Class="Microsoft.SharePoint.Workflow.ROOT"
. . .
RunWorkflow: System.InvalidOperationException: This feature has been temporarily disabled. bei Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain) bei Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(SPWorkflowAssociation association, SPWeb web) bei Microsoft.SharePoint.Workflow.SPWinOeHostServices.LoadDeclarativeAssembly(SPWorkflowAssociation association, Boolean fallback) . . .
RunWorkflow: System.InvalidOperationException: This feature has been temporarily disabled. bei Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.CompileBytes(Byte[] xomlBytes, Byte[] rulesBytes, Boolean doTestCompilation, String assemblyName, SPWeb web, Boolean forceNewAppDomain) bei Microsoft.SharePoint.Workflow.SPNoCodeXomlCompiler.LoadXomlAssembly(SPWorkflowAssociation association, SPWeb web)
. . .

Lösung bzw. lt. MS temporäres Workaround

Auf einem der SharePoint-Server folgende Kommandos im Admin-PowerShell-Fenster ausführen.

Add-PSSnapin Microsoft.SharePoint.PowerShell
$farm=Get-SPFarm
$farm.EnablePreParseSecurityCheckForWorkflow = $false
$farm.update()

Quelle:

Some scenarios of SharePoint 2010 workflow are affected after applying the July security update for SharePoint Server (KB5004862)

 

Das funktionierte nicht

IIS-Reset Server Neustarts und Löschen von SharePoint-Cache hat nichts gebracht.

 

provider: TCP Provider, error: 0 – The specified network name is no longer available.

System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 – The specified network name is no longer available.)

In diesem Artikel beschreibe ich eine mögliche Lösung der Fehlermeldung

System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 – The specified network name is no longer available.)

und

Es kann keine Verbindung mit dem „LobSystem“ (externes System) hergestellt werden. Ursache: „Es konnte eine Verbindung mit dem Server hergestellt werden, doch während des Anmeldevorgangs trat ein Fehler auf. (provider: TCP Provider, error: 0 – Der angegebene Netzwerkname ist nicht mehr verfügbar.)“

und Ähnlichen.

provider: TCP Provider, error: 0 – The specified network name is no longer available. weiterlesen

Vorgänge mit Microsoft Outlook synchronisieren – Wir konnten Ihre Vorgänge nicht synchronisieren – Workaround

Fehler: Vorgänge mit Microsoft Outlook synchronisieren – Wir konnten Ihre Vorgänge nicht synchronisieren.

Nach dem in einer SharePoint-Aufgabenliste auf den Button „Mit Outlook synchronisieren“ bzw. „Sync To Outlook“ geklickt wurde, wird vom SharePoint folgende Fehlermeldung angezeigt.

Vorgänge mit Microsoft Outlook synchronisieren

Statusdetails:

Wir konnten Ihre Vorgänge nicht synchronisieren. Der Grund hierfür könnte sein, dass sich Ihr Postfach auf einem Exchange-Server befindet, auf dem das Synchronisieren von Vorgängen nicht unterstützt wird. Wenden Sie sich wegen weiterer Hilfe bitte an Ihren Administrator.

Weiter unten ist ein Workaround für das Einbinden der SharePoint-Aufgabenlisten in Outlook beschrieben, ohne aufwendige Exchange Konfigurationsschritte machen zu müssen.

Vorgänge mit Microsoft Outlook synchronisieren – Wir konnten Ihre Vorgänge nicht synchronisieren – Workaround weiterlesen

Vorgänge mit Microsoft Outlook synchronisieren – Wir konnten Ihre Vorgänge nicht synchronisieren – Event-ID: 8313

Problem

Wir konnten Ihre Vorgänge nicht synchronisieren.

Die Aufgabenliste im SharePoint kann nach dem drücken auf den Button „Mit Outlook synchronisieren“ nicht synchronisiert werden. Es wird folgende Fehlermeldung angezeigt:

Vorgänge mit Microsoft Outlook synchronisieren

Wir konnten Ihre Vorgänge nicht synchronisieren. Der Grund hierfür könnte sein, dass sich Ihr Postfach auf einem Exchange-Server befindet, auf dem das Synchronisieren von Vorgängen nicht unterstützt wird. Wenden Sie sich wegen weiterer Hilfe bitte an Ihren Administrator.

We weren’t able to sync your tasks.

Sync Tasks with Microsoft Outlook

We weren’t able to sync your tasks. This could be because your mailbox is on an Exchange server that isn’t supported for syncing tasks. Please contact your administrator for more help.

Event-ID: 8313 – SharePoint Foundation – Topologie

Fehler beim Versuch, eine Dienstanwendung aufzurufen: EndpointFailure
Prozessname: w3wp
Prozess-ID: 9772
AppDomain-Name: /LM/W3SVC/2/ROOT/c0872fbc-10-131068430349594355
AppDomain-ID: 11
Dienstanwendungs-URI: urn:schemas-microsoft-com:sharepoint:service:fea20cf0#authority=urn:uuid:4a99a796&authority=https://old-sp-server:32844/Topology/topology.svc
Aktive Endpunkte: 3
Fehlerhafte Endpunkte:1
Betroffene Endpunkte:http://sp-server:32843/fea20cf0/ProfileService.svc

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

ULS-Log:

A failure was reported when trying to invoke a service application: EndpointFailure Process Name: w3wp Process ID: <ID> AppDomain Name: /LM/W3SVC/2/ROOT/c0872fbc-14-131072520302397589 AppDomain ID: 15 Service Application Uri: urn:schemas-microsoft-com:sharepoint:service:fea20cf0#authority=urn:uuid:4a99a796&authority=https://old-sp-server:32844/Topology/topology.svc Active Endpoints: 3 Failed Endpoints:1 Affected Endpoint: http://sp-server:32843/fea20cf0/ProfileService.svc Vorgänge mit Microsoft Outlook synchronisieren – Wir konnten Ihre Vorgänge nicht synchronisieren – Event-ID: 8313 weiterlesen

The specified file or folder name is too long. It should not be more than 128 characters.

Beim Versuch, einen Anhang an ein Listenelement per Nintex-Formular anzuhängen, wird folgende Fehlermeldung angezeigt.

Meldung von Webseite
The specified file or folder name is too long. It should not be more than 128 characters.

Meldung von Webseite - The specified file or folder name is too long. It should not be more than 128 characters - Internet Explorer - Error - Fehler
The specified file or folder name is too long. It should not be more than 128 characters. weiterlesen

Diese Ansicht kann nicht angezeigt werden, weil die Anzahl der darin enthaltenen Nachschlage- und Workflowstatusspalten den durch den Administrator durchgesetzten Schwellenwert (8) übersteigt.

Beschreibung

Wird eine Liste mit Hilfe einer Ansicht angezeigt, in der viele Nachschlagespalten aktiviert wurden, dann wird folgende Meldung angezeigt.

Auf Deutsch:

Diese Ansicht kann nicht angezeigt werden, weil die Anzahl der darin enthaltenen Nachschlage- und Workflowstatusspalten den durch den Administrator durchgesetzten Schwellenwert (8) übersteigt.

Auf Englisch:

This view cannot be displayed because the number of lookup and workflow status columns it contains exceeds the threshold (8) enforced by the administrator

Diese Ansicht kann nicht angezeigt werden, weil die Anzahl der darin enthaltenen Nachschlage- und Workflowstatusspalten den durch den Administrator durchgesetzten Schwellenwert (8) übersteigt. weiterlesen

Nintex Workflow 2013 Installer APPCRASH

Beim Installieren bzw. Updaten von Nintex Workflow (hier „NintexWorkflow2013int 3.4.0.0.exe“) stürzt der Installer mit einem AppCrash ab.

Hier zeige ich, wie man die Installer-GUI umgeht und die Installation mit den mitgelieferten PowerShell-Skripten durchführt.

Nintex Workflow 2013 Installer APPCRASH weiterlesen