Запуск программ на удаленном компьютере. Выполнение консольных команд на удаленных компьютерах по сети

07.11.2018

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

Я использую 2 средства удаленного выполнения консольных команд: PsExec и WinRM , у каждого из них есть свои преимущества.

Например, вы можете включить или отключить полноэкранный режим. Вы также можете начать чат с пользователем, чтобы получить дополнительную информацию о проблеме. Также нет передачи файлов любого типа с одного компьютера на другой. Общие настройки программы очень богаты. На вкладке «Общие» введите имя компании или организации и описание компьютера. Вы можете выбрать, следует ли защищать конфигурацию программного обеспечения с помощью пароля, независимо от того, перейдет ли компьютер в режим ожидания при подключении, и вы также можете разрешить только отображение входящих соединений.

PsExec

Одним из отличных решений поставленной в заголовке задачи является использование программы PsExec от великого Марка Руссиновича .

Программа работает по клиент-серверному принципу: на локальной машине выполняется клиент, который посылает команды серверу на удаленном компьютере. Особенностью этой программы является то, что серверная часть устанавливается автоматически непосредственно перед выполнением команды, а затем удаляется. Таким образом для выполнения команд на удаленных машинах достаточно иметь на них административные права.

Умный вариант - это тот, который позволяет вам изменить пароль, используемый программой для входа в систему: таким образом, процесс удаленной помощи становится еще проще. Чтобы улучшить соединение, вы можете включить или отключить несколько параметров.

  • Глубина цвета.
  • Графические эффекты.
  • Прокси-сервер.
Он имеет интуитивно понятный интерфейс, многоязычную поддержку и беспрецедентную простоту использования. Чтобы загрузить бесплатную версию и узнать больше о программах и планах подписки, обратитесь к ссылке в конце статьи. Вы не можете физически присутствовать на рабочем компьютере, но вам нужно работать с ним? По-видимому, неразрешимой проблемой является технология подключения к удаленному рабочему столу, которая позволяет удаленно подключаться к компьютеру и контролировать его, как если бы вы действительно сидели там.

Если PsExec запускается от имени администратора, который входит в тот же домен, что и удаленны компьютер, то никаких учетных данных даже вводить не нужно. В противном случае, их можно указать в командной строке, либо PsExec сама их запросит. PsExec работает на ОС начиная с Windows 2000 и заканчивая 64-битным Windows Server 2008 R2.

Очень полезными в PsExec являются следующие возможности:

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

  • Выполнение команды на группе компьютеров . Пример: следующая команда позволяет принудительно применить самые свежие групповые политики:
    psexec @group.txt gpupdate /force
  • Выполнение команд от имени системной учетной записи . Пример: следующая команда заставит удаленную систему принудительно проверить обновления:
    psexec \\computer -s wuauclt /detectnow
  • Копирование выполняемой программы на удаленный компьютер перед выполнением . Пример: следующая команда позволит обновить членство данного компьютера в группе безопасности Active Directory (токен доступа) без перезагрузки:
    psexec \\computer -c -s klist.exe purge

Трудно переоценить пользу этой программы, если использовать скрипты и возможности консольных команд, встроенных в Windows.

Все выпуски, за исключением последних двух, не поддерживают одновременное использование нескольких мониторов. Однако, прежде чем использовать его, вам нужно внести некоторые незначительные корректировки и выполнить несколько условий. Прежде всего, вам нужно убедиться, что функция включена. В меню «Пуск» щелкните правой кнопкой мыши «Компьютер» и выберите «Свойства» во всплывающем меню. В левой части нажмите «Параметры удаленного доступа», а в диалоговом окне «Открыть» в разделе «Удаленный рабочий стол» выберите один из предлагаемых вариантов.

Windows Remote Management

Изначально это была серверная технология для удаленного управления оборудованием, которая появилась в Windows Server 2003 R2 как часть компонента Hardware Management, но недавно Microsoft выпустили пакет Windows Management Framework, который включает в себя PowerShell 2.0 и WinRM 2.0 и устанавливается на клиентские ОС как обновление. Подробности можно прочитать в статье KB968929 .

Используя кнопку «Выбрать пользователей», вы можете указать, какие пользователи будут иметь доступ к удаленному доступу. Если вы ничего не выберете, учетная запись, в которую вы вошли в систему автоматически, будет засчитана. Удаленный рабочий стол также является условием защиты паролем.

