Jump to content

PowerShell Array auslesen und abgleichen


Direkt zur Lösung Gelöst von BOfH_666,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

OK, jetzt hab ichs :-). Danke auch.

 

if ((Compare-Object -ReferenceObject $SourceACL -DifferenceObject $TargetACL -Property IdentityReference, FileSystemRights) -eq $null)

ist die Lösung.

Entwerder Compare-Object gibt etwas zurück oder eben nicht. Und wenn es nix zurück gibt ist alles OK und wenn doch was zurück kommt, kann ich eine Aktion dran hängen.

Manchmal kann die Lösung so einfach sein...

Link zu diesem Kommentar
vor 7 Minuten schrieb BOfH_666:

Supi.

 

Eine Kleinigkeit noch. Beim Vergleich mit $NULL sollte $NULL auf der linken Seite des Vergleichsoperators stehen. Also ... 


if ($null -eq (Compare-Object -ReferenceObject $SourceACL -DifferenceObject $TargetACL -Property IdentityReference, FileSystemRights))

 

Interessant.

 

Was ist der Grund dafür? 

Ich schreibe das $null auch immer rechts.

Link zu diesem Kommentar
vor 38 Minuten schrieb tesso:

Interessant.

 

Was ist der Grund dafür? 

Ich schreibe das $null auch immer rechts.

Ich bin doch immer so schlecht im Erklären .... 

 

PowerShell – Null comparison demystified

 

Powershell check variable for NULL

 

Comparing against $NULL

 

Checking for NULL in Powershell

 

... und wenn Du VSCode benutzt, weist Dich der dort im Hintergrund laufende PSScriptAnalyzer auch direkt darauf hin.  ;-) 

 

Link zu diesem Kommentar
  • 1 Monat später...
Am 31.7.2020 um 14:14 schrieb BOfH_666:

Eine Kleinigkeit noch. Beim Vergleich mit $NULL sollte $NULL auf der linken Seite des Vergleichsoperators stehen. Also ... 


if ($null -eq (Compare-Object -ReferenceObject $SourceACL -DifferenceObject $TargetACL -Property IdentityReference, FileSystemRights))

 

OT: Und dann entdeckst du das im ExchangeSetup.log: ;-)

Zitat

[09.19.2020 12:29:26.0494] [1] [ERROR] The following error was generated when "$error.Clear(); 
          $tpath = "$env:SystemRoot\system32\inetsrv\microsoft.web.administration.dll";
          add-type -Path $tpath;
          $sm = new-object Microsoft.Web.Administration.ServerManager;
          if ($sm.Sites["Exchange Back End"] -eq $null)
          {
            $backEndWebSitePath = [System.IO.Path]::Combine($RoleInstallPath, "ClientAccess");
            $s = $sm.Sites.Add("Exchange Back End","http", "*:81:", $backEndWebSitePath);
            $s.ServerAutoStart = $true;
            $sb =$s.Bindings;
            $b = $sb.Add("*:444:","https");
            $sm.CommitChanges();
          }
        " was run: "System.Management.Automation.RuntimeException: Es ist nicht möglich, einen Index auf ein NULL-Array anzuwenden.

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...