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 выглядит следующим образом:

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

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

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

1
psexec \\SRV1 ipconfig /flushdns
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.

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

-c

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

psexec \\SRV1 -c test.exe

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

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

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

-i

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

-d

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

 -h

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

-l

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

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

COM порт в Ubuntu

По умолчанию к устройствам /dev/tty* имеют доступ пользователи из группы «dialout». Посмотреть:

1
ls -al /dev/ttyS0
ls -al /dev/ttyS0

ответ

1
crw-rw---- 1 root dialout 4, 64 мая 5 07:42 /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 мая 5 07:42 /dev/ttyS0

можно увидеть, что доступ открыт для группы dialout

нужно добавить себя в эту группу:

1
sudo adduser <username> dialout
sudo adduser <username> dialout

Перезагрузится.

AP-hotspot ubuntu 14.04

Установка

x64

1
2
3
4
cd /tmp
wget http://archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_amd64.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd
cd /tmp
wget http://archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_amd64.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd

x86

1
2
3
4
cd /tmp
wget http://archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_i386.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd
cd /tmp
wget http://archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_i386.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd

Настройка

1
sudo ap-hotspot configure
sudo ap-hotspot configure

Запуск и остановка

1
2
3
sudo ap-hotspot start
sudo ap-hotspot stop
sudo ap-hotspot restart
sudo ap-hotspot start
sudo ap-hotspot stop
sudo ap-hotspot restart

Стандартный SSID  «myhotspot» пароль «qwerty0987»

Добавляем в автозапуск

в файл

1
sudo vi /etc/rc.local
sudo vi /etc/rc.local

добавляем строку

1
ap-hotspot start
ap-hotspot start

до строки

1
exit 0
exit 0

Секреты качественного ЛУТa

Для простого и быстрого изготовления печатных плат.

1. Утюг обычный, отпаривание отключить.
2. Бумага для факса, черная сторона.
3. Плату печатаем со стороны элементов, НЕ зеркалить.
4. Тектстолит шкурить, после этого не обезжиривать, а промыть под водой и протереть тряпкой без ворса(салфеткой.)
5. Температура утюга чуть меньше шерсти.
6. Приглаживаем распечатанную заготовку через один лист А4. Затем разглаживаем в четырех направлениях, по 5-10 секунт в каждую.
7. Даем заготовке остыть.
8. Кидаем заготовку в емкость с КРОТом или другим средством для прочитки канализации (щелочь)
9. Через 5-10минут промываем под водой. Бумага легко отходит от платы. Тонер остается на плате.
10. Травим
11. Смываем тонер растворителем или ацетоном.
12. Лудим плату.

 

Установка hddtemp Centos 6

1
2
3
4
5
cd /tmp
wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
yum update
yum install hddtemp
cd /tmp
wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
yum update
yum install hddtemp

Backup на облако copy.com

Облако copy.com дает бесплатные 15gb, плюс еще пять по рефайл ссылке.

Скачиваем клиент

1
2
cd /tmp
wget https://copy.com/install/linux/Copy.tgz
cd /tmp
wget https://copy.com/install/linux/Copy.tgz

распаковываем

1
tar -xvf Copy.tgz
tar -xvf Copy.tgz

теперь клиет у нас лежит

1
2
/tmp/copy/x86 #для x86
/tmp/copy/x86_64 #для x64
/tmp/copy/x86 #для x86
/tmp/copy/x86_64 #для x64

Заливаем файл

1
/tmp/copy/x86/CopyCmd Cloud -password=пароль -username=Имя пользователя put /локальный путь /путь на облаке
/tmp/copy/x86/CopyCmd Cloud -password=пароль -username=Имя пользователя put /локальный путь /путь на облаке

Удаляем файл

1
/tmp/copy/x86/CopyCmd Cloud -password=пароль -username=Имя пользователя rm /путь
/tmp/copy/x86/CopyCmd Cloud -password=пароль -username=Имя пользователя rm /путь

Для более подробного использования

1
/tmp/copy/x86/CopyCmd -help
/tmp/copy/x86/CopyCmd -help

 

 

Vi

Сохранить

1
: w
: w

Сохранить и выйти

1
: x
: x

Выйти без сохранения

1
: !q
: !q

Поиск в прямом напрвлении

1
/
/

Поиск в обратном напрвлении

1
?
?

Откат

1
u
u

Выделить весь файл

1
g g V G
g g V G

7d3097082e7be8170d03de6068188ced.media.850x477

fail2ban centos установка Vesta

Установка

1
yum install fail2ban
yum install fail2ban

Настройки:

1
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.conf
1
2
3
bantime  = 21600 #время бана в секундах
ignoreip = 127.0.0.0 #разрешенные адреса через пробел
maxretry = 3 #максимальное число попыток авторизации
bantime  = 21600 #время бана в секундах
ignoreip = 127.0.0.0 #разрешенные адреса через пробел
maxretry = 3 #максимальное число попыток авторизации

По умолчанию включено правило только для ssh, дальше можно включить нужные правиля параметром

1
enabled = true
enabled = true

Запускаем демона

1
service fail2ban start
service fail2ban start

Добавляем в автозагрузку

1
chkconfig fail2ban on
chkconfig fail2ban on

Vesta faq пути

Шаблоны страниц по умолчанию vesta

1
/usr/local/vesta/data/templates/web/skel/public_html/index.html
/usr/local/vesta/data/templates/web/skel/public_html/index.html

SSL сертификаты панели

1
2
/usr/local/vesta/ssl/certificate.crt
/usr/local/vesta/ssl/certificate.key
/usr/local/vesta/ssl/certificate.crt
/usr/local/vesta/ssl/certificate.key

Exim статистика

1
eximstats /var/log/exim/main.log 
eximstats /var/log/exim/main.log 

Vesta пакеты

1
/usr/local/vesta/data/packages
/usr/local/vesta/data/packages

Vesta php 5.3

Для того чтобы установить php 5.3, нужно для начала удалить существующий

1
2
3
4
5
6
7
8
9
10
service httpd stop
yum -y remove php*
yum -y install php php-bcmath php-cli php-common php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc php-pecl-apc phpMyAdmin roundcubemail
mv -f /etc/php.ini.rpmsave /etc/php.ini
mv -f /etc/roundcubemail/db.inc.php.rpmsave /etc/roundcubemail/db.inc.php
mv -f /etc/roundcubemail/main.inc.php.rpmsave /etc/roundcubemail/main.inc.php
mv -f /etc/phpMyAdmin/config.inc.php.rpmsave /etc/phpMyAdmin/config.inc.php
mv -f /etc/httpd/conf.d/roundcubemail.conf.rpmsave /etc/httpd/conf.d/roundcubemail.conf
mv -f /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave /etc/httpd/conf.d/phpMyAdmin.conf
service httpd start
service httpd stop
yum -y remove php*
yum -y install php php-bcmath php-cli php-common php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc php-pecl-apc phpMyAdmin roundcubemail
mv -f /etc/php.ini.rpmsave /etc/php.ini
mv -f /etc/roundcubemail/db.inc.php.rpmsave /etc/roundcubemail/db.inc.php
mv -f /etc/roundcubemail/main.inc.php.rpmsave /etc/roundcubemail/main.inc.php
mv -f /etc/phpMyAdmin/config.inc.php.rpmsave /etc/phpMyAdmin/config.inc.php
mv -f /etc/httpd/conf.d/roundcubemail.conf.rpmsave /etc/httpd/conf.d/roundcubemail.conf
mv -f /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave /etc/httpd/conf.d/phpMyAdmin.conf
service httpd start