rpcclient
1

# rpcclient

narzędzie developera do testowania funkcji MS-RPC po stronie klienta

          rpcclient
          serwer
          -A nazwapliku
          -c <tekst polecenia>
          -d poziomdebugowania
          -h
          -l pliklogu
          -N
          -s <plik konfiguracyjny smb>
          -U nazwauzytkownika[%haslo]
          -W gruparobocza

## OPIS

Ten program jest częścią pakietu Samba.

`rpcclient` jest programem dla developerów, do wykonywania rożnych funkcji MS-RPC. Jego głównym zastosowaniem jest testowanie własnej implementacji serwera MS-RPC Samby. Tym niemniej, wielu administratorów napisało skrypty wykorzystujące go do zarządzania klientami Windows NT z ich stacji roboczej UNIX.

## OPCJE

serwer

  nazwa NetBIOS serwera do którego chcesz się podłączyc. Serwer może być jakimkolwiek serwerem SMB/CIFS. Nazwa jest odwzorowana przy użyciu linii `name resolve order` lub przy użyciu opcji z `smb.conf(5)`.

-A nazwapliku

  Ta opcja pozwala ci określić plik z którego ma być odczytana nazwa użytkownika i hasło użyte do połączenia. Format pliku to

      	  username = <wartosc>
      	  password = <wartosc>
      	  domain   = <wartosc>

  Upewnij się, że ustawione uprawnienia do pliku zabraniają dostępu niechcianym użytkownikom.

-c 'tekst polecenia'

  wykonuje polecenia oddzielone średnikami (wymienione dalej).

-d poziomdebugowania

  ustawia poziom debugowania. Poziom 0 jest najmniejszy, a 100 jest największy. Powinien być ustawiony na 100 jeśli planujesz wysłać raport o błędzie do zespołu Samba (zobacz `BUGS.txt`).

-h

  Wyświetl podsumowanie opcji linii polecenia.

-l pliklogu

  Nazwa dla plików logu/debugowania. Rozszerzenie ".klient" zostanie dopisane. Plik logu nigdy nie jest usuwany przez klienta.

-N

  mówi programowi `rpcclient`, żeby nie pytał o hasło. Domyślnie, `rpcclient` będzie pytał użytkownika o hasło. Zobacz też opcję `-U`.

-s <plik konfiguracyjny smb>

  Określa lokalizację pliku `smb.conf` .

-U nazwaużytkownika[%haslo]

  Ustawia nazwę SMB użytkownika lub nazwę użytkownika i hasło.

  Jeśli %hasło nie jest podane, użytkownik będzie o nie zapytany. Klient najpierw sprawdzi zmienną środowiskową `USER`, potem zmienną `LOGNAME` i jeśli ktoraś istnieje, jest konwertowana do dużych liter. Jeśli te zmienne nie zostaną znalezione, nazwą użytkownika jest `GUEST`.

  Trzecią opcją jest użycie pliku referencji, który zawiera nazwę użytkownika i hasło jako czysty tekst. Ta opcja jest dostarczona przede wszystkim do skryptów w których admin nie chce podawać referencji w linii poleceń albo poprzez zmienne środowiskowe. Jeśli ta metoda zostanie użyta, upewnij się że uprawnienia do pliku ograniczają dostęp przed niechcianymi użytkownikami. Zobacz `-A` aby dowiedzieć się szczegółów.

  Bądź ostrożny, co do umieszczania haseł w skryptach. W wielu systemach linia poleceń działającego procesu może być widoczna poprzez komendę `ps`. Dla bezpieczeństwa zawsze pozwól programowi `rpcclient`, aby zapytał cię o hasło i wpisz je bezpośrednio.

-W domena

  Ustawia domenę SMB dla nazwy użytkownika. Unieważnia to domyślne ustawienie domeny, która jest domeną zdefiniowaną w `smb.conf`. Jeśli podana domena jest taka sama jak nazwa NetBIOS serwera spowoduje to, że klient zostanie zalogowany przy użyciu lokalnego SAM serwera (w przeciwieństwie do SAM domeny).

## POLECENIA

