Benutzer-Werkzeuge

Webseiten-Werkzeuge


powershell:ad:examples

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:examples [2022/07/06 15:03] – [User, Gruppen und Computer] henningpowershell:ad:examples [2024/05/27 08:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 29: Zeile 29:
 Step 2: Benutzer über Session-ID abmelden: Step 2: Benutzer über Session-ID abmelden:
 <code powershell>Invoke-Command -ComputerName vm-133 -ScriptBlock {logoff 1}</code> <code powershell>Invoke-Command -ComputerName vm-133 -ScriptBlock {logoff 1}</code>
 +
 +Das Ganze halbwegs automatisiert als Skript:
 +<file powershell RemoteLogOff-User.ps1>
 +$User=Read-Host "SamAccountName eingeben"
 +
 +
 +# Anmeldelogs nach dem System des Benutzers durchsuchen
 +$Directory="\\vbw-bochum.local\dfs\Logondaten\benutzer"
 +$Files=Get-ChildItem $Directory -File
 +
 +$UserSystems=@()
 +foreach ($File in $Files)
 +    {
 +    foreach($line in Get-Content ($File.FullName))
 +        {
 +        if($line -like "Rechner*")
 +            {
 +            $item=New-Object -type psobject | Add-Member -MemberType NoteProperty -Name "SamAccountName" -Value $File.name.TrimEnd(".txt") -PassThru | add-member -MemberType NoteProperty -Name "System" -Value $line.TrimStart("Rechner: ") -PassThru | Add-Member -MemberType NoteProperty -Name "Erfassungsdatum" -Value $File.lastwritetime -PassThru 
 +            }
 +        }
 +    
 +    $UserSystems += $item
 +    }
 +
 +$system=(($UserSystems | Where-Object samaccountname -like $User).system).trimend(" ")
 +
 +# Auf dem gefundenen System nach Sessions mit dem Anmeldenamen suchen
 +Invoke-Command -ComputerName $system -ScriptBlock `
 +    {
 +    $sessions=quser | Where-Object {$_ -match "$($user:using)"}
 +    $sessions
 +    $SessionIDs=@()
 +    foreach ($line in $sessions)
 +        {
 +        if ($line -notlike "*Benutzername*" -and $line -notlike "*Aktiv*")
 +            {
 +            #replace "\s{2,}",";" => Ersetze alle mehr als 2x aufeinanderfolgenden Leerzeichen durch ein ;
 +            $SessionIDs+=($line -replace "\s{2,}",";").split(";")[2]
 +            }
 +        }
 +    
 +    foreach ($SessionID in $SessionIDs)
 +        {
 +        logoff $SessionID
 +        }
 +    }
 +</file>
 +
 +
 +**Horizon-Anmeldedienst starten**:\\
 +<code powershell>Invoke-Command -ComputerName REMOTECOMPUTER-X -ScriptBlock {Get-Service vmlm | start-service}</code>
  
 ===== Arbeiten am AD ===== ===== Arbeiten am AD =====
Zeile 45: Zeile 96:
 **Exchange-Version** **Exchange-Version**
 <code powershell>Get-ADObject "CN=ms-Exch-Schema-Version-Pt,$((Get-ADRootDSE).schemaNamingContext)" -Property Rangeupper</code> <code powershell>Get-ADObject "CN=ms-Exch-Schema-Version-Pt,$((Get-ADRootDSE).schemaNamingContext)" -Property Rangeupper</code>
 +==== Bilder konvertieren ====
 +Eigentlich ist das kein Powershell-Problem. Bilder können über eine beliebige Shell sehr gut mit Hilfe von ImageMagick konvertiert werden.\\
 +
 +**Alle *.HEIC Dateien im aktuellen Verzeichnis nach ''.PNG'' konvertieren:**
 +<code powershell>magick mogrify -monitor -format PNG *.heic</code>
 +
 +**Wahlweise nach ''.JPG'':**
 +<code powershell>magick mogrify -monitor -format JPG *.heic</code>
 +
 +**Eine einzelne Datei konvertieren:**
 +<code powershell>magick convert IMG_1874.HEIC IMG_1874.jpg</code>
 +
powershell/ad/examples.1657112580.txt.gz · Zuletzt geändert: 2024/05/27 08:34 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki