Using PsTools to Control Other PC from the Command Line

w dzisiejszej lekcji w naszej serii Geek School obejmującej SysInternals, pokażemy Ci, jak używać zestawu narzędzi PsTools do wykonywania wszelkiego rodzaju zadań administracyjnych zarówno lokalnie, jak i na komputerach zdalnych.,

Jeśli kiedykolwiek chciałeś połączyć się z innym komputerem i uruchomić polecenie, szybko uzyskać informacje o uruchomionych procesach i opcjonalnie je zabić, a nawet zatrzymać usługę na innym komputerze, możesz użyć narzędzi PsTools, aby zrobić wszystkie te rzeczy, a nawet więcej.

oczywiście można użyć pulpitu zdalnego lub podobnej usługi, aby połączyć się z dowolnym komputerem z systemem Windows i rzeczywiście zobaczyć pulpit i zrobić wszystko, co można zrobić lokalnie, ale narzędzia PsTools pozwalają na wykonywanie wielu zadań z linii poleceń – lub jeszcze lepiej, ze skryptu, który można ponownie użyć później.,

są to narzędzia, które najlepiej sprawdzają się w środowisku korporacyjnym, a opanowanie tych narzędzi z pewnością znacznie poprawi Twoją administrację systemem, zaoszczędzi czas i pozwoli Ci robić rzeczy w znacznie mądrzejszy sposób. Robienie rzeczy mądrzej i szybciej jest kluczową umiejętnością dla bycia świetnym sysadminem.

