Могу ли я запустить удаленную команду PowerShell / Cmd с учетными данными RDP без включенного удаленного PS?

Я нахожусь в "забавной" ситуации, когда у меня есть учетные данные RDP около 200 серверов, но ни на одном из них не включен удаленный Powershell.

Мне нужна простая задача: перезапустить их все. Но все, что у меня есть, это учетные данные RDP (учетная запись администратора) (в том числе: IP-адрес, имя пользователя и пароль каждого сервера).

Есть ли какой-либо способ с моего ноутбука (Windows 10, если это актуально) PowerShell / Командная строка, Я использую эти учетные данные и запускаю команду PowerShell / Cmd на этих удаленных серверах (в будущем мне могут понадобиться другие команды, кроме shutdown )?

0
задан 29 January 2017 в 03:00
3 ответа

Как упоминал @ryanbolger, вы также можете сделать это с помощью WMI. Джеффри Хикс написал здесь хорошую статью . Получите список серверов через Active Directory или из текстового файла. В качестве примера ниже я использую текстовый файл, поскольку вы явно не сказали, что используете Active Directory. Вы также упомянули, что у вас есть имена пользователей и пароли. Если они разные, вам также придется добавить это для каждого сервера. Я предполагаю, что имя пользователя и пароль одинаковы для каждого из них. MSDN - это ссылка на параметры в -argumentlist

$servers = get-content c:\listofservers.txt
$cred = get-credential
foreach ($server in $servers)
{
    Get-WmiObject -class win32_operatingsystem -ComputerName $server -credential $cred |
    Invoke-WMIMethod -name Win32Shutdown -credential $cred -argumentlist @(2)
}

Invoke-WMIMethod имеет параметр -whatif. Я рекомендую использовать это, чтобы убедиться, что все идет так, как вы ожидаете. Кроме того, сделайте это на ограниченном количестве тестовых компьютеров, прежде чем развертывать его на всех 200, чтобы убедиться, что он выполняет то, что вы хотите. В опубликованной мной ссылке вы также можете использовать различные параметры для -argumentlist, если некоторые серверы не перезагружаются по умолчанию.

Спасибо, Тим.

1
ответ дан 4 December 2019 в 16:22

PsExec довольно популярен для запуска произвольных команд на удаленных машинах.

Если вам нужно что-то, что можно использовать без загрузки стороннего программного обеспечения, встроенный shutdown.exe может удаленно тоже перезагружается. У него даже есть графический интерфейс, если вы используете флаг -i . Однако он не позволяет вам указывать альтернативные учетные данные, поэтому вам придется запускать его в контексте учетных данных удаленной учетной записи с чем-то вроде runas .

Есть способы сделать это с помощью WMI как ну, но с shutdown.exe, наверное, проще.

1
ответ дан 4 December 2019 в 16:22

Итак ... две вещи. Сервер Rpc недоступен - если ничего не было сделано - брандмауэр обучает их тому, что они являются azureVms, я бы сказал, что это проблема брандмауэра 99%. Вопрос ... ваши виртуальные машины изолированы друг от друга? Если нет - авторизуйтесь в одном из них и просто воспользуйтесь любым из описанных способов оттуда

-1
ответ дан 4 December 2019 в 16:22

Теги

Похожие вопросы