1

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

query session console /server:computer1

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

$cred = Get-Credential -Credential 'domain\administrator'
$CompName = Get-Content "C:\temp\comps.txt"

foreach($Comp in $CompName)
{
    query session console /server:$comp -Credential $cred 
}   

C:\temp\comps.txt выглядит так:

Computer1
Computer2
Computer3   

Я не могу понять, в чем проблема.

1 ответ1

1

Что случилось с вашим сценарием:

  • Доступ запрещен - ваш сеанс запросов (под вашим текущим именем пользователя) не имеет прав администратора на "удаленном компьютере".
  • ошибки недопустимых параметров - потому что "сеанс запроса" не принимает -Credential в качестве переключателя команд

Предполагая, что у вас есть имя пользователя и учетные данные (с правами администратора), которые работают на другом компьютере - вам необходимо запустить ваш powershell (и сеанс запросов) в сочетании с runas.

Пример: runas /user: user @ domain "powershell.exe codeabove.ps1"

Это позволит вашему сеансу PowerShell работать как тот пользователь @ домен, который затем запустит сценарий PowerShell и запустит сеанс запросов от имени этого пользователя @ домен. Предполагая, что user @ domain имеет доступ к удаленному компьютеру, он вернет нужный вам вывод.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .