<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<refentry ID="rpcclient" lang="pl">

<refmeta>
    <refentrytitle>rpcclient</refentrytitle>
    <manvolnum>1</manvolnum>
</refmeta>

<refnamediv>
    <refname>rpcclient</refname>
    <refpurpose>narzędzie developera do testowania funkcji
    MS-RPC po stronie klienta</refpurpose>
</refnamediv>

<refsynopsisdiv>
    <cmdsynopsis>
      <command>rpcclient</command>
      <arg choice="req">serwer</arg>
      <arg choice="opt">-A nazwapliku</arg>
      <arg choice="opt">-c &lt;tekst polecenia&gt;</arg>
      <arg choice="opt">-d poziomdebugowania</arg>
      <arg choice="opt">-h</arg>
      <arg choice="opt">-l pliklogu</arg>
      <arg choice="opt">-N</arg>
      <arg choice="opt">-s &lt;plik konfiguracyjny smb&gt;</arg>
      <arg choice="opt">-U nazwauzytkownika[%haslo]</arg>
      <arg choice="opt">-W gruparobocza</arg>
    </cmdsynopsis>
</refsynopsisdiv>

<refsect1>
      <title>OPIS</title>
      
      <para>Ten program jest częścią pakietu <ulink url="samba.7.pl.html">
      Samba</ulink>.</para>

      <para><command>rpcclient</command> 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.</para>
</refsect1>

<refsect1>
    <title>OPCJE</title>

    <variablelist>
      <varlistentry>
	<term>serwer</term>
	<listitem><para>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 <ulink url="smb.conf.5.pl.html#NAMERESOLVEORDER">
	      <parameter>name resolve order</parameter></ulink> lub przy użyciu
	    opcji z <filename>smb.conf(5)</filename>.</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>-A nazwapliku</term>
	<listitem><para>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 </para>
	  
	  <para><programlisting>
	  username = &lt;wartosc&gt;
	  password = &lt;wartosc&gt;
	  domain   = &lt;wartosc&gt;
	  </programlisting></para>

	  <para>Upewnij się, że ustawione uprawnienia do pliku zabraniają
	    dostępu niechcianym użytkownikom.</para></listitem>
      </varlistentry>

      <varlistentry>
	<term>-c 'tekst polecenia'</term>
	<listitem><para>wykonuje polecenia oddzielone średnikami
	    (wymienione dalej).</para></listitem>
      </varlistentry>
	  
      <varlistentry>
	<term>-d poziomdebugowania</term>
	<listitem><para>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 <filename>BUGS.txt</filename>).</para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>-h</term>
	<listitem><para>Wyświetl podsumowanie opcji linii polecenia.
	  </para></listitem>
      </varlistentry>

      <varlistentry>
	<term>-l pliklogu</term>
	<listitem><para>Nazwa dla plików logu/debugowania. Rozszerzenie
	    ".klient" zostanie dopisane. Plik logu nigdy nie jest usuwany
	    przez klienta.</para></listitem>
      </varlistentry>

      <varlistentry>
	<term>-N</term>
	<listitem><para>mówi programowi <command>rpcclient</command>, żeby
	    nie pytał o hasło. Domyślnie, <command>rpcclient</command>
	    będzie pytał użytkownika o hasło. Zobacz też opcję <parameter>
	      -U</parameter>.</para></listitem>
      </varlistentry>

      <varlistentry>
	<term>-s &lt;plik konfiguracyjny smb&gt;</term>
	<listitem><para>Określa lokalizację pliku <filename>smb.conf
	    </filename>.</para></listitem>
      </varlistentry>

      <varlistentry>
	<term>-U nazwaużytkownika[%haslo]</term>
	<listitem><para>Ustawia nazwę SMB użytkownika lub nazwę użytkownika
	    i hasło.</para>

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

	  <para>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 <parameter>-A</parameter> aby dowiedzieć się
	    szczegółów.</para>

	  <para>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ę
	    <command>ps</command>. Dla bezpieczeństwa zawsze pozwól programowi
	    <command>rpcclient</command>, aby zapytał cię o hasło i wpisz je
	    bezpośrednio.</para>
	</listitem>
      </varlistentry>

	<varlistentry>
	  <term>-W domena</term>
	  <listitem><para>Ustawia domenę SMB dla nazwy użytkownika. Unieważnia
	  to domyślne ustawienie domeny, która jest domeną zdefiniowaną w <filename>
	  smb.conf</filename>. 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).
	  </para></listitem>
	</varlistentry>

      </variablelist>
</refsect1>