Самое основное правило заключается в том, что удаленные подключения могут выполняться только при включенном компьютере. Он не должен находиться в спящем режиме даже в спящем режиме, поэтому вам необходимо настроить его на автоматическое переключение на эти состояния. Здесь можно настроить параметры: панели управления Аппаратное обеспечение и звук Параметры питания.

Прелесть WinRM заключается в простоте развертывания в доменной среде через WSUS в качестве факультативного обновления ОС и мощи, которую даёт совместное с PowerShell применение.

Использование WinRM происходит через 2 команды.

winrm.cmd служит для конфигурирования настроек и диагностики клиента и сервера WinRM.

Для того, чтобы сервер WinRM начал принимать команды, должна быть запущена служба Windows Remote Management и произведена её начальная конфигурация. Используйте команду

Если все условия выполнены, вы можете начать соединение с главным компьютером. После ввода нажмите «Подключиться» и дождитесь, пока в подсказке будет введена информация для входа. Используйте ту же информацию, которую вы вводите, если вы физически сидите на своем компьютере. Тогда само соединение будет иметь место, а интерфейс удаленного компьютера открывается в отдельном окне или по экрану. Конечно, вы можете отменить полноэкранный режим, даже если вы уменьшите комфорт пользователя.

Теперь вы можете работать со своим компьютером по умолчанию, и все, что вы сделаете, приведет вас непосредственно к главному компьютеру. Конечно, доступ ко всем данным, хранящимся на его диске, является, конечно же, вопросом. Важно то, что когда вы подключены к нему таким образом, никто другой не может работать над этим.

winrm quickconfig на локальной машине, либо финт ушами
psexec -s \\servername winrm quickconfig по сети, используя PsExec от имени системной учетной записи.

Будет предложено автоматически запускать службу WinRM и разрешить уделенные подключения, соглашайтесь;)

Чтобы успешно подключаться к WinRM серверу (имеется в виду серверная часть, принимающая команды), не входящему в тот же домен, что и ваш клиентский компьютер, необходимо на клиенте этот целевой сервер добавить в «доверенный список» следующей командой:

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

Когда вы нажимаете «Параметры» в диалоговом окне «Подключение к удаленному рабочему столу», для подробных настроек для подключения, передачи и графических параметров будут отображаться несколько вкладок. Например, большое количество активированных эффектов может вызвать слишком медленный отклик и резкий рендеринг изображения. Поэтому на вкладке «Производительность» вы можете использовать флажки, чтобы указать, какие эффекты будет использовать удаленный рабочий стол. Чем больше вы их выключите, тем больше будет сделано.

winrm set winrm/config/client @{TrustedHosts="servername"} , где вместо servername можно указать IP-адрес, либо * (звёздочку).

Для пользователей Windows Vista и Windows 7, работающим не от имени встроенного администратора (обычно так и бывает), нужно выполнить следующую команду

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

По умолчанию, установлено ограничение на 5 одновременных соединений WinRM от клиента, для увеличения этого числа выполните команду

Различные разрешения могут усложнить работу. По умолчанию используется разрешение подключаемого компьютера, и если вы хотите использовать удаленный рабочий стол в отдельном окне, вы увидите полосы прокрутки. На вкладке «Вид» вы можете использовать ползунок, чтобы установить, какое разрешение использовать. Если вы переместите его вправо, будет использоваться полноэкранный режим.

Вкладка «Местные инструменты» также содержит важные настройки. Здесь, в разделе «Удаленный звук», вы можете указать, как будет воспроизводиться звук удаленного компьютера, а в разделе «Клавиатура» - как окно удаленного рабочего стола реагирует на быстрые клавиши.

winrm s winrm/config/winrs @{MaxShellsPerUser="X"}

winrs.exe — клиент для отправки запросов к серверной части. Пример: следующая команда принудительно перезагрузит удаленную систему…

winrs -r:servername shutdown /r /t 0

В доменной среде при отправке команд используются учетные данные запустившего пользователя. Для посыла команд от имени другого пользователя используются ключи -u:user -p:pass. Пример: следующая команда очистит локальный кэш DNS-имён на удаленной системе

Если вы хотите скопировать некоторые данные с удаленного компьютера на текущий, это, вероятно, разочарует вас, что невозможно просто перетащить файлы, как вы привыкли использовать виртуальную машину. Решение состоит в том, чтобы установить поддержку текущего настольного устройства хранения данных на удаленном рабочем столе.

