Как запустить службу на удаленном компьютере
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.
Закрыт 7 лет назад .
Иногда во время отладки мне нужно перезапустить службу на удаленном компьютере. В настоящее время я делаю это через удаленный рабочий стол. Как это можно сделать из командной строки на моем локальном компьютере?
Вы можете использовать консоль служб, щелкнув слева и выбрав опцию «Подключиться к другому компьютеру» в меню «Действие».
Если вы хотите использовать только командную строку, вы можете использовать
Отлично работает с cmd.exe. Не работает в PowerShell, вероятно, из-за ошибки \\, следует: Set-Content: не удается найти параметр, который соответствует имени параметра '[имя службы]'. Единственный незначительный недостаток в том, что он возвращает вас в командную строку до завершения операции. На Powershell вам нужно использовать sc.exe \\machine stop <service> . В противном случае, я думаю, sc относится к другой команде. Какой минимальный набор разрешений требуется пользователю для запуска конкретной удаленной службы на удаленном компьютере? +1 это работает без проблем в PowerShell, в отличие от таких вещей, как Invoke-Command \\ remote_machineВы можете использовать mmc:
- Пуск / Выполнить. Наберите "mmc".
- Файл / Добавить / Удалить оснастку . Нажмите "Добавить . "
- Найдите «Услуги» и нажмите «Добавить».
- Выберите «Другой компьютер:» и введите имя хоста / IP-адрес удаленного компьютера. Нажмите Finish, Close и т. Д.
После этого вы сможете управлять службами, как если бы они находились на вашем локальном компьютере.
Какие порты мне нужно разблокировать на моем сервере? Это золото. Я всегда обращался к серверам удаленно для обработки услуг. Теперь у меня может быть список разных серверов в одной консоли.Вы можете использовать команду System Internals PSEXEC для удаленного выполнения net stop yourservice , а затем net start yourservice
PSService тоже полезен. В этих инструментах много силы.Используя командную строку, вы можете сделать это:
Предлагаю вам взглянуть на RSHD
За клиентом возиться не нужно, в Windows он есть по умолчанию.
Что ж, если у вас есть Visual Studio (я знаю, что это в 2005 году, хотя не уверен в более ранних версиях), вы можете добавить удаленный компьютер в свой тег «Server Explorer». На этом этапе у вас будет доступ к СЛУЖБАМ, которые запущены или могут быть запущены с этой машины (а также журналам событий, очередям и парочке других интересных вещей).
Как ни странно, это работает в VS2005, но НЕ в VS2008. Вы по-прежнему можете ПРОСМОТРЕТЬ службы, но больше не можете запускать или останавливать их напрямую. Вместо этого вы можете щелкнуть правой кнопкой мыши узел Services и запустить Service Manager для этого хоста.Один из способов - включить telnet-сервер на машине, на которой вы хотите управлять службами (добавить / удалить компоненты Windows).
Откройте приглашение DOS
Введите telnet yourmachineip / name
Войдите в систему,
введите net start и serviceName * например, w3svc
Это запустит IIS, или вы можете использовать net stop, чтобы остановить службу.
В зависимости от вашей настройки вам нужно рассмотреть способ защиты telnet-соединения, поскольку я считаю его незашифрованным.
Здесь несколько хороших решений. Если вы все еще используете Windows 2000 и не можете ничего установить на удаленный компьютер, это тоже работает:
Откройте Консоль управления компьютером (щелкните правой кнопкой мыши «Мой компьютер», выберите «Управление»; откройте из «Администрирование» в меню «Пуск»; или откройте из MMC с помощью оснастки).
Щелкните правой кнопкой мыши имя своего компьютера и выберите «Подключиться к удаленному компьютеру».
Введите имя компьютера и учетные данные, и у вас будет полный доступ ко многим функциям администратора, включая панель управления службами.
В наше время даже для собак придумали удаленное управление.
Возвращаясь к циклу «Конспект Админа», мне хотелось бы рассказать о вариантах запуска исполняемых программ на удаленных компьютерах. Эта статья будет интересна тем, у кого еще нет систем централизованного управления, но уже есть понимание утомительности ручного обхода рабочих станций и серверов. Либо тем, кому решения «под ключ» не интересны ввиду неспортивности.
В качестве того, зачем нужен такой запуск программ, можно привести недавнюю истерию с Петей\Не-Петей, когда все бросились проверять\отключать SMBv1 и загружать обновления. Да и провести инвентаризацию или установить срочный патч таким методом тоже можно.
Когда-то давно я устроился работать в организацию в период эпидемии Kido\Conficker. Наиболее простым способом выяснить, все ли хорошо в ИС компании, была славная утилита от Касперского под названием Kido Killer, которая проверяла наличие вируса и устраняла его. Запускать программу на доброй сотне машин руками было невесело, поэтому пришлось знакомиться с автоматизацией.
Если в операционных системах *nix для удаленного запуска, как правило, используется SSH, то у Windows способов запуска программ и скриптов воистину как песка в пустыне. Я разберу основные варианты, как общеизвестные, так и экзотические. Таких очевидных вещей как telnet-сервер касаться не буду, тем более Microsoft уже убрала его из современных ОС.
Psexec
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \\*. В файле \\server\share\log.txt будут появляться имена рабочих станций или серверов без обновления. Если в домене существуют компьютеры с *nix на борту или нет доступа к административному сетевому ресурсу Admin$ ― команда на этой машине не выполнится, но обработка продолжится. Чтобы скрипт не зависал при каждой попытке подключения, можно задать тайм-аут с помощью ключа -n.
Если компьютер выключен ― мы об этом не узнаем. Поэтому лучше предварительно проверять доступность машин или собирать в файле информацию об успешном или неудачном выполнении.
К минусам Psexec можно отнести то, что она из-за своего удобства и популярности часто используется вирусописателями. Поэтому антивирусные системы могут обнаруживать утилиту как опасность вида remote admin.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего Psexec. При необходимости логин и пароль можно задать явно или же использовать аккаунт SYSTEM.
Для управления системами Windows с помощью разных графических утилит часто используется WMI (Windows Management Instrumentation) ― реализация объектно-ориентированного стандарта управления WBEM. В качестве утилиты с графическим интерфейсом для работы с WMI можно использовать wbemtest.exe.
Для работы с WMI из консоли создана wmic.exe. Например, для проверки установленных обновлений вместо жутковатой конструкции из предыдущего примера можно использовать простую команду:
Использовать список компьютеров также можно командой /node:"@computers.txt".
Еще при помощи WMI можно запускать программы – синтаксис предельно прост:
К сожалению, в отличие от Psexec, получить вывод в консоли не получится ― придется выводить результаты команды в файл.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего wmic. При необходимости логин и пароль можно задать явно.
Групповые политики и скрипты
Если предыдущие варианты не требовали доменной среды, то в этом случае потребуется домен. Поддерживаются скрипты при входе и выходе пользователя из системы, а также при ее включении и выключении. Поскольку каждый администратор Windows сталкивался с ними, я не буду подробно расписывать как ими пользоваться ― лишь напомню, где их искать.
Скрипты, выполняющиеся при старте и завершении системы.
Скрипты, выполняющиеся при входе и выходе пользователя из системы.
Скрипты, настраиваемые в пользовательском разделе, выполняются от имени пользователя, а в разделе компьютера ― под аккаунтом SYSTEM.
Назначенные задания
Довольно интересный способ, заслуживающий право на жизнь. Назначенные задания можно создавать из командной строки при помощи утилиты schtasks.exe, выполнять их, затем удалять. Подробнее с синтаксисом можно ознакомиться в документации, я же разберу пример использования назначенных заданий в доменной среде. Предположим, нам нужно выполнить команду как можно быстрее вне зависимости от того, выключен компьютер или нет. Для этого используются так называемые предпочтения групповых политик (Group Policy Preference).
Искать установку назначенных заданий следует в конфигурации компьютера или пользователя ― «Настройка ― Параметры панели управления ― Назначенные задания».
Создание нового назначенного задания.
Для выполнения команды или скрипта ASAP понадобится создать «Немедленную задачу (Windows 7 и выше)». Если вдруг в инфраструктуре остались машины под управлением Windows XP, то подойдет «Очередное задание (Windows XP)».
Стоит сделать несколько политик с соответствующими WMI-фильтрами или создать два разных назначенных задания в одной политике с нацеливанием ― например, при помощи того же WMI-фильтра. Это поможет избежать конфликтов в разнородной среде со старыми и новыми Windows.
Пример WMI-фильтра для применения политики только на компьютерах с Windows XP:
В остальном процедура создания назначенного задания тривиальна. Единственное, не забывайте отметить пункт «Применить один раз и не применять повторно», если задача не требует повторного запуска.
Запускаем немедленную задачу только один раз.
При использовании таких назначенных заданий программа запустится, как только компьютер получит обновление групповой политики. Это удобно: не нужно проверять доступность компьютеров в случае Psexec и wmic и заставлять пользователей перезагружать машины, как в случае скриптов групповых политик. При необходимости можно скопировать файл скрипта локально в разделе «Настройка ― Конфигурация Windows ― Файлы».
Назначенные задания позволяют явно задать имя пользователя для запуска программы, в том числе и для SYSTEM.
Через реестр
Модификация реестра на пользовательских машинах ― странный вариант, лишь на случай крайней необходимости. Можно использовать ветки Run или RunOnce. Подробнее о них ― в документации. Сама модификация реестра может проводиться через групповые политики или из командной строки ― например, такой командой:
В зависимости от ветки реестра, процесс будет выполняться или под пользователем, выполнившим вход в систему, или под аккаунтом SYSTEM.
Есть и другие способы, такие как правка ярлыков в папке «Автозагрузка» или добавление в ярлык к популярной программе && script.cmd, но эти методы уже из серии «можно, но не нужно».
Теперь перейдем к новым инструментам.
PowerShell, оправдывая свое название, может подключаться к удаленным компьютерам при помощи WMI, RPC и WS-Management (WSMan). Использование последнего метода требует предварительной настройки.
Командлеты, не требующие предварительной настройки, как правило, имеют параметр ComputerName, но не имеют параметра Session. Посмотреть список таких командлетов можно командой:
Для настройки WSMan в общем случае достаточно выполнить команду Enable-PSRemoting-Force. Она запустит службу удаленного управления WinRM и пропишет исключения в фаерволе ― в принципе, это можно сделать для всего домена при помощи групповых политик. Подробнее настройка описана в документации.
После того как все компьютеры будут готовы принимать запросы, мы сможем подключаться при помощи соответствующих командлетов PowerShell. Для проверки возможности подключения используется командлет Test-WSMan.
Проверка возможности подключения.
Для того чтобы выполнить определенную команду или скрипт, используется командлет Invoke-Command со следующим синтаксисом:
Где COMPUTER ― имя компьютера, COMMAND ―– имя команды, а USERNAME ― имя пользователя, если оно нужно.
Смотрим содержимое диска С удаленного компьютера.
Если же нам нужно получить полноценную консоль ― не автоматизации ради, а ради управления конкретным компьютером, ― то можно использовать командлет Enter-PSSession.
Работаем в консоли удаленного компьютера.
Напомню, что с помощью JEA можно ограничить доступные подобной сессии командлеты или дать доступ нужным без прав администратора.
Конечно, кроме встроенных средств и небольших утилит, существует множество программ для управления структурой. Помимо взрослых решений, для управления конфигурациями вроде Chef, Ansible и MS SCCM можно использовать и средства мониторинга вроде Zabbix, и даже консоль управления антивирусом Касперского.
В период гетерогенных структур хорошо бы иметь возможность унифицированного управления Windows и Linux. Это можно сделать и с помощью PowerShell, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?
Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.
Этичный хакинг и тестирование на проникновение, информационная безопасность
Операционная система Windows предоставляет различные способы управления удалёнными системами. Telnet, RDP, VNC — это только некоторые из них. Но эти варианты обычно связаны с графическим интерфейсом пользователя. Если мы предпочитаем интерфейс командной строки, есть альтернатива под названием PsExec.
PsExec — это портативный инструмент от Microsoft, который позволяет удалённо запускать процессы с использованием учётных данных любого пользователя. Это немного похоже на программу удалённого доступа, но вместо того, чтобы управлять удаленным компьютером с помощью мыши, команды отправляются на компьютер через командную строку.
Примечание: некоторые антивирусные сканеры сообщают, что один или несколько инструментов заражены вирусом «remote admin» («удалённый администратор»). Ни один файл из пакета PsTools не содержит вирусов, но они использовались вирусами, поэтому они вызывают уведомления о нежелательном ПО.
Вы можете использовать PsExec не только для управления процессами на удалённом компьютере, но и для перенаправления вывода консоли приложения на локальный компьютер, создавая впечатление, будто процесс выполняется локально.
Что такое PsExec и PsTools
На самом деле, PsExec это всего лишь один из инструментов из пакета PsTools. Программа PsExec используется чаще всего, поэтому обычно упоминается она, но в данной инструкции будут рассмотрены как примеры использования PsExec, так и примеры использования других инструментов из пакета PsTools.
Поскольку все утилиты имеют интерфейс командной строки, то если вы совсем не ориентируетесь в командной строке Windows (например, даже не знаете, как её открыть), то вначале ознакомьтесь со статьёй «Настройка рабочего окружения PowerShell в Windows и Linux».
Распакуйте скаченный архив, например, в папку PSTools.
Программа PsExec не требует установки. Но для запуска исполнимых файлов в командной строке нужно указать путь до них в файловой системе. Это можно сделать двумя способами:
1. Перед запуском программ перейти в папку со скаченными исполнимыми файлами, например, у меня это папка C:\Users\MiAl\Downloads\PSTools\, тогда, используя команду cd, в папку с файлами я перехожу следующим образом:
2. Скопировать папку PSTools в директорию C:\Windows\System32\ тогда все файлы PSTools будут доступны следующим образом:
Выберите любой вариант, который вам удобнее.
Что нужно для PsExec
Для работы PsExec на удалённом компьютере не требуется никакого программного обеспечения — то есть на компьютере, которым вы будете управлять, не нужно устанавливать никакую клиентскую часть. Но нужно соблюдение некоторых условий, чтобы PsExec работала, поэтому если первая попытка не удалась, то проверьте следующие требования.
1. На обеих машинах, т.е. удалённом компьютере (которым будем управлять) и локальном компьютере (с которого будем управлять), должен быть включён общий доступ к файлам и принтерам. Для их включения смотрите статью «SMB: настройка общей сетевой папки в Windows».
2. В современных Windows 10 у меня PsExec работала только с учётной записью «Администратор», видимой по той причине, что необходимы административные общие ресурсы (подробнее о них смотрите в статье «Как включить административные общие ресурсы в ОС Windows 10, 8 или 7 (C$, D$, $admin и другие)»).
На серверах Windows учётная запись «Администратор» включена по умолчанию.
В более старых версиях Windows, видимо, достаточно включения общего сетевого ресурса $admin для предоставления доступа к папке \Windows\. В Windows 10 папки $admin как сетевого ресурса нет вовсе.
3. Проверьте, что сетевой доступ к файлам и принтерам включён в файерволе. Для этого нажмите Win+r, введите там firewall.cpl.
Во вкладке «Разрешение взаимодействия с приложениями или компонентами в брандауэре защитника Windows»
найдите «Общий доступ к файлам и принтерам» и убедитесь, что стоит галочка в столбце «Частная» - если его там нет, то нажмите кнопку «Изменить параметры», поставьте галочку и нажмите ОК.
4. Убедитесь, что оба компьютера принадлежат к одной и той же рабочей группе (Workgroup).
5. Убедитесь, что вы правильно вводите пароль администратора удалённого компьютера.
Как включить учётную запись администратора
В моих тестах на последних Windows 10 и Windows Server 2019 команда PsExec работает только с учётной записью Администратор. Поэтому в этом разделе описано, как активировать пользователя Администратор, который по умолчанию присутствует в Windows, но в обычных, не серверных версиях, этот пользователь отключён.
Пользователя Администратор должен быть активен только на удалённом компьютере, где будут выполняться команды с помощью PsExec. На локальном компьютере учётная запись Администратор не требуется.
1. Нажмите клавиши Win+r, чтобы открыть окно запуска команды.
2. Введите lusrmgr.msc и нажмите Enter.
3. Откройте Пользователи.
4. Щёлкните правой кнопкой мыши Администратор и выберите Свойства.
5. Снимите флажок «Отключить учётную запись» и нажмите ОК.
6. Снова щёлкните правой кнопкой мыши учётную запись администратора и выберите «Задать пароль».
7. Укажите пароль для учётной записи администратора и нажмите «ОК».
Как запустить команду на удалённой системе
Основное использование команды PsExec — это просто запуск команды в удалённой системе. Чтобы запустить команду в удалённой системе, мы должны указать имя пользователя и пароль вместе с командой для запуска на удалённом компьютере.
Общий вид команды для запуска на удалённой системе:
- \\КОМПЬЮТЕР — имя компьютера Windows или его IP адрес в локальной сети
- -u Администратор — если операционная система на ином языке, то имя пользователя также будет другим, например, на английском это Administrator
- -p ПАРОЛЬ — пароль пользователя Администратор. Эту опцию можно пропустить, тогда команда запросит пароль для ввода
- КОМАНДА — программа, которую нужно выполнить на удалённой системе. После команды могут идти её опции.
Пример выполнения команды ipconfig на удалённом компьютере \\hackware-server от имени пользователя Администратор с паролем Aa1:
Как мы видим, команда выполняется в удалённой системе без проблем.
У удалённого компьютера HACKWARE-SERVER IP адресом является 192.168.0.53, поэтому следующая команда эквивалентна предыдущей:
Обратите внимание, что в Windows (в противоположность Linux), регистр букв в именах компьютеров, командах и путях не имеет значения — можно использовать буквы любого регистра в любых местах.
Как в PsExec запустить команду с аргументами
Аргументы программы достаточно указать через пробел после самой команды:
После запуска команды в удалённой системе вывод команды будет напечатан в текущий стандартный вывод, который является нашей текущей оболочкой (окном командной строки). Этот вывод может быть перенаправлен в файл с помощью символа >. Если у нас много удалённых систем для запуска команд, эта опция будет очень полезна.
В этом примере выходные данные команды ipconfig сохраняются в файл с именем HACKWARE-SERVER_ifconfig.
Для вывода содержимого файла можно использовать команду Get-Content или её более короткий псевдоним cat:
Pass The Hash (использование хеша вместо пароля)
Указывать в командной строке пароль плохо для безопасности. А использование интерактивного ввода не позволяет использовать psexec.exe в скриптах. Выход из этой ситуации — использовать хеш пароля.
PsExec не может напрямую использовать хеш (хотя это ошибочно утверждается в некоторых инструкциях). Для применения хеша (Pass The Hash) с PsExec нужно использовать Windows Credential Editor или Mimikatz или Metasploit.
Пример выполнения Pass The Hash с PsExec. Вначале в Mimikatz:
Затем PsExec запускается без указания имени пользователя и пароля
Примеры NTLM хешей и где их брать в статье «Как взломать пароль Windows».
Как копировать исполнимый файл с локального на удалённую систему
Выполнение команд в удалённой системе — очень полезная функция, но есть и другая полезная функция, которая облегчит работу системных администраторов и пентестеров. PsExec может использоваться для копирования исполнимых файлов из локальной системы в удалённую систему. Мы задействуем опцию -c для операции копирования. По завершении команд скопированный экземпляр будет удалён.
В этом примере мы скопируем cmd.exe. После завершения операции копирования в удалённой системе будет запущен cmd.exe.
Как мы видим, мы получаем оболочку cmd в удалённой системе.
С опцией -c можно указать любой файл.
Ещё один пример:
В последнем примере как использовать PsExec мы используем опцию -c для копирования программы ccleaner.exe на удалённый компьютер J3BCD011, а затем запускаем выгруженный файл с параметром /S, который говорит CCleaner включить тихую установку (не требует ввода пользователя). Добавление такого аргумента требует cmd.
Как запустить приложение с графическим интерфейсом на удалённой системе
Операционные системы Windows предоставляют по умолчанию графический интерфейс. PsExec можно использовать для открытия приложения с графическим интерфейсом на удалённой системе в указанной пользовательской консоли. Пользовательская консоль просто означает рабочий стол пользователя.
В этом примере мы запустим notepad.exe на удаленной системе. Пользователь удаленного системного администратора может взаимодействовать с этим блокнотом. То есть программа откроется на удалённой системе, как-либо взаимодействовать с ней на локальной системе не получится.
Поскольку используется опция -i, программа откроется в интерактивном режиме, что означает, что она фактически запустится на экране удалённого компьютера. Если бы -i была опущена в вышеупомянутой команде, то команда выполнялась бы в скрытом режиме, что означает не показывать какие-либо диалоговые окна или другие окна.
Мы получим нашу локальную оболочку после того, как удалённый пользователь закроет блокнот. После закрытия код выхода будет напечатан в консоли psexec.
Как запустить команду как пользователь SYSTEM
При выполнении команд в удалённой системе привилегии и владелец процесса будут предоставлены пользователем. Если нам нужно изменить владельца удалённых команд на пользователя SYSTEM, мы указываем опцию -s.
В этом примере мы будем использовать regedit.exe:
Обратите внимание, что если на локальном компьютере нужно запустить программу с привилегиями SYSTEM (это намного более высокий привилегии, чем Администратор), то psexec также поможет. Например, чтобы получить доступ к разделам реестра Windows HKEY_LOCAL_MACHINE\SAM\SAM\ достаточно выполнить команду:
Как создать интерактивную оболочку с подключением к удалённой системе
До сих пор мы выполняли команды удалённо. После выполнения команды подключение к удалённой системе закрывалось. Это как сессионное соединение. С помощью PsExec мы можем получить удалённую оболочку или командную строку (по аналогии SSH в Linux). PsExec подключается удалённо и предоставляет нам оболочку MS-DOS. Чтобы получить удалённую оболочку, мы указываем команду cmd.exe в удалённой системе.
Но начнём с того, что посмотрим информацию о текущей системе и пользователе:
Теперь создадим шелл до другого компьютера:
Во-первых, обратите внимание, что изменилось приглашение командной строки (вместо PowerShell она стало CMD).
Теперь просмотрим информацию о текущем пользователе и системе:
Как можно убедиться, мы теперь находимся в командной строке другого компьютера — это и есть шелл, интерактивная оболочка.
Локальным пользователем является hackware-mial\mial, а после подключения пользователь стал hackware-server\администратор. Локальная система имеет версию 10.0.18363.720, а удалённая — версию 10.0.17763.1039.
Инструменты PsTools
До сих пор мы рассмотрели возможности утилиты PsExec, которая является самой популярной в пакете PsTools. Но в PsTools ещё много утилит для типичных действий, которые регулярно выполняют системные администраторы. Рассмотрим их далее.
Как вывести список открытых удалённо файлов с помощью PsFile
Команду PsFile можно использовать для просмотра или закрытия открытых файлов. Синтаксис очень похож на команду PSexec. В этом примере мы перечислим все открытые удалённо файлы.
Как получить список SID на удалённой системе с PsGetSid
SID используется для более детальной идентификации пользователей Windows. Мы можем перечислить SID предоставленных пользователей с помощью команды PsGetSid, как показано ниже.
Как получить информацию об удалённой системе с PSInfo
PsInfo — это инструмент, используемый для получения об удалённой системе информации, такой как время работы, версия, вариант Windows и т. д.
Следующая информация об удалённой системе предоставлена в PsInfo:
- Uptime показывает, сколько дней и часов работает система
- Kernel Version показывает ядро операционной системы
- Product Type показывает версию операционной системы
- Product Version версия продукта
- Kernel Build Number номер сборки ядра
- Registered Organization организация
- Registered Owner владелец
- IE Version показывает версию Internet Explorer
- System Root показывает, где установлена операционная система
- Processor показывает количество процессоров или потоков
- Processor Speed скорость (частота) центрального процессора
- Processor Type показывает подробную версию и имя процессора
- Physical Memory количество физической памяти
- Video Driver показывает имя загруженного драйвера
Как получить процессов в удалённой системе с PsList
Процессы, запущенные в удалённой системе, могут быть легко перечислены с помощью команды PsList.
Вывод предоставит следующую информацию о процессах удалённой системы.
- Name — это имя исполняемого файла
- Pid — это ID процесса, который идентифицирует процессы (то есть отделяет друг от друга, является уникальной характеристикой процессов)
- Pri является приоритетом, который влияет на производительность процесса в периоды высокой нагрузки
- Thd — это номер потока
- Hnd — это счётчик открытых файловых обработчиков
- CPU Time — это общее использование ресурсов центрального процессора
- Elapsed Time — это время от начала процесса
Как убить процесс в удалённой системе с PsKill
Процессы, запущенные в удалённой системе, могут быть легко остановлены с помощью команды PsKill. Чтобы убить процесс, мы должны указать идентификатор процесса или имя процесса в качестве аргумента. Мы убьём удалённый процесс с идентификатором процесса 2064.
Как получить список журналов событий на удалённой системе с помощью PsLogList
Журналы удалённой системы могут быть легко выгружены в локальную систему с помощью команды PsLogList. Если мы используем эту команду без каких-либо дополнительных параметров, она выведет все журналы событий из удалённой системы, которые заполнят окно консоли. Так что для примера мы с опцией -m ограничим вывод последними 5 минутами журналов событий.
Как изменить пароль на удалённой системе с помощью PsPasswd
Пароли пользователей удалённой системы можно легко изменить с помощью команды PsPasswd. В этом примере мы изменим пароль администратора на 123456Aa.
Пинг с PsPing
Ещё одним полезным инструментом является PsPing, который создает ICMP-пакеты для проверки связи. Команда в примере запускается на локальной системе (но может быть запущена и удалённо).
Для запуска пинга с удалённого компьютера:
Управление службами в удалённой системе с помощью PsService
Команда PsService используется для просмотра, запуска, остановки служб в удалённой системе.
Как вывести список служб
Мы можем перечислить удалённые сервисы с опцией query.
Как запустить службу удалённо
Удалённый сервис может быть запущен с опцией start. В этом примере мы запустим сервис с именем mysql.
После запуска сервиса будет выведена информация о нём.
Как остановить службу удалённо
В следующем примере мы остановим службу mysql:
Как выключить, перезагрузить, приостановить удалённую систему с PsShutdown
Удалённую систему можно отключить командой PsShutdown, как показано ниже.
Войти
Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal
Запуск служб на удаленной системе
Для администрирования удаленных систем часто возникает вопрос: как запустить интерфейс командной строки в этой удаленной системе, чтобы посмотреть, например, какие данные выдает команда ipconfig или запущена ли на удаленном компьютере какая-то необходимая служба для проверки срабатывания групповых политик? Это только часть задач, которые могут стоять перед администратором. Вопрос съема информации я преднамеренно опускаю, хотя мы отдаем себе отчет в правомочности двух постулатов:
1. Администратор (компьютера, домена и т.д.) - это Бог. Он может получить кратковременный доступ к любой информации в зависимости от его квалификации.
2. Компьютер, подключенный к сети, беззащитен перед хакером.
Не хочу ни с кем спорить по вышенаписанному. Я исхожу из того, что, если есть тот, кто придумал код, значит, есть и тот, кто придумает, как обойти этот код. Это только дело времени. И способностей :-)
Все, что здесь написано, применимо, прежде всего, к Windows-компьютерам.
Итак, первая официальная возможность подключиться к удаленному компьютеру:
Программа PsExec.
Служебные программы, такие как Telnet, и программы удаленного управления, такие как PC Anywhere компании Symantec, позволяют выполнять программы в удаленных системах, однако их не так просто установить, поскольку требуется устанавливать еще и клиентское программное обеспечение в тех удаленных системах, к которым необходимо получить доступ. Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать такие инструменты как IpConfig. Это единственный способ вывести на экран локального компьютера данные об удаленной системе.
Примечание. Некоторые антивирусные сканеры сообщают, что одна или несколько из этих программ заражены вирусом «remote admin». Ни одна из программ, входящих в набор PsTools, не содержит вирусов, но они использовались вирусами, что и приводит к появлению таких предупреждений.
Просто скопируйте программу PsExec в папку для исполняемых файлов. При вводе команды psexec на экран выводится справка о синтаксисе команды.
Программа PsExec работает в операционных системах Windows Vista, NT 4.0, Win2000, Windows XP и Server 2003, в том числе в 64-разрядных версиях ОС
Использование
В статье Марка Руссиновича в выпуске журнала Windows IT Pro Magazine за июль 2004 года описаны дополнительные методы работы с программой PsExec.
использование: psexec [\\компьютер[,компьютер2[. ] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-<приоритет>][-a n,n. ] программа [аргументы]
компьютер
Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
Указанный профиль учетной записи не загружается.
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
Удаленный процесс запускается из системной учетной записи.
Позволяет указать необязательное имя пользователя для входа в удаленную систему.
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
-приоритет (приоритет)
Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
Имя запускаемой программы.
Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).
Чтобы задать имя приложения, которое содержит пробелы, используйте кавычки, например psexec \\marklap "c:\длинное имя\app.exe". Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.
Если имя пользователя не задано, то удаленный процесс запускается из той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если имя пользователя задано, то удаленный процесс запускается из указанной учетной записи и получает доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Учтите, что пароль передается в удаленную систему в виде открытого текста.
При обращении к локальной системе эту версию программы PsExec можно использовать вместо программы Runas, поскольку для программы PsExec не требуются права администратора.
Эта команда вызывает интерактивный интерфейс командной строки в системе \\marklap:
psexec \\marklap cmd
Эта команда запускает в удаленной системе программу IpConfig с параметром /all и выводит полученные данные на экран локальной системы:
psexec \\marklap ipconfig /all
Эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме.
psexec \\marklap -c test.exe
Если в удаленной системе такая программа уже установлена и находится не в системном каталоге, укажите полный путь к этой программе
psexec \\marklap c:\bin\test.exe
Эта команда запускает в интерактивном режиме из системной учетной записи программу Regedit для просмотра данных разделов реестра SAM и SECURITY:
psexec -i -d -s c:\windows\regedit.exe
Эта команда используется для вызова программы Internet Explorer от имени пользователя с ограниченными правами:
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
Вторая официальная возможность подключиться к удаленному компьютеру:
Программа SC
Описание:
SC представляет собой программу командной строки, используемую для связи со службами и диспетчером управления службами.
ИСПОЛЬЗОВАНИЕ:
sc <сервер> [команда] [имя_службы] <параметр1> <параметр2>.
Параметр <сервер> задается в формате "\\имя_сервера".
Для получения справки о командах введите "sc [команда]"
Команды:
Следующие команды не требуют имени службы:
sc <сервер> <команда> <параметры>
Пример:
sc start MyService
Параметры QUERY и QUERYEX:
Если после команды query указано имя службы, будет возвращено состояние этой службы. В этом случае дополнительные параметры не используются. Если после команды query указаны следующие параметры либо ничего не указано, выполняется перечисление служб.
Примеры использования:
Третья официальная возможность подключиться к удаленному компьютеру:
Программа NET USE
Команда NET USE без параметров выводит список всех подключенных ресурсов.
Для просмотра выводимых сведений с паузами между отдельными экранами используются команды:
NET USE /? | MORE
и
NET HELP USE | MORE
Синтаксис данной команды:
NET USE [password | *] /HOME
NET USE [/PERSISTENT:]
Эта команда используется для подключения и отключения общих ресурсов и вывода сведений о подключениях. Для своей работы она использует интерфейс NetBios. Для обращения нужно использовать имена NetBios.
NET USE диск: | \\компьютер\папка /DELETE [/YES]
NET USE порт: | \\компьютер\принтер /DELETE [/YES]
NET USE * /DELETE [/YES]
PsService позволяет подключаться к удаленной системе и останавливать или запускать службы. Более того, две вещи делают этот инструмент просто отличным – он бесплатен и не требует установки.
Впрочем, перед тем как подключиться к удаленной системе с помощью PsService, вам необходимо убедиться, что порты 445 и 139 на удаленном компьютере открыты, даже если на удаленном компьютере работает файрвол или файрвол стоит между вашим и удаленным компьютером. Порты должны быть открыты.
Также на удаленном компьютере у вас должен быть аккаунт с административными правами - чтобы вы смогли останавливать и запускать службы.
Для использования PsService, программу сначала необходимо скачать с Microsoft Sysinternals (PsServices поставляется с пакетом PsTools). Затем необходимо распаковать архив PsTools.zip, и в месте распаковки вы должны увидеть исполняемый файл psservice.exe.
Теперь, работать с PsService легко. Пусть, например, из-за проблем с принтером вы только что убили на удаленном компьютере службу очереди печати (спулер) и теперь вам нужно запустить ее. Для этого сначала запустите на своем компьютере командную строку (нажмите Пуск, далее Выполнить, напишите cmd и нажмите Enter), затем перейдите в папку с файлом psservice.exe и наберите следующую команду:
Примечание: При первом использовании PsService вам необходимо согласиться с лицензионным соглашением. Чтобы это сделать, кликните по кнопке Agree.
psservice.exe \\rcomputer -u mike -p 123456 start spooler
\\rcomputer – имя удаленного компьютера.
-u mike -p 123456 – имя и пароль аккаунта с административными правами на удаленном компьютере.
start spooler – команда запуска службы с названием spooler.
После выполнения команды, PsService покажет вам результаты своей работы и состояние той службы, о которой шла речь в задании.
Подобным образом PsService может остановить службу, для чего необходимо использовать команду формата (для службы печати - spooler):
psservice.exe \\rcomputer -u mike -p 123456 stop spooler
Более того, PsService может выдать вам список служб удаленного компьютера. Это может быть полезным, чтобы найти какую-нибудь службу, перед тем как убить ее. Чтобы получить список служб, используйте команду формата:
psservice.exe \\rcomputer -u mike -p 123456 query
Если вы заметили, предыдущая команда пролистывает список служб очень быстро. Чтобы заставить ее останавливаться перед пролистыванием экрана, используйте следующую команду:
psservice.exe \\rcomputer -u mike -p 123456 query |more
Это позволит вам постранично просмотреть список служб удаленного компьютера, пролистывая их нажатием пробела. Досрочно прервать пролистывание можно комбинацией клавиш CTRL+C.
PsService прекрасно работает в доменном окружении Windows и даже, когда компьютеры состоят в рабочей группе. Впрочем, иногда у нее бывают проблемы с подключением.
Тем не менее, программа, определенно, сохраняет время и не требует установки никакого удаленного программного обеспечения.
Читайте также: