PsExec е преносим инструмент от Microsoft, който ви позволява да стартирате процеси от разстояние, като използвате идентификационните данни на всеки потребител. Това е малко като програма за отдалечен достъп, но вместо да управлявате компютъра с мишка, командите се изпращат чрез командния ред.
Можете да използвате PsExec не само за управление на процесите на отдалечения компютър, но и за пренасочване на конзолния изход на приложението към вашия локален компютър, което прави да изглежда така, сякаш процесът се изпълнява локално.
Не е необходим софтуер на отдалечения компютър, за да работи PsExec, но има няколко неща, които трябва да имате предвид, ако инструментът не работи правилно първия път, когато го опитате.
Как да настроите PsExec
Ако PsExec е преносим и не е необходимо да се копира на отдалечения компютър, от какъв тип настройка наистина се нуждае?
Инструментът работи само при определени условия. А именно, когато споделянето на файлове и принтери е активирано както на локалния, така и на отдалечения компютър и когато на отдалечената машина е настроен правилно споделянето на $admin, за да осигури достъп до папката \Windows\.
Можете да проверите отново дали споделянето на файлове и печат е активирано, като погледнете в настройките на защитната стена на Windows:
- Въведете firewall.cpl в диалоговия прозорец Изпълнение. Един от начините за отваряне на Run е чрез WIN+R клавишна комбинация.
-
Изберете Разрешаване на приложение или функция през защитната стена на Windows от лявата страна на прозореца.
Това може да се чете като Разрешаване на приложение или функция през защитната стена на Windows Defender в зависимост от това как е настроен компютърът ви, но това е същата опция.
-
Уверете се, че Споделяне на файлове и принтери има отметка в полето Лично отдясно. Ако не стане, поставете отметка в това поле и изберете OK.
Ако не можете да промените настройките на защитната стена, защото са оцветени в сиво, изберете Промяна на настройките в горната част на прозореца.
- Вече можете да излезете от всички отворени настройки на защитната стена на Windows.
С защитната стена на Windows вече е настроена правилно за PsExec, не би трябвало да имате проблем с достъпа до споделянето на $admin на отдалечената машина, стига следното да е вярно:
- И двата компютъра принадлежат към една и съща работна група
- Знаете паролата за акаунт на администратор на отдалечения компютър
Вижте този урок на Wintips.org, ако имате нужда от помощ за извършване на тези неща или ако сте ги направили правилно, но по-късно, след опит да използвате PsExec, както е описано по-долу, получавате грешка „достъпът е отказан“.
Как да използвате PsExec
Преди да използвате PsExec за изпълнение на отдалечени команди, трябва да изтеглите програмата и да позиционирате командния ред по начин, по който можете да използвате инструмента правилно.
Изтеглете и го отворете
-
Изтеглете PsExec на компютъра, който ще изпълнява отдалечените команди. Предлага се безплатно от Microsoft в Sysinternals като част от PsTools.
-
Извлечете файловете от изтеглянето на PsTools.zip. Можете да направите това, като щракнете с десния бутон върху ZIP файла и изберете Extract All. Всеки инструмент за извличане на файлове на трета страна също ще работи.
-
Отворете папката, в която се намират извлечените файлове, и от лентата за навигация в горната част на папката изтрийте това, което има там, и въведете cmd.
Друг начин да направите това, поне в някои версии на Windows, е да Shift+щракнете с десен бутон празно място в папката PsTools и да изберете Open команден прозорец тук.
Това ще отвори командния ред в тази папка, така че да можете да изпълнявате команди през PsExec.
-
Когато командният ред вече е отворен към папката, която съдържа PsExec.exe, можете да започнете да въвеждате команди на отдалечената машина.
Разбиране на синтаксиса
Подобно на всеки инструмент от командния ред, PsExec работи само когато неговият синтаксис се следва точно. След като разберете как да въвеждате команди по начина, по който инструментът ги разбира, можете да управлявате програмата от всеки команден ред.
Ето как трябва да се въвеждат командите на PsExec:
psexec [ компютър [, компютър2 [, …] | @file\][- u потребителско име [- p парола][- n s][- r име на услугата][- h][- l][- s |- e][- x][- i[сесия][-c изпълним [-f |-v ][-w директория][- d][- ][- a n, n
Това може да изглежда сложно и объркващо, но не се притеснявайте! Има няколко примера в долната част на тази страница, които можете да използвате, за да практикувате.
Горният синтаксис се използва за изпълнение на който и да е от следните аргументи на командата PsExec:
Опции на командата PsExec | |
---|---|
Параметър | Обяснение |
- a | Отделни процесори, на които може да работи приложението, със запетаи, където 1 е процесорът с най-нисък номер. Например, за да стартирате приложението на CPU 2 и CPU 4, трябва да въведете: - a 2, 4 |
- c | Копирайте посочения изпълним файл в отдалечената система за изпълнение. Ако е пропуснато, приложението трябва да е в системния път на отдалечената система. |
- d | Не чакайте процесът да приключи (неинтерактивен). |
- e | Не зарежда профила на посочения акаунт. |
- f | Копирайте указаната програма, дори ако файлът вече съществува в отдалечената система. |
- i | Стартирайте програмата, така че да взаимодейства с работния плот на посочената сесия на отдалечената система. Ако не е посочена сесия, процесът се изпълнява в сесията на конзолата. |
- h | Ако целевата система е Windows Vista или по-нова, изпълнете процеса с повишен токен на акаунта, ако е наличен. |
- l | Стартирайте процеса като ограничен потребител (премахва групата администратори и позволява само привилегии, присвоени на групата потребители). В Windows Vista процесът работи с ниска цялост. |
- n | Определя времето за изчакване (в секунди) при свързване с отдалечени компютри. |
- p | Указва незадължителна парола за потребителското име. Ако е пропуснато, ще бъдете подканени да въведете скрита парола. |
- r | Определя името на отдалечената услуга за създаване или взаимодействие. |
- s | Стартира отдалечения процес в системния акаунт. |
- u | Указва незадължително потребителско име за влизане в отдалечен компютър. |
- v | Копира посочения файл само ако има по-висок номер на версия или е по-нов от този в отдалечената система. |
- w | Задава работната директория на процеса (спрямо отдалечения компютър). |
- x | Показва потребителския интерфейс на защитения работен плот на Winlogon (само локална система). |
- приоритет | Указва -low, -belownormal, -abovenormal, -high или -re altime за изпълнение на процеса с различен приоритет. Използвайте -background за работа при ниска памет и I/O приоритет на Windows Vista. |
компютър | Указва на PsExec да стартира приложението на посочения отдалечен компютър(и). Ако е пропуснато, PsExec изпълнява приложението на локалната система и ако е указан заместващ знак (), PsExec изпълнява командата на всички компютри в текущия домейн. |
@file | PsExec ще изпълни командата на всеки от компютрите, изброени във файла. |
cmd | Име на приложението за изпълнение. |
аргументи | Аргументи за предаване (обърнете внимание, че пътищата на файловете трябва да са абсолютни пътища в целевата система). |
Примери за команди PsExec
Ето няколко примера за това как да използвате PsExec, за да правите неща като стартиране на отдалечени команди на командния ред, управление на услуги на Windows и стартиране или инсталиране на програми.
Отваряне на CMD дистанционно
psexec \\192.168.86.62 cmd
Един от най-лесните начини да използвате PsExec за изпълнение на команди на командния ред на отдалечен компютър е да изпълните cmd след IP адреса на машината, 192.168.86.62 в този пример.
Извършването на това ще стартира обикновен прозорец на командния ред в рамките на съществуващия и ще ви позволи да въвеждате всяка команда, сякаш седите пред отдалечения компютър. Например, след това можете да въведете ipconfig, за да получите тези резултати от другия компютър, или mkdir, за да създадете нова папка, dir, за да изведете списък със съдържанието на папката и т.н.
Изпълнете дистанционна команда
psexec \\mediaserver01 tracert lifewire.com
Друг начин да използвате PsExec е да въведете отделни команди, но без да стартирате пълен команден ред. В този пример ние изпълняваме командата tracert срещу lifewire.com и тъй като сме посочили името на отдалечения компютър, mediaserver01, резултатите от командата са подходящи за тази машина, а не за локалната (т.е. тази, която сте на).
Стартиране на услуга от разстояние
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
Примерът на команда PsExec, показан по-горе, стартира услугата Print Spooler, spooler, отдалечено на компютъра FRONTDESK_PC, използвайки паролата на потребителя tomd, 3(tom87.
Същата команда може да се използва за дистанционно спиране на услуга, но трябва да въведете "стоп" вместо "старт."
Отворете редактора на системния регистър
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
Тук използваме PsExec, за да стартираме редактора на системния регистър на отдалечената машина, mikelaptopw10, в системния акаунт. Тъй като се използва -i, програмата ще се отвори в интерактивен режим, което означава, че действително ще се стартира на екрана на отдалечената машина.
Ако -i беше пропуснат от горната команда, тя ще се изпълни в скрит режим, за да се избегне показването на диалогови прозорци или други прозорци.
Инсталиране на програма на отдалечен компютър
psexec \\J3BCD011 -c Z:\files\ccleaner.exe” cmd /S
В този последен пример за използване на PsExec ние използваме -c за копиране на програмата ccleaner.exe на отдалечения компютър J3BCD011 и след това я изпълняваме с /S параметър, тъй като това е, което CCleaner използва, за да активира тиха инсталация (не изискваща въвеждане от потребителя). Добавянето на аргумент като този изисква cmd.
PsExec може да бъде опасен
Много е важно да разберете колко мощен е PsExec и как може да се използва за компрометиране на вашия компютър, когато се използва в иначе несигурна среда.
Например, комбинирането на - c, - u и - p, конкретно ще позволява на всеки, който има мрежова връзка с вашия компютър и познава администраторските идентификационни данни, да изпълнява таен зловреден софтуер с нечии идентификационни данни.
Дори този последен, напълно приемлив пример в предишния раздел придобива изцяло нова цел, когато вземете предвид, че вместо CCleaner, някой може да инсталира всичко друго, което пожелае, във фонов режим и не се появяват прозорци, които да показват това всичко се случва.
Всичко това казано, като се имат предвид необходимите промени в защитната стена и познанията за администраторските идентификационни данни, които някой би трябвало да има, няма голяма причина за безпокойство, докато паролата на администратора на отдалечения компютър е сложна и са взети други основни мерки за сигурност.
Някои антивирусни програми погрешно идентифицират PsExec като опасен файл, но тези предупреждения могат да бъдат игнорирани, ако знаете със сигурност, че програмата, която използвате, е от източника на Microsoft по-горе. Причината това да се случва е, че е известно, че зловреден софтуер използва PsExec за прехвърляне на вируси.