Jump to content

Ревю: PsTools - Command-line инструменти на Sysinternals


Препоръчан пост

http://pics.softvisia.com/design/pics/5453/hero_windows_sysinternals.jpg

 

Официална страница: http://www.microsoft.com/technet/sysinternals

Директен линк за сваляне: PsTools

Лиценз: FreeWare

Големина на пакета: 1MB

 

PsTools е пакет малки програми, които се изпълняват през командния ред. Пакетът съдържа общо 12 инструмента за администриране на Windows NT, Windows 2000, Windows XP, Windows Server 2003 и Windows Vista операционни системи, както локално така и отдалечено. Не е необходима инсталация.

Инструментите, които се съдържат в PsTools са:

1. PsExec - служи за изпълнение на процеси локално или на отдалечена система.

2. PsFile – показва какви файлове са отворени отдалечено.

3. PsGetSid – визуализира SID (security identifier) за компютър или потребител.

4. PsInfo - показва информация за хардуера и софтуера на локална или отдалечена система. Тази информация включва и версията на операционната система, марката, модела и тактовата честота на процесора, размера на оперативната памет (RAM) и марката и модела на видео адаптера. PsInfo може да показва и допълнителна информация, чрез въвеждането на допълнителни ключове.

5. PsList – показва информация за процесите на локален или отдалечен компютър.

6. PsKill – „убива” процеси на локална или отдалечена система по име или Process ID (PID).

7. PsLoggedOn – показа кой потребител е влезнал локално в системата или отдалечено.

8. PsLogList – визуализира записи от Event Log на локален или отдалечен компютър.

9. PsPasswd – променя парола на акаунт, регистриран на локална или отдалечена система.

10. PsService – визуализира и управлява услугите на локален или отдалечен компютър.

11. PsShutdown – позволява ви да изгасите, рестартирате, заключите локален или отдалечен компютър.

12. PsSuspend– временно прекратява „активността” на нишките в даден процес, като освобождава заетите системни ресурси. За разлика от Pskill след време можете да подновите процеса, както е бил преди използването на PsSuspend.

 

Как се използват инструментите от пакета PsTools?

 

За да стартирате инструмент от пакета PsTools, направете следното:

1. Отворете Command Promt - Start-->RUN-->„cmd”.

2. Влезте в папката, в която се намират инструментите от архива PsTools.

3. За да получите информация как се използва даден инструмент въведете „psинструмент /?”. Пример „psexec /?”.

 

 

 

PsExec

 

PsExec ви позволява да изпълнявате процеси както на локална така и на отдалечена система. За разлика от приложения за отдалечен контрол като TightVNC, Remote Administrator, PC Anywhere и др. тук не се налага да се инсталира клиент и сървър на системите. Всичко се извършва през командния ред.

По-важните възможности са.

„Psexec \\отдалечено_pc” – Стартира дадения процес на отдалечена система.

Пример: „psexec \\pc2 cmd” – PsExec ще стартира Command Prompt на компютъра "PC2" в мрежата.

 

„Psexec –s” – Стартира дадения процес на локална или отдалечена система под системния акаунт (System account). Например това е полезно, ако искате да имате достъп до защитени файлове и папки, като System Volume Information (папката, в която System Restore функцията на Windows XP съхранява информация за системата).

 

http://pics.softvisia.com/design/pics/5453/cmdsysaccpf2.png

 

Интересно приложение на стартирането под системния акаунт е възможността да стартирате инструменти за диагностика на системата при влизане / излизане на потребител. Например инструмент, който записва I/O или активност на регистъра. На картинката по-долу се вижда такъв пример.

 

http://pics.softvisia.com/design/pics/5453/filemonsysaccounthj7.png

 

„Psexec –i “ – Стартира програмата, така че да се визуализира на екрана на отдалечена система.

 

„PsExec - priority“ – Задава приоритет на нишките в процеса. Възможните стойности са: -low, -belownormal, -abovenormal, -high или –realtime.

 

PsList

 

http://pics.softvisia.com/design/pics/5453/psliststandartfw1.png

 

PsList e инструмент, който ви показва информация за процесите на локална или отдалечена система. Стандартно Pslist визуализира информация за това как текущите процеси използват ресурсите на процесора и какво количество памет използва всеки един от тях. Колонките, които се показват по-подразбиране показват следните неща:

Name – Името на процеса.

Pid – Идентификатор на процеса.

Pri – Приоритета на дадения процес.

Thd – Броя на нишките.

Hnd – Броят на манипулаторите на обекти, които се използват от дадения процес.

Priv – Количеството виртуална памет, което процеса използва.

CPU Time – Общото процесорно време, използвано от процеса от момента на неговото стартиране.

