Benutzer-Werkzeuge

Webseiten-Werkzeuge


powershell:ad:set-vdisystemgroupmembership

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
powershell:ad:set-vdisystemgroupmembership [2019/12/11 12:53] henningpowershell:ad:set-vdisystemgroupmembership [2024/05/27 08:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 19: Zeile 19:
 # Logging festlegen # Logging festlegen
 $Date=get-date -Format yyyMMdd $Date=get-date -Format yyyMMdd
-$Logfile="C:\ProgramData\Skripte\log\Set-VdiSystemGroupMembership`_$date`.log"+$LogPath="C:\ProgramData\Skripte\log\Set-VdiSystemGroupMembership
 +if (!(Test-Path $LogPath)) 
 +    { 
 +    New-Item -ItemType Directory $LogPath 
 +    } 
 + 
 +$Logfile="$LogPath\$date`.log"
  
 # Dauer der Wartezeit vor dem Prüfen der neu geschriebenen Gruppenmitgliedschaften # Dauer der Wartezeit vor dem Prüfen der neu geschriebenen Gruppenmitgliedschaften
Zeile 26: Zeile 32:
 # Logging beginnen # Logging beginnen
 Start-Transcript -Path $Logfile -Append Start-Transcript -Path $Logfile -Append
 +
 +# Logdateien auf $LogFileLimit begrenzen
 +$LogFileLimit=14
 +$LogFiles=Get-ChildItem $LogPath
 +
 +# Wenn mehr als $LogFileLimit Dateien bestehen, die ältesten überschüssigen Dateien löschen
 +If ($LogFiles.count -gt $LogFileLimit)
 +    {
 +    Write-Host "Alte Logdateien entfernen"
 +    $RemoveNo=($LogFiles.count - $LogFileLimit)
 +    $RemoveFiles=$LogFiles | sort-object LastWriteTime -Descending | Select-Object -Last $RemoveNo
 +    foreach ($item in $RemoveFiles)
 +        {
 +        Remove-Item $item.fullname -Force -Confirm:$false
 +        }
 +    }
 +
  
 Write-Host "Alle Systeme mit passenden Namen aus der defnierten OU abfragen" Write-Host "Alle Systeme mit passenden Namen aus der defnierten OU abfragen"
Zeile 50: Zeile 73:
         }         }
     }     }
 +
 if ($WorkSystems.Count -eq 0) if ($WorkSystems.Count -eq 0)
     {     {
Zeile 55: Zeile 79:
     Stop-Transcript     Stop-Transcript
     Exit     Exit
 +    }
 +Else
 +    {
 +    Write-Host "Es wurden $($WorkSystems.Count) Systeme zur Bearbeitung gefunden"
     }     }
  
Zeile 60: Zeile 88:
 foreach ($group in $groups) foreach ($group in $groups)
     {     {
 +    Write-Host "Mitglieder der Gruppe $($group.Name) ermitteln"
     $members = Get-ADGroupMember "$($group.Name)"     $members = Get-ADGroupMember "$($group.Name)"
-    $AddMembers=(compare-object $members.distinguishedname $WorkSystems.distinguishedname | Where-Object SideIndicator -Like "=>").inputobject+    if (!($members.count -eq 0)) 
 +        { 
 +        $AddMembers=$WorkSystems.distinguishedname 
 +        } 
 +    Else 
 +        { 
 +        $AddMembers=(compare-object $members.distinguishedname $WorkSystems.distinguishedname | Where-Object SideIndicator -Like "=>").inputobject 
 +        }
     foreach ($AddMember in $AddMembers)     foreach ($AddMember in $AddMembers)
         {         {
Zeile 88: Zeile 124:
         }         }
     }     }
 +
 +
 +
 +
 # Logging beenden # Logging beenden
 Stop-Transcript Stop-Transcript
Zeile 93: Zeile 133:
 ===== Gruppen-Datei ===== ===== Gruppen-Datei =====
 Dir Gruppen werden in einer einfachen CSV-Datei definiert. Dir Gruppen werden in einer einfachen CSV-Datei definiert.
-<file set-VdiSystemGroupMembership.csv>+<file csv set-VdiSystemGroupMembership.csv>
 "Name" "Name"
 "Computer_SAP_Logon_CFG_von_Server_laden_(SAPGui_7.60)_s" "Computer_SAP_Logon_CFG_von_Server_laden_(SAPGui_7.60)_s"
powershell/ad/set-vdisystemgroupmembership.1576065210.txt.gz · Zuletzt geändert: 2024/05/27 08:34 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki