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

Geschrieben

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...

Geschrieben

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))

 

Geschrieben
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.

Geschrieben
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.  ;-) 

 

  • 1 Monat später...
Geschrieben
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.

 

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...