Запрашивать ввод пользователя при использовании Invoke-Command - PullRequest
0 голосов
/ 29 мая 2019

Недавно я использовал команду Powershell в настройке домена для выхода из системы удаленных пользователей, которые не выходят из системы ночью после перехода с нашей ночной командой. Я использую команду

    Invoke-Command -ComputerName $name { quser }

После проверки человек вошел в систему.

    Invoke-Command -ComputerName $name { logoff 2 }

(2 - идентификатор сеанса) Это прекрасно работает, но становится утомительным каждый раз редактировать файл .ps1, чтобы изменить имя рабочей станции. Я пытаюсь отредактировать эту команду, чтобы она запрашивала ввод пользователя, а затем использовала ввод пользователя в качестве рабочей станции, на которой выполняется команда, но всякий раз, когда я использую следующий код, она не работает.

    $name = Read-Host -Prompt 'Enter the name of the computer' 
    Invoke-Command -ComputerName computer1 { quser }

Это только для quser прямо сейчас, после того, как я получил эту плохо рассортированную работу, включая Logoff 2. Извините, если мне не хватает какой-либо информации, довольно новой для Powershell.

1 Ответ

0 голосов
/ 29 мая 2019

Поскольку средства командной строки удаленного рабочего стола могут работать удаленно, нет необходимости вызывать удаленный сеанс с PowerShell. Попробуйте следующий сценарий, который выйдет из системы всех пользователей на удаленной машине.

param([string]$ComputerName)

# Cleanup the quser.exe output a little and turn it into an object
# Modified from: https://ss64.com/nt/query-user.html

$sessions = (quser /server:$ComputerName) -replace '\s{2,}', ',' -replace '>','' | ConvertFrom-Csv

foreach ($session in $sessions)
{
    Write-Output "Logging off user $($session.USERNAME) with session ID $($session.ID) on $ComputerName..."
    (logoff $session.ID /server:$ComputerName /V)
}

Пример использования, если скрипт сохраняется как LogOffUsers.ps1 и запускается из командной строки PowerShell.

.\LogOffUsers.ps1 -ComputerName SFWEB01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...