На удаленном компьютере это местоположение расположено в проводнике как удаленная папка. Это в какой-то мере аналогичная технология, но она отличается тем, как она используется. Как только этот человек присоединяется, они могут просматривать ваш экран и говорить с вами о том, что вы оба видите. С вашего разрешения вы можете даже использовать свою собственную мышь и клавиатуру для временного управления вашим компьютером. Вы можете помочь кому-то другому таким же образом.

winrs -r:servername -u:user -p:pass ipconfig /flushdns

PsExec — утилита для удаленного выполнения команд

Выполнение команд на удаленном компьютере — задача довольно распространенная. Это может быть необходимо для изменения настроек системы, установки или удаления программ и много еще для чего. Для решения подобных задач есть довольно много различных инструментов, начиная с серьезных программных комплексов типа System Center Configuration Manager и заканчивая скромными утилитами командной строки. Об одной из таких утилит и пойдет речь в этой статье.

Некоторые антивирусные сканеры сообщают, что один или несколько средств удаленного администрирования заражены вирусом «удаленного администратора». Некоторые видеокарты могут быть настроены для отображения «одного большого рабочего стола» на нескольких мониторах, что не то же самое, что расширение основного рабочего стола на дополнительный монитор.

По умолчанию эта функция будет отключена. Однако было добавлено сложное обходное решение. Нажмите «Да», чтобы продолжить. Чтобы предотвратить появление этой информации, вы должны увидеть вышеупомянутые разделы реестра. Общие вопросы настройки и внедрения.

Утилита PsExec входит в состав пакета PsTools компании Sysinternals. Она позволяет выполнять команды на удаленных компьютерах и при этом не требует установки в систему. Для использования утилиты достаточно просто скопировать ее в папку с исполняемыми файлами (напр. C:\Windows\system32) и запустить из любой оболочки командной строки: Cmd или PowerShell.
Принцип работы программы состоит в следующем: в ресурсах исполняемого файла PsExec.exe находится еще один исполняемый файл – PSEXESVC, который является службой Windows. Перед выполнением команды PsExec распаковывает этот ресурс в скрытую административную папку удалённого компьютера Admin$ (C:\Windows), в файл C:\Windows\system32\psexesvc.exe.

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

Не все полномочия или группы, которым назначена ссылка, назначаются компоновщику. Недопустимый сетевой адрес. Указанное имя сетевого ресурса не может быть найдено в файле изображения. Это может указывать на серьезную ошибку для сетевой системы, сетевого интерфейса или самой локальной сети. Существующее соединение было принудительно закрыто удаленным хостом. Обычно это результат внезапной остановки на удаленном хосте, хост перезапускается или удаленный хост использует жесткое завершение работы.

Примечание. Если вы с помощью ключа -c указали программе, что необходимо скопировать исполняемые файлы на эту систему, они тоже скопируются в эту папку.

После завершения копирования PsExec устанавливает и запускает службу, используя API функции Windows для управления службами. Затем, после запуска PSEXESVC между ним и PsExec устанавливается соединение для передачи данных (ввода команд и получения результатов). По завершению работы PsExec останавливает службу и удаляет её с целевого компьютера.

Не удалось выполнить попытку подключения, потому что связанная страница не ответила правильно в указанное время или соединение было прекращено из-за сбоя хоста. Никакое соединение не может быть установлено из-за активного отказа от целевой машины. Хозяин не был найден. Нет такого хозяина. Имя не является официальным именем хоста или псевдонимом, или его нельзя найти в базе данных, доступной для поиска, или в обходных базах данных. Эта ошибка также может быть возвращена для запросов протокола и службы и указывает, что имя не может быть найдено в соответствующей базе данных.

Синтаксис PsExec выглядит следующим образом:

psexec \\компьютер [-u пользователь [-p пароль]] программа [аргументы]

Имя пользователя и пароль можно и не задавать, тогда удаленный процесс запускается из под той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если же задать имя пользователя, то удаленный процесс запустится из под указанной учетной записи и получит доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Однако имейте ввиду, что пароль передается в удаленную систему открытым текстом.

Запрашиваемое имя является действительным и было найдено в базе данных, но соответствующие данные не сопоставляются с тем, что разрешено. Существуют и другие возможные ошибки, которые здесь не упоминаются. В следующих статьях базы знаний Майкрософт. Отключение простого совместного использования файлов требуется для создания списков управления.