LSARPC

- `lsaquery`

- `lookupsids` - Odwzoruj listę SIDów na nazwy użytkowników.

- `lookupnames` - Odwzoruj listę nazw użytkowników na SIDy.

- `enumtrusts`

SAMR

- `queryuser`

- `querygroup`

- `queryusergroups`

- `querygroupmem`

- `queryaliasmem`

- `querydispinfo`

- `querydominfo`

- `enumdomgroups`

SPOOLSS

- `adddriver <arch> <config>` - Wykonuje wywołanie RPC AddPrinterDriver() aby zainstalować informacje o sterowniku drukarki na serwerze. Zwróć uwagęż, że pliki sterownika powinny już być w katalogu zwracanym przez `getdriverdir`. Możliwe wartości dla `arch` są takie same, jak w poleceniu `getdriverdir`. Parametr `config` jest zdefiniowany jak poniżej.

      	      Dluga Nazwa Drukarki:\
      	      Nazwa Pliku Sterownika:\
      	      Nazwa Pliku z Danymi:\
      	      Nazwa Pliku Konfiguracyjnego:\
      	      Nazwa Pliku Pomocy:\
      	      Nazwa Monitora Jezyka:\
      	      Domyslny Typ Danych:\
      	      lista Plikow oddzielonych przecinkami

  Każde puste pole powinno być wprowadzone jako łańcuch "NULL".

  Samba nie potrzebuje wspierać koncepcji Monitorów Drukarki (Print Monitors, przyp.tłum.) ponieważ dotyczą one tylko lokalnych drukarek, których sterownik potrafi korzystać z dwukierunkowego połączenia do komunikacji. To pole powinno być "NULL". Na zdalnym serwerze wydruku NT, Monitor Drukarki dla sterownika musi być zainicjalizowany przed dodaniem sterownika albo wywołanie RPC zakończy się błędem.

- `addprinter <nazwadrukarki> <nazwawspoludzialu> <nazwasterownika> <port>` - Dodaj drukarkę na zdalnym serwerze. Będzie ona automatycznie współdzielona. Bądź świadom faktu, że sterownik drukarki musi już być zainstalowany na serwerze (zobacz `adddriver`) a `port` musi być poprawną nazwą portu (zobacz `enumports`).

- `deldriver` - Usuń określony sterownik drukarki dla wszystkich architektur. Nie usuwa to z serwera właściwych plików sterownika, tylko wpis na liście sterowników serwera.

- `enumdata` - Wymienia wszystkie dane na temat ustawienia drukarki przechowywane na serwerze. W klientach Windows NT, wartości te są przechowywane w rejestrze, podczas gdy serwery Samba przechowują je w TDB drukarek. To polecenie odpowiada funkcji GetPrinterData() z MS Platform SDK (* To polecenie nie jest obecnie zaimplementowane).

- `enumjobs <drukarka>` - Wylicza zadania do wydruku i status podanej drukarki. To polecenie odpowiada funkcji EnumJobs() z MS Platform SDK (* To polecenie nie jest obecnie zaimplementowane).

- `enumports [poziom]` - Wykonuje wywołanie EnumPorts przy użyciu określonego poziomu informacyjnego. Obecnie, tylko poziom 1 i 2 są wspierane.

- `enumdrivers [poziom]` - Wykonuje wywołanie EnumPrinterDrivers(). Wymienia ono różne zainstalowane sterowniki drukarek dla wszystkich architektur. Zajrzyj do dokumentacji MS Platform SDK aby dowiedzieć się więcej szczegółów na temat różnych flag i opcji wywołania. Obecnie wspierane są poziomy informacyjne 0, 1 i 2.

- `enumprinters [poziom]` - Wykonuje wywołanie EnumPrinters(). Wymienia ono różne zainstalowane i współdzielone drukarki. Zajrzyj do dokumentacji MS Platform SDK po więcej szczegółów na temat różnych flag i opcji wywołania. Obecnie wspierane są poziomy informacyjne 0, 1 i 2.