Elapsed Time – Показва колко време е изминало от момента на стартиране на дадения процес.

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

 

„Pslist –m” - Показва информация за това как процесите използват паметта на системата.

 

http://pics.softvisia.com/design/pics/5453/pslistmvh4.png

 

По-важните колони са:

WS (Working Set) – Количеството физическа памет (RAM), което дадения процес използва. Тази колонка е аналог на колоната Мem Usage в Task Manager.

Priv (Private Bytes) – Количеството виртуална частна памет, което процеса използва. Този брояч е особено полезен при търсенето на Memory leaks. Аналог на този брояч е колонката Virtual Memory Size в Task Manager.

Priv PK (Private Bytes Peak) – Максималното количество виртуална памет, изразходвано от дадения процес от момента на неговото стартиране.

 

„Pslist –x” – Показва информация за процесора, паметта и нишки за всеки процес в отделна област.

 

http://pics.softvisia.com/design/pics/5453/pslistxop2.png

 

„Pslist –d” – Pslist показва статистика за всички активни нишки, групирани по-процеси. Информацията включва и статуса на нишката, броя на контекстните превключвания, времето, което е прекарала в потребителски режим (User Mode) и времето прекарано в режим ядро (Kernel Mode).

:computer: Контекстните превключвания (Cswtch) показват колко пъти нишката е била селектирана за изпълнение.

 

http://pics.softvisia.com/design/pics/5453/pslistdso1.png

 

„Pslist –t” – Показва дървовиден изглед на процесите.

 

http://pics.softvisia.com/design/pics/5453/pslisttzt3.png

 

„Pslist – s” – Активира режим, при който данните се актуализират постоянно, както при Task Manager.

 

PSSuspend

 

http://pics.softvisia.com/design/pics/5453/psuspendryp2.png

 

PSSuspend използва Suspend/ResumeThread API, който ви позволява да прекратяване или възобновявате изпълнението на нишки. Това е полезно, ако желаете да освободите системни ресурси без да убивате процес. Например: Стартирали сте програма, която натоварва процесора ви на 100%, но се налага да стартирате друго тежко приложение. Процесора е натоварен на 100% работата с Windows и приложенията няма да е много комфортна.

При такъв случай Pssuspend може да ви помогне. Стартирате Pssuspend, като указвате името на процеса, който да бъде временно прекратен. Когато сте готови указвате на Pssuspend да продължи изпълнението на избрания от вас процес.

Начина на използване е следния:

1. За да прекратите даден процес – „Pssuspend име_на_процес”. Пример: „pssuspend orthos.exe”.

2. За да „активирате” отново процеса – „Pssuspend –r име_на_процес”. Пример: „Pssuspend –r orthos.exe”.

Suspend функцията „освобождава” процесора, мрежовата и I/O активност.

 

http://pics.softvisia.com/design/pics/5453/pssuspendoc3.png

 

Функцията Suspend е налична и при инструмента Process Explorer. Когато кликнете с дясното копче на мишката върху процес, на екрана се визуализира контекстно зависимо меню, което ви осигурява достъп до функцията Suspend.

 

http://pics.softvisia.com/design/pics/5453/pesuspendmw0.png

 

Предимството на PsSuspend е, че можете да използвате тази функция на отдалечена система.

 

Автор: Лазар Канелов (l.kanelov)

Всички авторски права върху съдържанието на статията и снимковия материал са запазени. Забранено е разпространяването и/или модифицирането на статията или части от нея без изричното съгласие на автора. Всички ©, ® и ™ са собственост на притежаващите ги фирми.

Link to comment
Сподели другаде

  • 11 months later...
Taя програмка ми се струва наистина ще е яка, обаче: не мoга нeщo да я подкарам :crosseyes1: .Какво значи точка "2. Влезте в папката, в която се намират инструментите от архива PsTools." През конзолата ли да вляза ?С коя команда ? Аз изпълнявам точка 1 и до там. Провах start ,open ,run D:/a там ми е папката на програмата. Влизам по нормалния начин в папката,цъкам по exe-тата приемам разни лицензионни спорозумения и до там .Нищо не става ! Незнам дали се получава проблема защото съм с два windowsa и се пробвам да пусна програмата на втория ми win който е на дял D. Какво ще рече -> // "не се налага да се инсталира клиент и сървър на системите. Всичко се извършва през командния ред. " // Трява ли другият компютър да има програмата или връзката се осъществява чрез въвеждане на IP-то ??? :crosseyes1:
Link to comment
Сподели другаде

Taя програмка ми се струва наистина ще е яка, обаче: не мoга нeщo да я подкарам :crosseyes1:

 