<refsect1>
      <title>POLECENIA</title>

      <para><emphasis>LSARPC</emphasis></para>
      <itemizedlist>
	<listitem><para><command>lsaquery</command></para></listitem>
	<listitem><para><command>lookupsids</command> - Odwzoruj listę SIDów na nazwy
	użytkowników.</para></listitem>
	<listitem><para><command>lookupnames</command> - Odwzoruj listę nazw
	  użytkowników na SIDy.</para></listitem>
	<listitem><para><command>enumtrusts</command></para></listitem>
      </itemizedlist>

      <para><emphasis>SAMR</emphasis></para>
      <itemizedlist>
	<listitem><para><command>queryuser</command></para></listitem>
	<listitem><para><command>querygroup</command></para></listitem>
	<listitem><para><command>queryusergroups</command></para></listitem>
	<listitem><para><command>querygroupmem</command></para></listitem>
        <listitem><para><command>queryaliasmem</command></para></listitem>
        <listitem><para><command>querydispinfo</command></para></listitem>
        <listitem><para><command>querydominfo</command></para></listitem>
        <listitem><para><command>enumdomgroups</command></para></listitem>
      </itemizedlist>

      <para><emphasis>SPOOLSS</emphasis></para>
      <itemizedlist>
	<listitem>
	  <para><command>adddriver &lt;arch&gt; &lt;config&gt;</command>
	    - 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 <command>getdriverdir</command>. Możliwe
	    wartości dla <parameter>arch</parameter> są takie same, jak w poleceniu
	    <command>getdriverdir</command>. Parametr <parameter>config</parameter>
	    jest zdefiniowany jak poniżej.</para>

	  <para><programlisting>
	      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
	  </programlisting></para>

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

	  <para>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.</para></listitem>

        <listitem><para><command>addprinter &lt;nazwadrukarki&gt; &lt;nazwawspoludzialu&gt;
	    &lt;nazwasterownika&gt; &lt;port&gt;</command>
	  - 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 <command>adddriver</command>) a <parameter>port</parameter>
	  musi być poprawną nazwą portu (zobacz <command>enumports</command>).</para>
	</listitem>

        <listitem><para><command>deldriver</command> - 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.</para>
        </listitem>

	<listitem><para><command>enumdata</command> - 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).</para>
	</listitem>

	<listitem><para><command>enumjobs &lt;drukarka&gt;</command> - Wylicza
	    zadania do wydruku i status podanej drukarki. To polecenie odpowiada
	    funkcji EnumJobs() z MS Platform SDK (* To polecenie nie jest obecnie
	    zaimplementowane).</para>
	</listitem>

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

	<listitem><para><command>enumdrivers [poziom]</command> - 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.</para>
	</listitem>

	<listitem><para><command>enumprinters [poziom]</command> - 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.</para>
	</listitem>

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

	<listitem><para><command>getdriver &lt;nazwadrukarki&gt;</command> - 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. </para>
	</listitem>

	<listitem><para><command>getdriverdir &lt;arch&gt;</command> - 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 <parameter>arch</parameter> są "Windows 4.0"
	    (dla Windows 95/98), "Windows NT x86", "Windows NT PowerPC", "Windows Alpha_AXP"
	    i "Windows NT R4000".</para>
	</listitem>

	<listitem><para><command>getprinter &lt;nazwadrukarki&gt;</command> - Pobiera
	    bieżące informacje o drukarce. To polecenie odpowiada funkcji GetPrinter()
	    z MS Platform SDK. </para>
	</listitem>

	<listitem><para><command>openprinter &lt;nazwadrukarki&gt;</command> - Wykonuje
	    wywołania RPC OpenPrinterEx() i ClosePrinter() na podanej drukarce.</para>
	</listitem>

	<listitem><para><command>setdriver &lt;nazwadrukarki&gt; &lt;nazwasterownika&gt;
	      </command> - Wykonuje polecenie SetPrinter() aby zaktualizować sterownik
	    drukarki przypisany do zainstalowanej drukarki. Sterownik drukarki musi już
	    być poprawnie zainstalowany na serwerze druku.</para>

	  <para> Zobacz też polecenia <command>enumprinters</command> i <command>
	      enumdrivers</command> uzyskujące listę zainstalowanych drukarek i
	      sterowników.</para>
	</listitem>

      </itemizedlist>


      <para><emphasis>OGÓLNE OPCJE</emphasis></para>

      <itemizedlist>
	<listitem><para><command>debuglevel</command> - Ustawia bieżący poziom
	    debugowania używany do rejestrowania informacji.</para>
	</listitem>

	<listitem><para><command>help (?)</command> - Wyświetla listę wszystkich
	  znanych poleceń lub rozszerszoną pomoc na temat konkretnego polecenia.</para>
	</listitem>

	<listitem><para><command>quit (exit)</command> - Wychodzi z  programu
	    <command>rpcclient</command>.</para>
	</listitem>
    </itemizedlist>

</refsect1>

<refsect1>
      <title>BŁĘDY</title>

      <para><command>rpcclient</command> 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.</para>

      <para>Z oryginalnej strony podręcznika Luke Leighton'a:</para>
      
      <para><emphasis>"UWAGA!</emphasis> 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.</para>

      <para>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 <command>smbd(8)</command> i <command>rpcclient(1)</command> 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."
      </para>

</refsect1>

<refsect1>
    <title>WERSJA</title>

    <para>Ta strona podręcznika jest poprawna dla wersji 2.2 pakietu
      Samba.</para>
</refsect1>

<refsect1>
      <title>AUTOR</title>

      <para>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.</para>

      <para>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.</para>
</refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->
