Выполнение команд на удаленном компьютере — задача довольно распространенная. Это может быть необходимо для изменения настроек системы, установки или удаления программ и много еще для чего. Для решения подобных задач есть довольно много различных инструментов, начиная с серьезных программных комплексов типа System Center Configuration Manager и заканчивая скромными утилитами командной строки . Об одной из таких утилит и пойдет речь в этой статье.
Утилита PsExec входит в состав пакета PsTools компании Sysinternals. Она позволяет выполнять команды на удаленных компьютерах и при этом не требует установки в систему. Для использования утилиты достаточно просто скопировать ее в папку с исполняемыми файлами (напр. C:Windowssystem32) и запустить из любой оболочки командной строки: Cmd или PowerShell.
Принцип работы программы состоит в следующем: в ресурсах исполняемого файла PsExec.exe находится еще один исполняемый файл – PSEXESVC, который является службой Windows. Перед выполнением команды PsExec распаковывает этот ресурс в скрытую административную папку удалённого компьютера Admin$ (C:Windows), в файл c:windowssystem32psexesvc.exe.
How to install psexec
Если вы с помощью ключа -c указали программе, что необходимо скопировать исполняемые файлы на эту систему, они тоже скопируются в эту папку.
После завершения копирования PsExec устанавливает и запускает службу, используя API функции Windows для управления службами. Затем, после запуска PSEXESVC между ним и PsExec устанавливается соединение для передачи данных (ввода команд и получения результатов). По завершению работы PsExec останавливает службу и удаляет её с целевого компьютера.
Синтаксис PsExec выглядит следующим образом:
psexec \компьютер [-u пользователь [-p пароль]] программа [аргументы]
psexec \компьютер [-u пользователь [-p пароль]] программа [аргументы]
Имя пользователя и пароль можно и не задавать, тогда удаленный процесс запускается из под той же учетной записи, что и программа PsExec.
Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если же задать имя пользователя, то удаленный процесс запустится из под указанной учетной записи и получит доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Однако имейте ввиду, что пароль передается в удаленную систему открытым текстом.
В качестве примера очистим кэш dns на удаленном компьютере SRV1:
psexec \SRV1 ipconfig /flushdns
psexec \SRV1 ipconfig /flushdns
Команда будет запущена на компьютере SRV1 под вашими учетными данными. После завершения работы ipconfig весь текстовый вывод будет передан на ваш компьютер, а кроме того будет возвращён код выполнения команды (error code). В случае если команда выполнилась успешно, он будет равен 0.
Если нужно выполнить несколько команд, то лучше установить с удаленным компьютером интерактивный сеанс. Для этого вводим команду psexec \SRV1 cmd . Теперь команды, вводимые на локальном компьютере будут выполняться на удаленном компьютере SRV1
PsExec Tutorial: How to Run Commands on Remote Computers
И еще один интересный способ использования утилиты PsExec. Если не указывать имя компьютера, то по умолчанию команда выполняется в локальной системе. Используя ключ -s можно запускать программы под учетной записью системы. Например, запустим сеанс командной строки: psexec -s cmd и затем командой whoami проверим, под каким пользователем мы сейчас работаем
Эта возможность может пригодиться для отладки программ или доступа к скрытым разделам реестра SAM и SECURITY.
Ну и несколько слов о ключах программы. Все описывать не буду, расскажу о наиболее интересных:
-c
Указанная программа копируется в удаленную систему для выполнения. Например:
psexec \SRV1 -c test.exe
Если этот параметр не задан, то приложение должно находиться в системной папке удаленного компьютера. Если же на удаленном компьютере такая программа уже есть и находится не в системном каталоге, то необходимо указать к ней полный путь (если имя программы содержит пробелы, то его необходимо поместить в кавычки):
psexec \SRV1 «c:program filestest.exe»
Если вместе с ключом -c использовать ключ -f то даже если программа уже есть в удаленной системе, она будет перезаписана. А с ключом -v она перезапишется только в том случае, если копируемая версия программы более новая чем та, что установлена в системе.
-i
Работа программы в интерактивном режиме. По умолчанию PsExec выполняет команды в скрытом режиме, то есть на системе где выполняется команда, не выводятся никакие окна или диалоги. Однако есть возможность изменить это с помощью ключа -i . После него можно указать номер сессии, в которой выводить окна, а можно и не указывать, тогда интерфейс будет отображен в консольной сессии.
-d
Указывает, что не нужно ждать завершения приложения. В этом случае мы не получим выходных данных от консольной утилиты, но зато сможем не дожидаясь завершения предыдущей команды запускать следующие. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-h
Используется для запуска программы в режиме повышения полномочий. Может потребоваться в операционных системах Windows Vista и выше для запуска некоторых программ, вносящих изменения в настройки системы (например regedit)
-l
А с помощью этого ключа можно наоборот понизить полномочия. При запуске процесса пользователю вне зависимости от его принадлежности к группе администраторов предоставляются ограниченные права (права группы «администраторы» отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»).
Полную справочную информацию о всех ключах программы можно получить, просто введя команду psexec в командной строке без параметров.
Источник: sc-blog.ru
#Автоматизация #Технологии #Процессы #ИТ #Записки #Журнал #Блог #Форум
PSTools — PSTools.jpg (11.13 КБ) 4423 просмотра
PSTools2
Наборы ресурсов Windows NT и Windows 2000 поставляются с рядом инструментов командной строки, которые помогут вам управлять системами Windows NT / 2K. Со временем у меня выросла коллекция подобных инструментов, в том числе некоторые из них не включены в наборы ресурсов. Эти инструменты отличаются тем, что все они позволяют управлять удаленными системами, а также локальными. Первым инструментом в наборе был PsList, инструмент, который позволяет просматривать подробную информацию о процессах, и набор постоянно растет. Префикс » Ps «В PsList связан с тем, что стандартный инструмент командной строки Unix process listing называется» ps», поэтому я принял этот префикс для всех инструментов, чтобы связать их вместе в набор инструментов с именем PsTools.
Все утилиты в pstools suite работают на Windows NT, Windows 2000, Windows XP и Server 2003, и ни одна из них не требует специальной установки. Вам даже не нужно устанавливать какое-либо клиентское программное обеспечение на удаленные компьютеры, на которые вы их нацеливаете. Запустите их, введя их имя и любые параметры командной строки, которые вы хотите. Чтобы показать полную информацию об использовании, укажите «-?» опция командной строки.
В комплект PsTools входят следующие инструменты:
PsExec-выполнять процессы удаленно
PsFile-показывает файлы, открытые удаленно
PsGetSid-отображение SID компьютера или пользователя
PsInfo-список сведений о системе
PsKill-убить процессы по имени или идентификатору процесса
PsList-список подробной информации о процессах
PsLoggedOn-смотрите, кто вошел в систему локально и через общий доступ к ресурсам
PsLogList-дамп записей журнала событий
PsPasswd-изменяет пароли учетных записей
PsPing-тест производительности сети
PsService-просмотр и контроль услуг
PsShutdown-выключение и при необходимости перезагрузка компьютера
PsSuspend-приостановка и возобновление процессов
Об PsExec -выполнять процессы удаленно
PsExec — выполнять процессы удаленно
Утилиты, такие как Telnet и программы удаленного управления, такие как Symantec PC Anywhere, позволяют выполнять программы на удаленных системах, но они могут быть болезненными для настройки и требовать установки клиентского программного обеспечения на удаленных системах, к которым вы хотите получить доступ. PsExec-это легкая замена telnet, которая позволяет выполнять процессы на других системах, в комплекте с полной интерактивностью для консольных приложений, без необходимости вручную устанавливать клиентское программное обеспечение. Наиболее мощные функции Psexec включают запуск интерактивных команд-подсказок на удаленных системах и средств удаленного включения, таких как IpConfig, которые в противном случае не имеют возможности отображать информацию об удаленных системах.
Установка
Скопируйте PsExec в исполняемый файл (в папки которые уже внесены в переменную например Windows или же укажите новую переменную где находится PsExec.exe либо же при выполнении команды перейти в папку с програмником. При вводе «psexec» отображается синтаксис его использования.
computer -Сетевое Имя Компьютера или IP адрес удаленного ПК
Направьте PsExec для запуска приложения на указанном компьютере или компьютерах. Если опустить имя компьютера, PsExec запускает приложение в локальной системе, а если ввести имя компьютера\*, то PsExec выполняет команды на всех компьютерах в текущем домене.
-u — Задает необязательное имя пользователя для входа на удаленный компьютер.
-p — Задает необязательный пароль для имени пользователя. Если вы не сделаете этого, вам будет предложено ввести скрытый пароль.
-s — Запустите удаленный процесс в системной учетной записи.
-e — Загружает профиль указанного аккаунта.
-i — Запустите программу так, чтобы она взаимодействовала с рабочим столом указанного сеанса на удаленной системе. Если сеанс код пользователя текущего не указан, процесс запускается в сеансе консоли.
-l — Запуск процесса от имени ограниченного пользователя (удаляет группу администраторов и разрешает только привилегии, назначенные группе пользователей). В Windows Vista процесс выполняется с низкой степенью целостности.
-c — Скопируйте указанную программу в удаленную систему для выполнения. Если этот параметр опущен, то приложение должно находиться в пути к удаленной системе.
-n — Задает время ожидания в секундах при подключении к удаленным компьютерам.
-f — Принудительно скопировать указанную программу, если она уже существует в удаленной системе.
-v — Скопируйте указанный файл только в том случае, если он имеет более высокий номер версии или более новый, чем на удаленной системе.
-d — Не ждите окончания подачи заявки. Используйте этот параметр только для неинтерактивных приложений.
-w — Установите рабочий каталог процесса (относительно удаленного компьютера).
-x — Отображение пользовательского интерфейса на рабочем столе Winlogon.
-priority — Задает -low, -belownormal, -abovenormal, -high или -realtime для запуска процесса с другим приоритетом.
-a — Отдельные процессоры, на которых приложение может работать с запятыми, где 1-наименьший нумерованный процессор. Например, чтобы запустить приложение на CPU 2 и CPU 4, Введите: «- a 2,4»
arguments — Аргументы для передачи (обратите внимание, что пути к файлам должны быть абсолютными путями в целевой системе)
-h — работает с повышенным токеном
-s — работает на удаленной системе как Системный акт Локальный пользователь
Приложения, в названии которых есть пробелы, можно заключить в кавычки, например «psexec \marklap «c:long nameapp.exe».
Поместите аргументы, направленные на приложение, за скобки. Ввод передается в удаленную систему только при нажатии клавиши enter, а нажатие клавиши Ctrl-C завершает удаленный процесс.
Если вы опустите имя пользователя, удаленный процесс запустится в той же учетной записи, из которой вы выполняете PsExec, но поскольку удаленный процесс олицетворяет себя, он не будет иметь доступа к сетевым ресурсам в удаленной системе. При указании имени пользователя удаленный процесс выполняется в указанной учетной записи и будет иметь доступ к любым сетевым ресурсам, к которым эта учетная запись имеет доступ. Обратите внимание, что пароль передается в виде открытого текста на удаленную систему.
Следующая команда запускает интерактивную командную строку в \marklap:
psexec \marklap cmd
Эта команда выполняет IpConfig на удаленной системе с помощью переключателя /all и отображает результирующий вывод локально:
psexec \marklap ipconfig /all
Эта команда копирует тест программы.exe в удаленную систему и выполняет его в интерактивном режиме:
psexec \marklap -c test.exe
Укажите полный путь к программе, которая уже установлена на удаленной системе, если она не находится в пути системы:
psexec \marklap c:bintest.exe
Проверка утилиты заходим в cmd переходим в папку PSTools
psexec \компьютер [-u пользователь [-p пароль]] программа [аргументы]
C:PSTools>psexec \ip -u логин -p пароль
psexec.exe -p ****** -u CompNameАдминистратор \CompName cmd.exe
Пример
psexec -u Администратор -p пароль \192.168.523.56 -i notepad.exe
-i calc — калькулятор
notepad.exe — Блокнот
cmd — Командная строка
Проверка есть ли доступ удаленного пользователя к папке Windows
net use \192.168.523.56admin$ /user:Пользователь учетка
net use \CompNameadmin$ password /user:CompNameАдминистратор
net use \[MachineName] /user:[domain][user]
Проверка со стороны куда подключаемся
net share admin$
Пример от Администратора
C:Windowssystem32>net share admin$
Имя общего ресурса ADMIN$
Путь C:Windows
Заметки Удаленный Admin
Макс. число пользователей Не ограничен
Пользователи
Кэширование Документы кэшируются вручную
Разрешение Все, FULL
Команда выполнена успешно.
C:Windowssystem32>net share
Общее имя Ресурс Заметки
——————————————————————————
C$ C: Стандартный общий ресурс
D$ D: Стандартный общий ресурс
IPC$ Удаленный IPC
ADMIN$ C:Windows Удаленный Admin
OCS-SHARE D:OCS-SHARE
Команда выполнена успешно.
Пример от пользователя
C:Users14-1>net share admin$
Имя общего ресурса ADMIN$
Путь C:Windows
Заметки Удаленный Admin
Макс. число пользователей Не ограничен
Системная ошибка 5.
Отказано в доступе.
Проверка привилегий пользователя
whoami /priv
Имя привилегии Описание Область, край
=============================== =========================================== =============
SeIncreaseQuotaPrivilege Настройка квот памяти для процесса Отключен
SeSecurityPrivilege Управление аудитом и журналом безопасности Отключен
SeTakeOwnershipPrivilege Смена владельцев файлов и других объектов Отключен
SeLoadDriverPrivilege Загрузка и выгрузка драйверов устройств Отключен
SeSystemProfilePrivilege Профилирование производительности системы Отключен
SeSystemtimePrivilege Изменение системного времени Отключен
SeProfileSingleProcessPrivilege Профилирование одного процесса Отключен
SeIncreaseBasePriorityPrivilege Увеличение приоритета выполнения Отключен
SeCreatePagefilePrivilege Создание файла подкачки Отключен
SeBackupPrivilege Архивация файлов и каталогов Отключен
SeRestorePrivilege Восстановление файлов и каталогов Отключен
SeShutdownPrivilege Завершение работы системы Отключен
SeDebugPrivilege Отладка программ Отключен
SeSystemEnvironmentPrivilege Изменение параметров среды изготовителя Отключен
SeChangeNotifyPrivilege Обход перекрестной проверки включен
SeRemoteShutdownPrivilege Принудительное удаленное завершение работы Отключен
SeUndockPrivilege Отключение компьютера от стыковочного узла Отключен
SeManageVolumePrivilege Выполнение задач по обслуживанию томов Отключен
SeImpersonatePrivilege Имитация клиента после проверки подлинности включен
SeCreateGlobalPrivilege Создание глобальных объектов включен
SeIncreaseWorkingSetPrivilege Увеличение рабочего набора процесса Отключен
SeTimeZonePrivilege Изменение часового пояса Отключен
SeCreateSymbolicLinkPrivilege Создание символических ссылок Отключен
Сама утилита не требует установки в систему, скопировать ее в ту же папку, где находятся исполняемые файлы (например, C:Windows).
Также должны работать службы «Сервер» и «Рабочая станция», и должен быть доступен общий ресурс Admin$.
После этого запуск можно осуществить из cmd или powershell.
утилита сама копируется на удаленный компьютер, распаковывает службу, которая называется PSEXESVC в системную папку system32 или Windows в файл psexesvc.exe, который находится в скрытой папке Admin$ (C:Windows) на целевой системе. Когда копирование и установка службы завершается, происходит установка связи между утилитой и установленной службой для ввода и выполнения команд и получения результатов. При завершении работы утилита останавливает и удаляет службу с целевой системы.
Как разрешить подключение с пустым паролем
Пуск, выберите пункт Выполнить, введите команду gpedit.msc OK редактор объектов групповой политики.
Откройте раздел Конфигурация компьютераКонфигурация WindowsПараметры безопасностиЛокальные политикиПараметры безопасностиУчетные записи
Дважды щелкните элемент Limit local account use of blank passwords to consol logon only.(:ограничить использования пустых паролей только для консолей входа)
Выберите отключен и нажмите кнопку OK.
Примечание. По умолчанию данная политика включена.
Тесты с 10 на 7 работает , а с 7 на 10 от админа не стартует служба
Возможно связано с антивирусным ПО или Политикой безопастности
Для того, чтобы вводить команды для работы PsExec в Windows 7 нужно добавить в реестр ключ reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciessystem /v
LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f, иначе вы увидите ошибку «PsExec отказано в доступе: could not start».
Разумеется, что утилита принимает разный вид в зависимости от выполняемой задачи. В данной статье рассмотрены только самые простые случаи. В том случае, если требуется вызвать полную информацию обо всех ключах, то можно выполнить команду psexec.
Командная строка запущенная от имени пользователя с правами Администратора
C:PSTools>net use \192.168.563.95admin$ /user:Администратор
Системная ошибка 1219.
Множественное подключение к серверу или к общим ресурсам одним пользователем с использованием более одного имени пользователя не разрешено.
Отключите все предыдущие подключения к серверу или общим ресурсам и повторите попытку.
C:PSTools>psexec64 -u Администратор -p asdzxc \192.168.563.95 -i calc — Будет в диспетчере быстрее всего процесс если все хорошо
C:PSTools>psexec64 -u Администратор -p asdzxc \192.168.563.95 -i 2 calc — с указание кода сеанса пользователя 2 должен уже выйти на рабочий стол визуально
PsExec v2.2 — Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals — www.sysinternals.com
Couldn’t access 192.168.563.95:
╬Єърчрэю т фюёЄєях. Отказано в доступе.
Командная строка запущенная от Имени администратора
C:PSTools>net use \192.168.563.95admin$ /user:Администратор
Локальное имя
Удаленное имя \192.168.563.95admin$
Тип ресурса Диск
Состояние OK
Открыто 0
Подключено 1
Команда выполнена успешно.
C:PSTools>psexec -u Администратор -p asdzxc \192.168.563.95 -i notepad.exe
PsExec v2.2 — Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals — www.sysinternals.com
Could not start PSEXESVC service on 192.168.563.95: Не удалось запустить службу PSEXESVC на
╬Єърчрэю т фюёЄєях. Отказано в доступе.
Rinstall — является удобной графической оболочкой для утилиты psexec
Подробнее о Rinstall
Rinstall.png
Источник: diyit.ru
Soft, интернет, безопасность: новости, статьи, советы, работа
В 10-х годах я принимал участие в программе Европейского Союза Tempus «Освітні вимірювання, адаптовані до стандартів ЄС». В рамк.
Благодаря Интернету количество писателей и поэтов увеличивается в геометрической прогрессии. Поголовье читателей начинает заметно отставать.
суббота, 7 октября 2017 г.
PsExec: обзор утилиты для удаленного выполнения команд / Программное обеспечение. Система
Зачастую в операционной системе приходится выполнять команды в cmd для выполнения определенных действий. Но как быть, если компьютер, на котором требуется выполнить набор действий, является удаленным? На такой случай существует довольно обширный набор утилит, одну из которых мы рассмотри в данной статье. PsExec — утилита, которая обеспечивает доступ к командной строке на удаленном компьютере Windows.
Как пользоваться PsExec exe Windows 10
Сама утилита не требует установки в систему, необходимо всего лишь скопировать ее в ту же папку, где находятся исполняемые файлы (например, C:Windows). Также должны работать службы «Сервер» и «Рабочая станция», и должен быть доступен общий ресурс Admin$. После этого запуск можно осуществить из cmd или powershell.
Принцип выглядит так: перед тем, как начать исполнение команды утилита распаковывает службу, которая называется psexesvc в системную папку system32 в файл psexesvc.exe, который находится в скрытой папке Admin$ (C:Windows) на целевой системе. Когда копирование и установка службы завершается, происходит установка связи между утилитой и установленной службой для ввода и выполнения команд и получения результатов. При завершении работы утилита останавливает и удаляет службу с целевой системы.
Общий синтаксис выглядит следующим образом:
Давайте вкратце рассмотрим некоторые из ключей, которые могут использоваться утилитой psexec:
Например, трассировка маршрута до узла www.microsoft.com на удаленном компьютере pc1 будет выглядеть следующим образом:
psexec \pc1 tracert microsoft.com
Случай, когда необходимо выполнить одновременное выключение компьютеров pc1 и pc2:
psexec pc1, pc2 shutdown –f –r –t 0
Имена компьютеров могут также быть перечислены в списке в текстовом файле, например, pcs_list.txt. Тогда команда принимает вид:
Для того, чтобы вводить команды для работы PsExec в Windows 7 нужно добавить в реестр ключ reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciessystem /v
LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f, иначе вы увидите ошибку «PsExec отказано в доступе: could not start».
Разумеется, что утилита принимает разный вид в зависимости от выполняемой задачи. В данной статье рассмотрены только самые простые случаи. В том случае, если требуется вызвать полную информацию обо всех ключах, то можно выполнить команду psexec.
Источник: fetisovvs.blogspot.com