Ако трябва да сме точни става въпрос за пакет от програми, изпълняващи се през командния ред. :)

 

Какво значи точка "2. Влезте в папката, в която се намират инструментите от архива PsTools." През конзолата ли да вляза ?С коя команда ? Аз изпълнявам точка 1 и до там. Провах start ,open ,run D:/a там ми е папката на програмата. Влизам по нормалния начин в папката,цъкам по exe-тата приемам разни лицензионни спорозумения и до там .Нищо не става !

 

Да, в папката с разархивираните инструменти се влиза чрез командния ред. Просто навигираш до папката, в която се намират чрез стандартните команди. Например, ако се намират в папка C:\PsTools трябва да напишеш "cd C:\PsTools". След това вече пишеш името на инструмента, с който искаш да работиш.

Другият вариант, който аз използвам и препоръчвам е да вкараш пътя до папката с инструментите в системната променливата на обкръжението Path. По този начин винаги може да работиш с инструментите, когато отвориш командния ред. Т.е. не се налага да влизаш всеки път в папката, в която са разархивирани.

 

Незнам дали се получава проблема защото съм с два windowsa и се пробвам да пусна програмата на втория ми win който е на дял D.

 

Не, това няма нищо общо. Просто не си разбрал принципът на работа на тези инструменти. То всъщност това важи за всички инструменти, които се изпълняват чрез Command Prompt.

 

 

Какво ще рече -> // "не се налага да се инсталира клиент и сървър на системите. Всичко се извършва през командния ред. " // Трява ли другият компютър да има програмата или връзката се осъществява чрез въвеждане на IP-то ??? :crosseyes1:

 

При програмите за отдалечен достъп, които обикновено предлагат опция за стартиране на програми на отдалчената система, (почти)винаги се налага да се инсталира сървър на машината, към която ще се свързваш и клиент на машината, от която ще се свързваш.

При PsExec това не се налага - стига да имаш администраторски привилегии на отдалечената машина, можеш винаги да стартираш процес отдалечено като въведеш \\името_на_отдалечената_машина. Например командата "psexec \\PC2 c:\bin\test.exe" ще стартира програмата test.exe на PC2 в мрежата.

 

Забележка: Ако използваш Windows Vista и имаш активиран UAC ще трябва да повишиш привилегиите на Command Prompt-а (Run as Admin), за да може да работят коректно част от инструментите.

Link to comment
Сподели другаде

  • 1 month later...
Когато се опитам с команда да стартирам файл ,да видя инфото или каквото и да било на отдалеченото PC. Ми казва ,че нямам разрешение за достъп "Make sure that default admin$ share is enabled on MITKO" или "Тhe network path was not found" . Какво трябва да направи този към когото искам да се свържа за да имам достъп до неговия комп и командите задавани от мойто PC да се изпълняват на неговото??? :crosseyes1:
Link to comment
Сподели другаде

  • 3 months later...

Понеже няма опция Edit ,пиша пореденият , пост. :no: И така: След доста опити ,каквото и да пробвам не-мога да осъществя действие на отсрещният компютър ,чрез инструментите PsTools . Ползва се ХП както на моя така и на PS2- компютър ,махнал съм защитните стени ,Remote Registry сервиза е стартиран и на двата компа,дори когато сме свързани и с TeamViewer пак нямам достъп до PS2 чрез PsTools инструментите. Изпълнявам командите от Администраторски акаунт ,а и отсрещният е с такъв.//Ако ли това означава,че имам администраторски привилегии на отдалечената машина" // ????????????????????

Пиша примерно PsList \\ ps2 или PsList \\ ip- то - където ps2 е името на компа с който искам да се свържа но ми изкарва следното съобщение " Маке surе that the Remote registry service is running on the remote system,that you have firewall ports allow RPC access , and your account has read access the following key on the remote system: HKLM\Siftware|Microsoft\Windows NT\CurrentVersion\Perflib" Не-знам дали проблема е в това ,че аз съм зад рутер ,докато колегата е на Ланка??? :yesss: Допускам ,че на отсрещният компютър би трябвало все пак да се направят някакви предварителни настройки за да може да се остъществява достъп до него ,чрез тези инструменти. То в противен случай всеки би могъл да си прави каквото иска с компютрите в нета стига да знае Ip - адреса им .Може да ги изключва и рестартира до когато му е кеф. :bored: Не ми е ясна много ситуацията да си призная?!? Ако ли пък има някаква подобна на тази програма/и която да стартира приложения или килва процеси отдалечено през CMD ,ще бъда благодарен да ме насочите към нея ,защото както стана ясно , PsTools не-мога нещо да ги подкарам за голямо съжаление.

Link to comment
Сподели другаде

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...