Windows/Удалённое управление

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

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

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

Переименование удалённого ПК

Текущее имя ПК можно увидеть через запрос к значению в реестре:

Изменяем в реестре имя ПК на New-PC-Name:

reg add «HKLMSYSTEMCurrentControlSetControlComputerNameComputerName» /v ComputerName /t REG_SZ /d «New-PC-Name» /f

reg add «HKLMSYSTEMCurrentControlSetServicesTcpipParameters» /v ComputerName /t REG_SZ /d «New-PC-Name» /f

Для вступления в силу нового имени нужно перезагрузить компьютер:

Здесь мы дали пользователю 3 минуты (180 секунд) на закрытие документов, но можно этот параметр изменить в соответствии со случаем.

Примеры

В этой статье я написал Описание того, как работает PsExec и предоставляет советы по его использованию:

Следующая команда запускает интерактивную командную строку на \marklap :

Эта команда выполняет команду IpConfig в удаленной системе с /all параметром и отображает итоговый результат на локальном компьютере:

Эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме:

Укажите полный путь к программе, которая уже установлена в удаленной системе, если она не находится в системном пути:

Запустите программу regedit в интерактивном режиме в системной учетной записи, чтобы просмотреть содержимое ключей SAM и безопасности:

Чтобы запустить Internet Explorer с правами ограниченного доступа пользователя, используйте следующую команду:

Download

Загрузить PsTools(3,5 МБ)

PSTools

PsExec является частью растущего комплекта средств командной строки Sysinternals, помогающих в администрировании локальных и удаленных систем с именем PsTools.

CMD/BAT: удаленный запуск процессов, используем PsExec из PsTools

Работаем с утилитой PsExec из комплекта PsTools от Марка Руссиновича (Mark Russinovich).
http://technet.microsoft.com/en-us/sysi … 97553.aspx
PsExec — легкая замена telnet, которая позволяет вам выполнять процессы на других системах с полноценным функционалом консольных приложений, не имея необходимости вручную устанавливать клиентское программное обеспечение. Самое эффектное использование PsExec включает интерактивные приглашения ко вводу команды на отдаленных системах и отдаленный запуск таких инструментальных средств, как IpConfig. Обратите внимание: некоторые антивирусные сканеры сообщают, что один или больше файлов заражены вирусом «remote admin». Ни одна из утилит PsTools не содержит вирусов, но они использовались вирусами, что и является причиной, почему они вызывают вирусные уведомления.

Инсталляция: просто скопируйте psexec.exe туда, откуда его можно вызвать без точного указания пути, например, в C:WINDOWSsystem32. Команда «psexec» отобразит свой синтаксис использования.

Использование:
psexec \computer,computer2. | @file-u user -p psswd-n s-l-s|-e-x-i session-c -f|-v-w directory-d—a n,n. cmd arguments

computer
Указывает PsExec выполнить приложение на определенных компьютерах. Если вы опускаете имя компьютера, PsExec выполняет приложение на текущей системе. Если вы указывате имя «\*», PsExec выполняет приложение на всех компьютерах в текущем домене.

@file
Указывает PsExec выполнить команду на каждом компьютере, перечисленном в определенном текстовом файле.

-a
Процессоры, на которых может выполниться приложение. Перечисляются через запятую. 1 — первый центральный процессор. Например, чтобы выполнить приложение на центральном процессоре 2 и центральном процессоре 4, укажите: «-a 2,4».

-c
Скопировать указанную программу на отдаленную систему для выполнения. Если вы опускаете эту опцию, приложение должно быть «в путях» (path) отдаленной системы.

-d
Не ждать завершения приложения.

-e
Не загружать профиль указанной учетной записи.

-f
Скопировать указанную программу на отдаленную систему, даже если файл уже существует на отдаленной системе.

-i
Выполнить программу так, чтобы она взаимодействовала с рабочим столом указанного сеанса на отдаленной системе. Если никакой сеанс не определен, процесс работает в консольном сеансе.

-l
Выполнить процесс под ограниченным пользователем (игнорирует группу Administrators и разрешает только привилегии, назначенные группе Users). На Windows Vista процесс выполняется как Low Integrity.

-n
Определяет таймаут в секундах для соединения с отдаленными компьютерами.

-p
Определяет опциональный пароль пользователя. Если вы опустите это, будет запрошен ввод пароля.

-s
Выполнить удаленный процесс под системной учетной записью (System).

-u
Определяет опциональное имя пользователя для входа в систему на удаленном компьютере.

-v
Скопировать указанный файл, только если он имеет более высокий номер версии или более нов, чем расположенный на удаленной системе.

-w
Установить рабочий каталог процесса (относительно удаленного компьютера).

-x
Отобразить UI на рабочем столе Winlogon (только для местной системы).

-priority
Определяет -low, -belownormal, -abovenormal, -high или -realtime, чтобы выполнить процесс с различным приоритетом. Используйте -background, чтобы выполнить команду в «low memory» и «I/O priority» на Vista.

program
Имя программы для запуска.

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

Вы можете заключить приложения, в именах которых есть пробелы, в кавычки, например:
psexec \marklap «c:long nameapp.exe»
Ввод передаётся удаленной системе, когда Вы нажимаете клавишу ENTER, а Ctrl-C завершает удаленный процесс.

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

Вы можете использовать текущую версию PsExec как замену Runas, когда адресат — местная система, потому что PsExec не требует, чтобы вы были администратором.

Примеры

Следующая команда запускает интерактивную командную строку на компьютере \marklap:
psexec \marklap cmd

Эти команды выполняют IpConfig на удаленной системе с переключателем /all, и отображают получающийся вывод в местном контексте:
psexec \marklap ipconfig /all
psexec -u domainnameusername -p password \marklap ipconfig /all

Эта команда копирует программу test.exe на уаленную систему и выполняет её в интерактивном режиме:
psexec \marklap -c test.exe

Определите полный путь к программе, которая уже установлена на удаленной системе, если она находится не «в путях» системы:
psexec \marklap c:bintest.exe

Выполните Regedit в интерактивном режиме под системной учетной записью, чтобы просмотреть содержимое ключей SAM И SECURITY:
psexec -i -d -s c:windowsregedit.exe

Чтобы выполнить Internet Explorer с привилегиями ограниченного пользователя, используйте такую команду:
psexec -l -d «c:program filesinternet exploreriexplore.exe»

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

Работа c удаленными рабочими станциями из консоли.

Пожалуй одним из лучших иснструментов для работы с удаленными рабочими станциями являются утилиты Марка Руссиновича pstools.

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

Я думаю специалисты MS расписали данные утилиты более чем подробно, поэтому копипастом заниматься не буду, просто даю ссылки — тут и тут.

Заострим внимание на следущих моментах, для работы PSExec в windows 7 (для подключения к Windows 7) необходимо добавить ключ в реестр —

И второй вариант, это руссификация удаленной консоли, какого-то единого решения я не нашел, поэтому меняю шрифт в свойствах консоли на «Lucida Concole» и перед запуском psexec меняю кодировку на 1251 — chcp 1251. Теперь работа с удаленной консолью идет с поддержкой русского языка, но сообщения локальной консоли будут крякозябрами . для этого можно поиграться между chcp 1251 и chcp 866.

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

Pstools запуск 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) Если в удаленной системе такая программа уже установлена и находится не в системном каталоге, укажите полный путь к этой программе

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector