bugger
Goto Top

Powershell - User Remote abmelden

Hallo zusammen,

ich habe dieses Frankenstein Code Monster, es funktioniert auch. Zeile 3 und 4 meldet alle angemeldeten User ab und die restlichen Zeilen melden alle getrennten User ab.
Ich hätte es allerdings lieber in schön und kürzer, könnt ihr mir da helfen? face-smile

foreach ($server in $server)
			{
   query user /server:$SERVER 2>&1 | select -skip 1 | foreach {
logoff ($_ -split "\s+")[-6] /server:$SERVER  
}
[string] $strUsername = ""  
[string] $strSitzungsId = ""  

[array] $aIgnorUsername = @("services","console","rdp","administrator")  


query session /server:$SERVER | Select-String "$username\s+(\w+)" | Select-Object -Skip 1 | Foreach {  

    $strUsername = $_.Matches.Groups[1].Value

    if($aIgnorUsername -notcontains $strUsername) {
        $strSitzungsId = ((quser /server:$SERVER | ? { $_ -match $strUsername} ) -split ' +')[2]  
    
        if($strSitzungsId) {
            Write-host "Benutzer $strUsername wird abgemeldet."  
            logoff $strSitzungsId /server:$SERVER
        }
    }
}
}

Danke und Gruß
Bugger

Content-Key: 341344

Url: https://administrator.de/contentid/341344

Printed on: April 20, 2024 at 02:04 o'clock

Member: Kraemer
Solution Kraemer Jun 22, 2017 at 13:06:26 (UTC)
Goto Top
Moin,
foreach ($server in $server) {
    query user /server:$SERVER 2>&1 | select -skip 1 | foreach {logoff ($_ -split "\s+")[-6] /server:$SERVER}  
    [string] $strUsername = ""  
    [string] $strSitzungsId = ""  
    [array] $aIgnorUsername = @("services","console","rdp","administrator")  
    query session /server:$SERVER | Select-String "$username\s+(\w+)" | Select-Object -Skip 1 | Foreach {  
        $strUsername = $_.Matches.Groups[1].Value
        if($aIgnorUsername -notcontains $strUsername) {
            $strSitzungsId = ((quser /server:$SERVER | ? { $_ -match $strUsername} ) -split ' +')[2]  
            if($strSitzungsId) {
                Write-host "Benutzer $strUsername wird abgemeldet."  
                logoff $strSitzungsId /server:$SERVER
            }
        }
    }
}

Gruß
Member: Bugger
Bugger Jun 22, 2017 at 13:39:17 (UTC)
Goto Top
Danke, aber ich dachte da eher an eine art "Vereinigung" der beiden Befehle, sofern überhapt möglich, gedacht. Leerzeilen rausnehmen hätte ich auch noch gerade so hinbekommen :P
Member: Kraemer
Kraemer Jun 22, 2017 at 13:55:45 (UTC)
Goto Top
Habe ich also doch richtig geraten: Du hast keinen blassen Schimmer, wie das Skript funktioniert...
Member: Bugger
Bugger Jun 22, 2017 at 14:02:01 (UTC)
Goto Top
Alles klar, dann ist es also nicht möglich, trotzdem danke :P