Housekeeping Skripte

Moin neo42 Team,

wir möchten gerne das Housekeeping-Skript „Client-Housekeeping-LastContact_based.ps1“ aus Eurem Github auf unserem neo42 MM Server zum Einsatz bringen.
Beim Versuch das Skript auszuführen tritt ein Fehler auf:

NULL kann nicht in den Typ „System.DateTime“ konvertiert werden.
In C:\Support\Skripte\Client-Housekeeping-LastContact_based.ps1:39 Zeichen:6

  • if ([DateTime]$client.LastAccess -lt ((Get-Date).AddDays(-$Remove ...
    
  •     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidArgument: (:slight_smile: , RuntimeException
    • FullyQualifiedErrorId : nullToObjectInvalidCast

Es sieht danach aus, dass entweder die Credentials für den Zugriff nicht funktionieren oder die Rückgabe nicht dem entspricht was erwartet wird.
Unser MM Server hat die Version 4.1.10.0

Was können wir tun?

Danke & beste Grüße
Klaus

Hallo @Klaus

Ich habe das Skript aus GitHub gerade nochmal überprüft und konnte keinen generellen Fehler feststellen. Von daher liegst du vermutlich richtig mit der Zugriffsthematik.
Der Benutzer der das Skript ausführt muss auf dem MMS Server Mitglied in der lokalen Windowsgruppe „Neo42MgmtSvcAdmins“ sein.
Wenn das Skript direkt auf dem Server ausgeführt wird, dann muss man sich einmal neu anmelden nachdem man sich in die Gruppe aufgenommen hat.

Gruß
Marco

Hallo Marko,

danke das hat etwas geholfen. Den User habe ich der Gruppe hinzugefügt.
Nun bekomme ich beim Ausführen jedoch eine andere Fehlermeldung:

Invoke-RestMethod : Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine
Vertrauensstellung hergestellt werden…
In C:\Support\Skripte\Client-Housekeeping-LastContact_based.ps1:36 Zeichen:12

  • $clients = Invoke-RestMethod -Method Get -Uri $url -Headers $headers …
  •        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
      eption
    • FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

Hast Du eine Idee was das sein kann?

Danke & Gruß
Klaus

Hi Klaus,

hilft es, wenn du folgende Sektion im Skript hinzufügst?

#tls1.2 (if TLS not activated)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Hi,

nein leider hilft das nicht. Ich bekomme jetzt wieder die erste Meldung.
Ich weiss im Moment nicht woran es liegt.
:frowning:

Hallo Klaus,

Der Fehler, den du erhältst, könnte daraufhin deuten, dass das SSL/TLS-Zertifikat des nicht vertrauenswürdig ist. Das kann passieren, wenn das Zertifikat selbst abgelaufen ist, nicht richtig installiert wurde, oder es sich um ein selbst signiertes Zertifikat handelt, das nicht zu den vertrauenswürdigen Stammzertifikaten gehört.

Außerdem sollte geprüft werden ob z.B. TLS 1.2 oder TLS 1.3 nicht standardmäßig aktiviert ist.

Das können Sie ganz einfach mit IIS Crypto GUI :
Link: Nartac Software - Download

oder über Powershell:


$securityProtocol = [Net.ServicePointManager]::SecurityProtocol

Write-Host "Aktivierte TLS-Versionen:"
if ($securityProtocol -band [Net.SecurityProtocolType]::Ssl3) {
    Write-Host " - SSL 3.0"
}
if ($securityProtocol -band [Net.SecurityProtocolType]::Tls) {
    Write-Host " - TLS 1.0"
}
if ($securityProtocol -band [Net.SecurityProtocolType]::Tls11) {
    Write-Host " - TLS 1.1"
}
if ($securityProtocol -band [Net.SecurityProtocolType]::Tls12) {
    Write-Host " - TLS 1.2"
}
if ($securityProtocol -band [Net.SecurityProtocolType]::Tls13) {
    Write-Host " - TLS 1.3"
}

Freundliche Grüße
Thomas

Hallo Thomas,

danke für den Hinweis. Das Zertifikat (nicht selbst signiert) ist in Ordnung und ist lt. Angabe MM Server auch mit dem Haken versehen.
Beim Auslesen der SSL und TLS Version mit PS kam SSL 3.0 und TLS 1.0 heraus.
Ich habe dann TLS 1.2 auf dem Server (Windows Server 2016) mit einem PS-Skript (setzt Reg-Keys) aktiviert und den Server durchgestartet.
Im Anschluss habe ich erneut das PS Skript die Versionen auslesen lassen. Dort kam keine Rückgabe. (hat mich verwirrt)
Mit dem Nartac Gui habe ich es überprüft und dort wird angezeigt, dass TLS 1.0 - 1.2 sowie SSL3.0 aktiv ist.

Beim Ausführen das Housekeeping Skriptes bekomme ich dennoch die ursprüngliche Meldung, dass der Wert „LastAccess“ leer ist.

Beste Grüße
Klaus