istnieje dwanaście narzędzi w zestawie PsTools, i choć niektóre z nich są niezwykle przydatne, inne zostały zastąpione narzędziami wbudowanymi w nowsze wersje systemu Windows, a jest kilka innych, które nie są przydatne dla większości ludzi., Przejrzymy je wszystkie, abyś zrozumiał, jak działają i dlaczego możesz chcieć użyć każdego z nich.,ent Zaloguj się w linii poleceń

  • pspasswd – zmiana hasła dla użytkowników
  • psping – dość proste narzędzie ping z dodatkowymi funkcjami
  • PsService – lista i dokonać zmian w usługach systemu Windows
  • PsShutdown – wyłącz, Wyloguj lub Zawiesz komputer
  • PsSuspend – zawiesić i wznowić procesy (zamiast ich zabijać)
  • warto zauważyć, że możesz użyć narzędzia takiego jak PsExec do wykonywania wszelkiego rodzaju narzędzi wiersza poleceń na komputerach zdalnych… w tym naprawdę przydatnych, takich jak narzędzie wiersza poleceń Autoruns i wiele innych., Możliwości są nieograniczone, gdy już przyjmiesz moc PsTools.

    wszystkie te narzędzia mogą być używane na komputerach lokalnych, ale są one głównie przydatne do łączenia się ze zdalnymi komputerami i wykonywania na nich poleceń.

    łączenie się ze zdalnymi komputerami ( składnia dla wszystkich narzędzi)

    wszystkie narzędzia mogą być uruchamiane na komputerze lokalnym lub zdalnym, więc wszystkie mają ten sam pierwszy argument dla nazwy komputera w razie potrzeby. Zauważ, że możesz użyć adresu IP, jeśli chcesz zamiast tego., Jeśli pominiesz ten argument, polecenie będzie działać na twoim komputerze lokalnym.

    psinfo \\computername

    Możesz również wyświetlić listę wielu komputerów, takich jak psinfo \\computer1, computer2, computer3, lub możesz umieścić wszystkie nazwy w pliku i odwołać się do psinfo @computerlist.txt. Ostateczną składnią jest psinfo \\*, który działa na wszystkich komputerach w domenie, co prawdopodobnie nie jest czymś, czego będziesz używać na co dzień.,

    Jeśli chcesz połączyć się z alternatywnymi poświadczeniami, ponieważ konto Twojego komputera lokalnego ma inną nazwę użytkownika i hasło niż inny komputer, Możesz użyć opcji-u I-p, chociaż zauważymy, że możesz nie chcieć używać opcji-p w wierszu poleceń z hasłem w poleceniu ze względów bezpieczeństwa. Aktualizacja: od najnowszej wersji PsExec żadne narzędzie nie przekazuje haseł jako czystego tekstu, więc jedynym zmartwieniem jest to, czy ktoś może odczytać twoje pliki skryptów i zobaczyć tam hasło.,

    psinfo \\computername-u „user” -P „Password”

    część polecenia „user” zmieni się na „DOMAIN\user”, jeśli znajdujesz się w środowisku domeny i musisz zmienić aktualnie uruchomiony użytkownik.

    Uwaga: zazwyczaj musisz połączyć się ze zdalnymi komputerami za pomocą konta administratora.

    Konfigurowanie zdalnego dostępu do administracji

    Jeśli jesteś w środowisku domeny, które większość ludzi, którzy muszą korzystać z PsTools będzie, można zignorować tę sekcję całkowicie jak wszystko powinno działać dobrze., Dla każdego z systemem Windows 7, 8 lub Vista w środowisku domowym lub przy użyciu kilku komputerów w biurze bez domeny, trzeba będzie dostosować Kontrolę konta użytkownika na komputerze zdalnym, aby umożliwić pstools prawidłowo uruchomić.

    problem jest dobrze opisany przez Microsoft:

    gdy użytkownik należący do grupy Administratorzy lokalni na docelowym komputerze zdalnym nawiąże zdalne połączenie administracyjne za pomocą polecenia net use * \\remotecomputer\Share$, na przykład, nie połączy się jako pełny administrator., Użytkownik nie ma możliwości wznoszenia się na zdalnym komputerze i nie może wykonywać zadań administracyjnych.

    aby wyjaśnić to w inny sposób, gdy próbujesz połączyć się z innym komputerem i uruchomić coś, co wymaga dostępu administratora, nie ma sposobu, aby wywołać monit UAC i zaakceptować go z komputera, więc nie będzie łączyć się jako administrator.

    a to nie jest nic złego., Nie powinieneś zmieniać tego ustawienia bez pełnego zrozumienia, że będziesz zezwalał na otwarcie złośliwego oprogramowania na rozprzestrzenianie się z jednego komputera na drugi-zakładając, że złośliwe oprogramowanie ma Twoją lokalną nazwę użytkownika i hasło, a to hasło jest takie samo jak na drugim komputerze, a złośliwe oprogramowanie jest takie trudne, co większość nie jest. ale nadal nie jest to coś, co należy lekceważyć.

    i znowu, jeśli jesteś w środowisku domenowym, ten problem nie istnieje i nie trzeba go zmieniać. A jeśli tylko testujesz na kilku maszynach wirtualnych, nie masz się o co martwić.,

    aby dostosować UAC, aby włączyć pstools do uruchomienia, należy otworzyć Edytor rejestru i przejść do następującego klucza:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
    Windows\CurrentVersion\Policies\System

    gdy już tam jesteś, utwórz nowy 32-bitowy DWORD po prawej stronie, nadaj mu nazwę LocalAccountTokenFilterPolicy i wartość 1. Nie musisz ponownie uruchamiać komputera, aby to ustawienie zadziałało.,

    uwaga: aby wyjaśnić, to ustawienie musi się zdarzyć na zdalnym komputerze, z którym się łączysz.

    PsExec

    PsExec jest prawdopodobnie najpotężniejszym narzędziem w zestawie, ponieważ możesz wykonać dowolne polecenie w lokalnym wierszu polecenia, podobnie jak wykonywanie go na komputerze zdalnym. Obejmuje to wszystko, co można uruchomić w wierszu poleceń — można zmieniać wartości rejestru, uruchamiać skrypty i narzędzia lub łączyć się z tego komputera do innego., Wyjście poleceń będzie wyświetlane na komputerze lokalnym, a nie na komputerze zdalnym.

    składnia jest prosta:

    psexec \\computername<opcje> apptorun.exe <argumenty>

    realnie jednak, chcesz również podać nazwę użytkownika i hasło w wierszu poleceń., Na przykład, aby połączyć się z innym komputerem i sprawdzić listę połączeń sieciowych, należy użyć czegoś takiego:

    psexec \\computername-u User-P Password ipconfig

    To polecenie wygeneruje wyjście podobne do następującego:

    Jeśli chcesz przekazać wyjście polecenia do innego polecenia lub chcesz przekierować wyjście do pliku, zwykle wykonujesz coś takiego jak polecenie.exe > wyjście.txt, i to samo dzieje się z PsExec., Tak więc polecenie takie jak poniżej zapisze wyjście netstat-an do pliku w katalogu głównym komputera lokalnego.

    psexec \\computername netstat-an > C:\connections.txt

    Jeśli chcesz przekazać znak> lub | przez połączenie PsExec ze zdalnym komputerem, będziesz musiał użyć znaku^, który jest mało znanym znakiem ucieczki w powłoce poleceń systemu Windows., To oczywiście oznacza, że będziemy musieli użyć powłoki poleceń na zdalnym komputerze, a nie tylko uruchomić proces, abyśmy mogli zrobić przekierowanie lub przewód w pierwszej kolejności. To sprawia, że nasze polecenie wygląda tak (zmiana ścieżki do katalogu domowego, w którym mamy dostęp do zapisu).

    psexec \\computername cmd /c netstat-an ^> C:\users\geek\connections.,txt

    Ten przykład umieści listę otwartych połączeń wygenerowanych przez netstat w katalogu domowym użytkownika na komputerze zdalnym, w pliku o nazwie connections.txt.

    kopiowanie programów na zdalny komputer

    podczas korzystania z PsExec nie ograniczasz się tylko do aplikacji na zdalnym komputerze, a w rzeczywistości możesz uruchamiać wszystko, co masz lokalnie. Na przykład, jeśli chcesz zrobić skanowanie wiersza poleceń Autoruns zdalnego systemu, ale masz tylko autorunsc.exe na twoim komputerze lokalnym, możesz użyć przełącznika-c, aby skopiować aplikację., PsExec usunie narzędzie ze zdalnego systemu po zakończeniu polecenia.

    jest to ważny czas, aby wspomnieć o opcji-accepteula większości narzędzi SysInternals, która upewni się, że EULA została zaakceptowana na komputerze, na którym zostało uruchomione polecenie. Musimy dodać to do autorunsc.polecenie exe albo zawiedzie na zdalnym komputerze.

    psexec \\computername-C autorunsc.,exe-accepteula

    istnieje kilka innych opcji, które określają, czy aplikacja jest zawsze kopiowana, lub czy powinna być kopiowana, jeśli aplikacja lokalna jest wyższą wersją niż zdalna. Możesz po prostu uruchomić psexec z monitu, aby zobaczyć te opcje.

    Uwaga: Jeśli polecenie jest dostępne tylko w wierszu polecenia, musisz dodać cmd /c przed nim. Dotyczy to rur i przekierowań takich jak / i >.,

    interakcja z zalogowanym użytkownikiem na zdalnym komputerze

    możesz użyć przełącznika-i, aby uruchomić aplikację i umożliwić zdalnemu użytkownikowi rzeczywistą interakcję z aplikacją. Prawdopodobnie chciałbyś połączyć to z przełącznikiem-d, który nie czeka na zakończenie zdalnego procesu, zanim PsExec zwróci Ci kontrolę., Na przykład, polecenie to otworzy okno notatnika na zdalnym komputerze:

    psexec \\computername-D-i notatnik

    Możesz również wybrać uruchomienie jako użytkownik systemowy z opcją-s, co może być bardzo niebezpieczne. Na przykład, jeśli chcesz otworzyć Edytor rejestru na własnym komputerze, ale z uprawnieniami na poziomie użytkownika systemu, możesz uruchomić to polecenie.

    psexec-I-d-s regedit.,exe

    w przypadku, gdy zastanawiasz się, tak, to da ci dostęp do wielu rzeczy, które normalnie nie miałbyś dostępu do edycji w rejestrze. I tak, to naprawdę zły pomysł.

    uruchamianie pełnego wiersza polecenia przez PsExec

    tak, pokazaliśmy ci wszystkie te przykłady, jak uruchomić pojedyncze polecenie przez PsExec… i okazuje się, że możesz uruchomić pełną powłokę na komputerze lokalnym, który faktycznie działa na komputerze zdalnym. To tak, jakbyś był na konsoli tego serwera(w większości)., I na szczęście, składnia tego jest naprawdę łatwa(Dodaj nazwę użytkownika, jeśli potrzebujesz).

    psexec \\computername cmd.exe

    gdy to zrobisz, będziesz mieć wiersz polecenia, który jest teraz uruchomiony na zdalnym komputerze.

    wiersz polecenia będzie działał prawie jak normalnie, z tym, że wypełnianie kart w ogóle nie będzie działać, ale to jest w porządku z nami.,

    warto zauważyć, że jeśli chcesz uruchamiać polecenia PowerShell zdalnie na innym komputerze, możesz to zrobić natywnie z pewnymi poprawkami w konfiguracji. Niestety PowerShell nie działa zbyt dobrze z PsExec, chyba że używasz kilka dziwnych obejść, które nie są warte zachodu.

    inne opcje

    polecenie psexec ma mnóstwo innych naprawdę przydatnych opcji, których możesz użyć — każda z nich będzie używana w przestrzeni tuż po \\computername i przed którymkolwiek z pozostałych poleceń., Więc pomyśl psexec \ \ computername-option <zdalne polecenie>.

    Jeśli po prostu uruchomisz polecenie psexec z wiersza bez żadnych dodatkowych przełączników, zobaczysz je wszystkie.

    PsFile

    To polecenie pokazuje pliki, które są obecnie otwierane przez sieć na komputerze lokalnym lub zdalnym i działa podobnie do polecenia Windows „plik netto”. Składnia jest jak każde inne polecenie w zestawie.

    psfile \\computername

    ta nie jest tak fajna jak poprzednia.,

    Jeśli chcesz zamknąć jeden z plików i odłączyć osobę od zasobu, możesz zamknąć połączenie za pomocą opcji-c, chociaż może to spowodować utratę danych, ponieważ plik nie został poprawnie zamknięty.

    psfile \\computername <ścieżka> -c

    PsGetSid

    wyświetla identyfikator bezpieczeństwa komputera lub użytkownika i pobiera standardowe argumenty., To narzędzie jest prawdopodobnie przydatne tylko w bardzo konkretnych scenariuszach, z których osobiście nie spotkaliśmy żadnego. Więc spróbuj raz i zapomnij o tym, dopóki nie będziesz musiał go kiedyś użyć.

    PsInfo

    To polecenie wyświetla wiele przydatnych informacji na temat systemu, w tym czas pracy, co jest świetną zabawą. Możesz go uruchomić lokalnie, aby go przetestować, po prostu wpisując psinfo w wierszu polecenia, zakładając, że Twoje narzędzia SysInternals znajdują się w ścieżce.,

    Jeśli chcesz uzyskać o wiele więcej informacji z PsInfo, a Wiem, że to robisz, możesz użyć następujących przełączników, aby dodać informacje o dysku (-d) i poprawki (-h) oraz listę zainstalowanych aplikacji i ich wersji (- s).,

    psinfo-d-h-s

    daje to o wiele więcej informacji, nawet na prawie pustej maszynie wirtualnej:

    Możesz także uruchomić psinfo zdalnie dodając nazwę komputera i ewentualnie nazwę użytkownika przełącza… ale jest jeden duży problem: nie będzie działać, jeśli usługa Remote Registry nie jest włączona. Przejdź do końca artykułu, w którym mówimy o tym, jak włączyć go na zdalnym komputerze.,

    PsKill

    To polecenie jest bardzo proste — zabija procesy, używając nazwy lub ID, i możesz użyć przełącznika-t, aby opcjonalnie zabić całe drzewo procesów.

    pskill \\computername <PID lub nazwa>

    problem z PsKill polega na tym, że najnowsze wersje systemu Windows mają bardzo potężne narzędzie do zabijania zadań wbudowane w nazwie taskkill, które ma o wiele więcej funkcji.,

    PsList

    To narzędzie jest niezwykle proste, ale dość przydatne do szybkiego przeglądania komputera i sprawdzania, czy coś zużywa zbyt dużo procesora lub pamięci. Możesz podać nazwę lub część nazwy w wierszu poleceń, aby zawęzić listę do tylko problemowej aplikacji, a możesz zobaczyć prawie wszystkie informacje, w tym wątki.

    Uwaga: Aby to narzędzie działało na komputerze zdalnym, musisz mieć włączoną usługę Rejestru zdalnego. Pamiętaj, aby przeczytać do końca lekcji, ponieważ wyjaśniamy, jak sobie z tym poradzić później.,

    PsLoggedOn

    To narzędzie wyświetla listę kont, które są zalogowane na komputerze lub łączą się zdalnie. Jest to dość proste i w dużej mierze przydatne w środowisku administratora systemu.

    PsLogList

    To narzędzie wyświetla lokalny lub zdalny dziennik zdarzeń w wierszu poleceń i istnieje wiele opcji, które można użyć do filtrowania danych.,

    psloglist \\system komputerowy

    dostępne są również opcje-h, -d I-m, które pozwalają zawęzić listę zdarzeń do ostatnich x godzin, dni lub minut. Opcja-N wyświetla listę rekordów x, podczas gdy przełącznik-r odwraca kolejność, więc najnowsze rekordy będą na dole wyjścia. Ostatnia opcja, którą w tym przykładzie ustawiliśmy na „System”, nie jest w rzeczywistości konieczna — jeśli ją pominiesz, Dziennik systemowy będzie zawsze wyciągany, ale możesz zmienić go na Application lub Security, aby pobrać te dzienniki.,

    warto zauważyć, że jeśli masz dostęp administratora do innego komputera, możesz po prostu otworzyć przeglądarkę zdarzeń i wybrać Połącz z menu Akcja. Wprowadź nazwę komputera na liście, w razie potrzeby zmień poświadczenia i uzyskaj dostęp do dzienników zdarzeń w ten sposób.

    jedynym scenariuszem, w którym możemy naprawdę zobaczyć, że PsLogList jest naprawdę przydatny, jest to, że chcesz skryptować coś, aby wykonać akcję w przypadku określonych wiadomości w dzienniku zdarzeń.,

    PsPasswd

    To narzędzie umożliwia zmianę haseł dla użytkowników, zarówno lokalnych, jak i zdalnych. Składnia jest taka sama jak Wszystko inne:

    Pspasswd \\computer-u User-p hasło <AccountToChange> <newpassword>

    zaletą tego narzędzia jest to, że możesz zmieniać hasła dla wielu komputerów jednocześnie, i działa również w środowisku domeny.,

    PsPing

    To narzędzie pingi, sprawdza porty i testuje opóźnienia i przepustowość. Całkiem proste.,

    psping <nazwa serwera>

    lub możesz sprawdzić łączność z portem, dodając numer portu w następujący sposób:

    psping <nazwa serwera>:80

    istnieje mnóstwo zaawansowanych opcji tego polecenia, które prawdopodobnie będziesz chciał sprawdzić, jeśli potrzebujesz rozwiązać problemy z siecią.,

    PsService

    To narzędzie umożliwia obsługę usług systemu Windows z poziomu wiersza polecenia. Jest to naprawdę bardzo łatwe w użyciu — składnia działa tak:

    psservice \\computername <polecenie> <argumenty>

    listę poleceń można znaleźć, patrząc na pomoc /? opcje, ale jest kilka opcji, z których będziesz korzystać więcej niż reszta.,

  • setconfig – Ustawia konfigurację
  • start – uruchamia usługę
  • stop – zatrzymuje usługę
  • restart – zatrzymuje, a następnie restartuje usługę
  • pause – zatrzymuje usługę
  • cont – kontynuuje wstrzymaną usługę
  • depend – wylicza usługi, które zależą od podanej
  • find – wyszukuje wystąpienie usługa w sieci
  • bezpieczeństwo – zgłasza uprawnienia zabezpieczeń przypisane do usługi
  • w szczególności opcje Start/stop | Pause | restart | cont są naprawdę proste i łatwe do zrozumienia., Na przykład w poniższym poleceniu możesz zastąpić „start” dowolnym z tych innych poleceń.

    psservice \\computername start <nazwa usługi>

    Pozostałe opcje mogą być użyte do zapytania więcej informacji o usłudze lub zmień konfigurację.

    Uwaga: wbudowany sc.narzędzie exe ma mnóstwo przydatnych funkcji, które nakładają się na to narzędzie. Główną różnicą jest to, że PsService jest nieco bardziej przyjazny dla użytkownika.,

    PsShutdown

    To narzędzie pozwala na wyłączenie, wylogowanie, a nawet włączenie komputera w tryb uśpienia. Problem polega na tym, że nie jest lepszy niż wbudowane wyłączenie.exe narzędzie, i faktycznie został zaprojektowany dla systemu Windows XP, więc zaleca się używać wbudowanego narzędzia zamiast w większości przypadków.

    jedyną opcją, która zapewnia PsShutdown, której nie można uzyskać w inny sposób, jest przełącznik (-d), aby włączyć komputer w tryb uśpienia, który może być przydatny.,

    psshutdown \\computername-d

    Możesz również użyć opcji-h, aby umieścić komputer w trybie hibernacji.

    PsSuspend

    To narzędzie jest bardzo podobne do PsKill, ale robi coś, czego wbudowane narzędzie Taskkill po prostu nie może-możesz zawiesić procesy, a nie je zabić, co może być bardzo przydatne, jeśli chcesz tymczasowo zatrzymać proces obciążający CPU przed uruchomieniem podczas wykonywania zadania sysadmin.,

    zawieszenie procesu jest niezwykle proste:

    pssuspend \\computer<PID lub nazwa>

    i wznowienie tego procesu jest równie proste — wystarczy dodać przełącznik-R.,

    pssuspend \\computer-r <PID lub nazwa>

    gdy narzędzia nie łączą się z powodu zdalnego rejestru

    niektóre z tych narzędzi, w tym psinfo, pslist, psloglist i psloggedon, wymagają włączenia usługi Remote Registry Service na zdalnym komputerze i nie jest ona domyślnie włączona we współczesnych wersjach systemu Windows.

    dobrą wiadomością jest to, że ten problem można łatwo naprawić i nie musisz zostawiać włączonego Rejestru zdalnego., Po prostu uruchom to polecenie za pomocą PsService, aby uruchomić usługę:

    psservice \\computername Uruchom RemoteRegistry

    a następnie, gdy skończysz z tym, co robisz z PsInfo lub PsList, możesz zatrzymać usługę ponownie za pomocą tego polecenia:

    psservice \\ComputerName stop remoteregistry

    proste rozwiązania są najlepsze, prawda?

    następna lekcja

    dołącz do nas jutro, kiedy zajmiemy się plikami i narzędziami dyskowymi oraz kilkoma ciekawymi rzeczami.

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *