Выполнение команд на удалённом Windows
Для запуска команд на удалённом компьютере Windows можно использовать утилиту psexec.exe от Microsoft. Команды можно объединить в bat файл как обычно. Пример удаления установленной на удалённом компьютере программы utorrent:
@echo off taskkill /F /IM utorrent.exe "C:\Users\sklad5\AppData\Roaming\uTorrent\uTorrent.exe" /UNINSTALL /s RD /S /Q "C:\Users\sklad5\AppData\Roaming\uTorrent\"
- Завершаем запущенный процесс utorrent.exe
- Удаляем utorrent, ключ /s означает что удаление будет проходить без каких либо вопросов, т.е. пользователь не будет видеть и знать что сейчас удаляется программа.
- Удаляем каталог программы.
Утилита wmic.exe
Утилита wmic.exe позволяет управлять структурой WMI (Windows Management Instrumentation) не только на локальном компьютере, но и удалённо.
Введя в командной строке команду wmic , получим следующее приглашение:
wmic:root\cli>
Список установленных с помощью msi установщика программ:
/node:\\192.168.1.3 product get name
Удаление программы 7-Zip:
wmic:root\cli>/node: \\192.168.1.3 product where name="7-Zip 9.20" call uninstall
См. также
- Удаленное удаление программ с компьютера — более пространный источник для этой статьи.
Выполнение удаленных команд
Одна команда Windows PowerShell позволяет запускать команды на одном или сотнях компьютеров. Windows PowerShell поддерживает удаленные вычисления с использованием различных технологий, включая WMI, RPC и WS-Management.
PowerShell поддерживает удаленное взаимодействие WMI, WS-Management и SSH. В PowerShell 7 и более поздних версиях RPC поддерживается только в Windows.
Дополнительные сведения о удаленном взаимодействии в PowerShell см. в следующих статьях:
- Удаленное взаимодействие через SSH в PowerShell
- Удаленное взаимодействие через WSMan в PowerShell
Удаленное взаимодействие с Windows PowerShell без настройки
Многие командлеты Windows PowerShell имеют параметр ComputerName, который позволяет собирать данные и изменять параметры одного или нескольких удаленных компьютеров. Эти командлеты используют разные протоколы связи и работают во всех операционных системах Windows без специальной настройки.
В эти командлеты входят следующие:
Обычно командлеты, которые поддерживают удаленное взаимодействие без специальной настройки, имеют параметр ComputerName, но не имеют параметра Session. Чтобы найти эти командлеты в сеансе, введите:
Get-Command | Where-Object
Удаленное взаимодействие Windows PowerShell
Благодаря использованию протокола WS-Management служба удаленного взаимодействия Windows PowerShell позволяет запустить любую команду Windows PowerShell на одном или нескольких удаленных компьютерах. Вы можете устанавливать постоянные подключения, запускать интерактивные сеансы и выполнять скрипты на удаленных компьютерах.
Чтобы использовать службу удаленного взаимодействия Windows PowerShell, удаленный компьютер должен быть настроен для удаленного управления. Дополнительные сведения, в том числе инструкции, см. в разделе about_Remote_Requirements.
После настройки службы удаленного взаимодействия Windows PowerShell вы получите доступ ко многим стратегиям удаленного взаимодействия. В этой статье перечислены только некоторые из них. См. дополнительные сведения об удаленном взаимодействии.
Запуск интерактивного сеанса
Чтобы запустить интерактивный сеанс с одним удаленным компьютером, используйте командлет Enter-PSSession. Например, чтобы запустить интерактивный сеанс с удаленным компьютером Server01, введите:
Enter-PSSession Server01
В командной строке отобразится имя удаленного компьютера. Все команды, введенные в командной строке, запускаются на удаленном компьютере, а результаты отображаются на локальном компьютере.
Чтобы завершить интерактивный сеанс, введите:
Exit-PSSession
Дополнительные сведения о командлетах и Exit-PSSession см. в Enter-PSSession следующих разделах:
Выполнение удаленной команды
Чтобы выполнить команду на одном или нескольких компьютерах, используйте командлет Invoke-Command. Например, чтобы выполнить команду Get-UICulture на удаленных компьютерах Server01 и Server02, введите:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock
Выходные данные будут возвращены на ваш компьютер.
LCID Name DisplayName PSComputerName ---- ---- ----------- -------------- 1033 en-US English (United States) server01.corp.fabrikam.com 1033 en-US English (United States) server02.corp.fabrikam.com
Запуск сценария
Чтобы запустить скрипт на одном или нескольких удаленных компьютерах, используйте параметр FilePath командлета Invoke-Command . Сценарий должен быть включен или доступен для локального компьютера. Результаты будут возвращены на локальный компьютер.
Например, следующая команда выполняет DiskCollect.ps1 скрипт на удаленных компьютерах Server01 и Server02.
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Установка постоянного подключения
Используйте командлет New-PSSession для создания постоянного сеанса на удаленном компьютере. В следующем примере создаются удаленные сеансы на удаленных компьютерах Server01 и Server02. Объекты сеанса хранятся в переменной $s .
$s = New-PSSession -ComputerName Server01, Server02
После установки сеансов в них можно выполнить любую команду. Так как сеансы являются постоянными, вы можете собирать данные из одной команды и использовать их в другой.
Например, следующая команда выполняет Get-HotFix команду в сеансах в переменной $s и сохраняет результаты в переменной $h . Переменная $h создается в каждом сеансе из $s , но она не существует в локальном сеансе.
Invoke-Command -Session $s
Теперь вы можете использовать данные в переменной $h с другими командами в том же сеансе. Результаты отобразятся на локальном компьютере. Пример:
Invoke-Command -Session $s >
Расширенная служба удаленного взаимодействия
PowerShell включает командлеты, которые позволяют:
- Настройка и создание удаленных сеансов на локальном и удаленном концах
- Создание настраиваемых и ограниченных сеансов
- Импорт команд из удаленного сеанса, которые фактически выполняются неявно в удаленном сеансе
- Настройка безопасности удаленного сеанса
PowerShell в Windows включает поставщик WSMan. Поставщик создает диск WSMAN: , который позволяет перемещаться по иерархии параметров конфигурации на локальном и удаленном компьютерах.
См. дополнительные сведения о поставщике WSMan и командлетах WS-Management или введите команду Get-Help wsman в консоли Windows PowerShell.
Дополнительные сведения можно найти в разделе
- Вопросы и ответы об удаленном взаимодействии PowerShell
- Register-PSSessionConfiguration
- Import-PSSession
Справку по ошибкам службы удаленного взаимодействия см. в разделе about_Remote_Troubleshooting.
См. также:
- about_Remote
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Invoke-Command
- Import-PSSession
- New-PSSession
- Register-PSSessionConfiguration
- Поставщик WSMan
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
PowerShell is an open source project. Select a link to provide feedback:
Обратная связь
Отправить и просмотреть отзыв по
Как выполнить команду на удаленном компьютере cmd
Возникла задача выполнить кое-какую операцию с помощью командной строки на другом компьютере, само собой идти к пользователю запускать командную строку и вбивать команды- не наш метод, нам надо не вставая с кресла запустить командную строку удаленного компьютера и выполнить необходимые действия в командной строке. Конечно, подобное действие можно выполнить с помощью программ удаленного подключения, но это не всегда удобно и требует наличия подобной программы у вас и у пользователя (клиент- сервер). Процедуру по подключению к командной строки другого компьютера, можно выполнить значительно просто, с помощью команды PSEXEC.
PsExec — это утилита командной строки, с возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах Windows и удаленно запускать различные команды.
Эта утилита ставиться на только на компьютер администратора. Для установки необходимо ее скачать, вот ссылка на официальный сайт Microsoft . После скачивания архива его необходимо разархивировать, в разархивированной папке найти файл PsExec.exe. Нажмите на нем два раза, появиться окно с лицензионным соглашением, нажимаем «Agree«.
На этом установка PSEXEC можно считать оконченной.
Разберем синтаксис команды:
psexec [\\компьютер[,компьютер2[. ] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-][-a n,n. ] программа [аргументы]
компьютер Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
@файл Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-a Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
-c Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e Указанный профиль учетной записи не загружается.
-f Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-l При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
-n Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s Удаленный процесс запускается из системной учетной записи.
-u Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
-приоритет (приоритет) Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
программа Имя запускаемой программы.
аргументы Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).
Примеры работы команды PSEXEC:
1) Для того чтобы запустить командную строку другого компьютера, необходимо ввести
psexec \\ cmd
например:
psexec \\WIN782 cmd
после этого можете вводить необходимые вам команды.
2) Для того чтобы запустить какою либо программу (в данном примере test.exe) на удаленном компьютере необходимо выполнить команду, (эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме).
psexec \\ -c test.exe
например:
psexec \\WIN782 -c test.exe
3) Если в удаленной системе такая программа уже установлена и находится не в системном каталоге, укажите полный путь к этой программе
psexec \\WIN782 c:\temp\test.exe
Работа с удаленными компьютерами с помощью NETSH
Netsh позволяет работать с удаленными компьютерами. Для операций в интерактивном режиме нужно запустить netsh с параметром -R и указать IP-адрес или доменное имя компьютера, к которому вы хотите подключиться, например:
netsh -г 192.168.10.15 или netsh -г comp1
Если вы работаете с удаленным компьютером, Netsh добавляет в приглашение командной строки IP-адрес или имя этого компьютера:
[comp1] netsh>
Для работы в неинтерактивном режиме с удаленным компьютером предназначен следующий синтаксис:
netsh -с Контекст -г Удаленный Компьютер Команда, где
- Контекст — это идентификатор нужного контекста,
- Удаленный Компьютер — имя или IP-адрес удаленного компьютера,
- Команда — команда, которую нужно выполнить.
Пример команды NETSH — получение списка IP-адресов
Рассмотрим пример: netsh -с «interface ip» -г corpsvr02 show ipaddress
В этом примере вы получаете список IP-адресов, настроенных на CorpSvr02, с применением контекста IP-интерфейса. Здесь контекст RPC не годится, так как он доступен только на локальном компьютере.
Netsh требует наличия в сети сконфигурированной службы маршрутизации и удаленного доступа. А точнее, вы должны настроить политику удаленного доступа Connections То Other Access Servers, чтобы предоставить разрешение на удаленный доступ. Также убедитесь, что служба удаленного доступа работает.
Работа с файлами сценариев с помощью NETSH
Как обсуждалось ранее, вы можете ввести полную последовательность команд Netsh в командной строке или в сценарии. Подвох в том, что вы должны знать полную командную строку, которую собираетесь использовать, и не можете положиться на подсказку Netsh. Некоторые командные строки могут быть очень длинными и сложными. Например, следующие команды выполняют подключение к DHCP-серверу, настраивают DHCP-область, а затем активизируют эту область:
- netsh dhcp server \\corpsvr02 add scope 192.168.1.0 255.255.255.0 MainScope PrimaryScope
- netsh dhcp server \\corpsvr02 scope 192.168.1.0 add iprange 192.168.1.1 192.168.1.254
- netsh dhcp server \\corpsvr02 scope 192.168.1.0 add excluderange 192.168.1.1 192.168.1.25
- netsh dhcp server \\corpsvr02 scope 192.168.1.0 set state 1
Если вы сохраните эти команды в сценарий, то сможете запустить его, как любой другой сценарий. Например, присвоив сценарию имя dhcpconfig.bat, просто введите dhcpconfig для запуска этого сценария.
При работе с удаленным компьютером сценарий можно поместить в общую сетевую папку, доступную с удаленного компьютера, а затем удаленно подключиться к этому компьютеру для запуска сценария. Или скопировать сценарий непосредственно на удаленный компьютер и, подключившись к нему, удаленно запустить сценарий. Годятся оба способа, но они требуют дополнительных усилий.
Есть более быстрый способ запустить сценарий на удаленном компьютере. Для этого вы должны немного изменить сценарий и использовать синтаксис:
- netsh -с Контекст -г УдаленныйКомпыотер -f Сценарий
Рекомендуем для просмотра:
- Задание WINS-сервера в командной оболочке — 06/11/2012 08:29
- Настройка DNS компьютера через командную строку — 06/11/2012 07:53
- TCP/IP — статические и динамические адреса — 06/11/2012 07:36
Похожие темы:
- NETSH — использование оболочки сетевых сервисов — 06/11/2012 07:19
- NBTSTAT — отображение статистики NetBios — 08/07/2010 03:50
- ROUTE — управление таблицей IP маршрутизации в Windows — 08/07/2010 03:48