- `getdata <printername>` - Pobiera dane na temat ustawień danej drukarki. Zobacz polecenie `enumdata` aby uzyskać więcej informacji. Polecenie to odpowiada funkcji GetPrinterData() z MS Platform SDK (* To polecenie nie jest obecnie zaimplementowane).

- `getdriver <nazwadrukarki>` - Pobiera informacje o sterowniku (takie jak plik sterownika, plik konfiguracyjny, pliki zależne, itd.) dla danej drukarki. To polecenie odpowiada funkcji GetPrinterDriver() z MS Platform SDK.

- `getdriverdir <arch>` - Wykonuje wywołanie RPC GetPrinterDriverDirectory() aby pobrać nazwę współdzielonego zasobu SMB i podkatalog przechowujący pliki sterownika drukarki dla danej architektury. Możliwymi wartościami dla `arch` są "Windows 4.0" (dla Windows 95/98), "Windows NT x86", "Windows NT PowerPC", "Windows Alpha_AXP" i "Windows NT R4000".

- `getprinter <nazwadrukarki>` - Pobiera bieżące informacje o drukarce. To polecenie odpowiada funkcji GetPrinter() z MS Platform SDK.

- `openprinter <nazwadrukarki>` - Wykonuje wywołania RPC OpenPrinterEx() i ClosePrinter() na podanej drukarce.

- `setdriver <nazwadrukarki> <nazwasterownika>` - Wykonuje polecenie SetPrinter() aby zaktualizować sterownik drukarki przypisany do zainstalowanej drukarki. Sterownik drukarki musi już być poprawnie zainstalowany na serwerze druku.

  Zobacz też polecenia `enumprinters` i `enumdrivers` uzyskujące listę zainstalowanych drukarek i sterowników.

OGÓLNE OPCJE

- `debuglevel` - Ustawia bieżący poziom debugowania używany do rejestrowania informacji.

- `help (?)` - Wyświetla listę wszystkich znanych poleceń lub rozszerszoną pomoc na temat konkretnego polecenia.

- `quit (exit)` - Wychodzi z programu `rpcclient`.

## BŁĘDY

`rpcclient` jest zaprojektowany jako developerskie narzędzie testowe i może nie być odporny w pewnych obszarach (takich jak parsowanie linii poleceń). Wiadomo, że generuje "core dump" podczas awarii, kiedy nieprawidłowe parametry są przekazywane interpreterowi.

Z oryginalnej strony podręcznika Luke Leighton'a:

"UWAGA! Kod MSRPC poprzez SMB jest rozwijany poprzez sprawdzanie tego co jest przesyłane przez sieć. Żadna dokumentacja o tym, jak MSRPC przez SMB działa, lub jak poszczególne usługi MSRPC działają, nie jest dostępna od oryginalnych twórców (Microsoft). Zostało już demonstrowane (i raportowane), że implementacja tych usług w wykonaniu Microsoft'u jest ... trochę zwariowana w pewnych miejscach.

Proces rozwijania implementacji w Sambie jest również trochę nierównomierny, i w miarę jak coraz więcej usług jest rozumianych, może to nawet dać w rezultacie wersje `smbd(8)` i `rpcclient(1)` które są niekompatybilne z niektórymi poleceniami lub usługami. Dodatkowo, developerzy wysyłają raporty do Microsoft'u i problemy znalezione lub sygnalizowane Microsoft'owi są poprawiane w Service Pack'ach, co może owocować niekompatybilnościami."

## WERSJA

Ta strona podręcznika jest poprawna dla wersji 2.2 pakietu Samba.

## AUTOR

Pierwotnie, oprogramowanie Samba i programy dodatkowe zostały stworzone przez Andrew Tridgella. Samba jest teraz rozwijana przez Zespół Samba jako projekt Open Source w sposób podobny do jądra Linux.

Pierwotnie, strona podręcznika była napisana przez Matthew Geddesa, Luke'a Kennth Casson Leightona i przepisana przez Geralda Cartera. Konwersja do DocBook dla Samba 2.2 została wykonana przez Geralda Cartera. Tłumaczenie na język polski oraz konwersję polskiej wersji do DocBook wykonał Rafał Szcześniak.