Доступ к общим дискам и папкам. Прокрутите список расширенных настроек и снимите флажок Использовать простые. Совместное использование файлов. Простая передача файлов может быть недоступна. Это сообщение - это просто информация, а не сообщение об ошибке. Это означает, что пользователь может или не может иметь право щелкнуть правой кнопкой мыши файл или папку для загрузки на удаленный компьютер. Даже если сообщение получено, это не означает, что возможность отправки файлов с локального компьютера на удаленный компьютер была потеряна.

В качестве примера очистим кэш dns на удаленном компьютере SRV1:

psexec \\SRV1 ipconfig /flushdns

Команда будет запущена на компьютере SRV1 под вашими учетными данными. После завершения работы ipconfig весь текстовый вывод будет передан на ваш компьютер, а кроме того будет возвращён код выполнения команды (error code). В случае если команда выполнилась успешно, он будет равен 0.

Чтобы отключить уведомление, выполните следующие действия. Локальный компьютер настроен как часть рабочей группы, а не домена. Он никоим образом не изменяет эту информацию. Список компьютеров поступает непосредственно из базы данных диспетчера учетных записей безопасности в контроллере домена и предоставляет список всех членов домена. Однако, если компьютеры отключены от домена, они имеют переименованное имя, перемещаются в другой домен или удаляются, учетная запись не будет автоматически удалена, а старая информация должна быть удалена вручную из домена.

Если нужно выполнить несколько команд, то лучше установить с удаленным компьютером интерактивный сеанс. Для этого вводим команду psexec \\SRV1 cmd . Теперь команды, вводимые на локальном компьютере будут выполняться на удаленном компьютере SRV1.


PsExec позволяет выполнить команду одновременно на нескольких компьютерах. Для этого можно ввести имена компьютеров через запятую: psexec \\SRV1, SRV2 или сохранить их в текстовом файле и затем указать его адрес: psexec @c:\comp.txt . Если же вместо имени компьютера поставить звездочку, вот так: psexec \\* , то команда будет выполнена на всех компьютерах домена.

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

Поддельные домены могут отображаться как рабочие группы, настроенные на предприятии пользователя. Это означает, что компьютеры можно легко разместить в списке браузеров до следующего обновления. Серверы и рабочие станции могут быть скрыты. Откройте представление свойств и добавьте эти компьютеры в пакетное окно внизу. Щелкните правой кнопкой мыши и выберите пакетную обработку. Затем у него будет возможность изменить значение скрытого атрибута.


И еще один интересный способ использования утилиты PsExec. Если не указывать имя компьютера, то по умолчанию команда выполняется в локальной системе. Используя ключ -s можно запускать программы под учетной записью системы. Например, запустим сеанс командной строки: psexec -s cmd и затем командой whoami проверим, под каким пользователем мы сейчас работаем. Эта возможность может пригодиться для отладки программ или доступа к скрытым разделам реестра SAM и SECURITY.


Ну и несколько слов о ключах программы. Все описывать не буду, расскажу о наиболее интересных:

Указанная программа копируется в удаленную систему для выполнения. Например:

psexec \\SRV1 -c test.exe

Если этот параметр не задан, то приложение должно находиться в системной папке удаленного компьютера. Если же на удаленном компьютере такая программа уже есть и находится не в системном каталоге, то необходимо указать к ней полный путь (если имя программы содержит пробелы, то его необходимо поместить в кавычки):

psexec \\SRV1 «c:\program files\test.exe»

Если вместе с ключом -c использовать ключ -f то даже если программа уже есть в удаленной системе, она будет перезаписана. А с ключом -v она перезапишется только в том случае, если копируемая версия программы более новая чем та, что установлена в системе.

Работа программы в интерактивном режиме. По умолчанию PsExec выполняет команды в скрытом режиме, то есть на системе где выполняется команда, не выводятся никакие окна или диалоги. Однако есть возможность изменить это с помощью ключа -i . После него можно указать номер сессии, в которой выводить окна, а можно и не указывать, тогда интерфейс будет отображен в консольной сессии.

Указывает, что не нужно ждать завершения приложения. В этом случае мы не получим выходных данных от консольной утилиты, но зато сможем не дожидаясь завершения предыдущей команды запускать следующие. Этот параметр следует использовать только при запуске неинтерактивных приложений.

Используется для запуска программы в режиме . Может потребоваться в операционных системах Windows Vista и выше для запуска некоторых программ, вносящих изменения в настройки системы (например regedit).

А с помощью этого ключа можно наоборот понизить полномочия. При запуске процесса пользователю вне зависимости от его принадлежности к группе администраторов предоставляются ограниченные права (права группы «администраторы» отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»).

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