Aktywowanie serwera połączeń KD
Serwer połączenia KD dołączony do narzędzi debugowania dla systemu Windows nosi nazwę KdSrv (kdsrv.exe). Aby aktywować serwer połączeń KD, otwórz okno wiersza polecenia z podwyższonym poziomem uprawnień (Uruchom jako administrator) i wprowadź kdsrv polecenie.
Uwaga Można aktywować serwer połączeń KD bez podniesionych uprawnień, a debugowanie klientów będzie mogło nawiązać połączenie z serwerem. Jednak klienci nie będą mogli odnaleźć serwera połączenia KD, chyba że został aktywowany z podwyższonym poziomem uprawnień. Aby uzyskać informacje na temat odnajdywania serwerów debugowania, zobacz Wyszukiwanie serwerów połączeń KD.
Ważny
Podczas korzystania z debugowania zdalnego należy wziąć pod uwagę ważne zagadnienia dotyczące zabezpieczeń. Aby uzyskać więcej informacji, w tym informacje na temat włączania trybu bezpiecznego, zobacz Zabezpieczenia podczas debugowania zdalnego i zagadnienia dotyczące zabezpieczeń dla narzędzi debugowania systemu Windows.
Usługa KdSrv obsługuje kilka protokołów transportowych: nazwane potoki (NPIPE), TCP, port COM, bezpieczny potok (SPIPE) i secure sockets layer (SSL).
Składnia wiersza polecenia KdSrv zależy od używanego protokołu. Istnieją następujące opcje:
zalecane metody połączenia z dodatkowymi zabezpieczeń
kdsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password]
kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password]
kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password]
Niezabezpieczone metody połączenia
kdsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable]
kdsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable]
kdsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6]
kdsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password]
Parametry
Parametry w poprzednich poleceniach mają następujące możliwe wartości:
potok =PipeName
Gdy jest używany protokół NPIPE lub SPIPE, PipeName to ciąg, który będzie służyć jako nazwa potoku. Każda nazwa potoku powinna identyfikować unikatowy serwer przetwarzania. Jeśli spróbujesz ponownie użyć nazwy potoku, zostanie wyświetlony komunikat o błędzie.
PipeName nie może zawierać spacji ani cudzysłowów.
PipeName może zawierać liczbowykod formatu stylu, taki jak %x lub %d. Zostanie to zastąpione identyfikatorem procesu KdSrv. Drugi taki kod zostanie zastąpiony identyfikatorem wątku KdSrv.
port
Gdy jest używany protokół TCP lub SSL, Socket jest numerem portu gniazda.
Istnieje również możliwość określenia zakresu portów rozdzielonych dwukropkiem. KdSrv sprawdzi każdy port w tym zakresie, aby sprawdzić, czy jest wolny. Jeśli znajdzie bezpłatny port i nie wystąpi błąd, serwer połączenia KD zostanie utworzony. Klient inteligentny będzie musiał określić rzeczywisty port używany do nawiązywania połączenia z serwerem. Aby określić rzeczywisty port, użyj dowolnej metody opisanej w wyszukiwanie serwerów połączeń KD; po wyświetleniu tego serwera połączenia KD port będzie po dwóch numerach rozdzielonych dwukropkiem. Pierwsza liczba będzie rzeczywistym używanym portem; drugi można zignorować. Jeśli na przykład port został określony jako port =51:60, a faktycznie użyto portu 53, wyniki wyszukiwania będą pokazywać wartość "port=53:60". (Jeśli używasz parametru clicon do ustanowienia połączenia odwrotnego, klient inteligentny może określić zakres portów w ten sposób, podczas gdy serwer połączenia KD musi określić rzeczywisty używany port).
clicon=Client
Gdy jest używany protokół TCP lub SSL i
Ponieważ serwer połączenia KD szuka jednego określonego klienta, nie można połączyć wielu klientów z serwerem, jeśli używasz tej metody. Jeśli połączenie zostanie odrzucone lub zostanie przerwane, konieczne będzie ponowne uruchomienie serwera przetwarzania. Serwer połączenia KD z odwrotnym połączeniem nie będzie wyświetlany, gdy ktoś używa opcji wiersza polecenia -QR, aby wyświetlić wszystkie aktywne serwery.
Uwaga Gdy interfejs wiersza polecenia jest używany, najlepiej jest uruchomić klienta inteligentnego przed utworzeniem serwera połączenia KD, chociaż jest również dozwolona zwykła kolejność (serwer przed klientem).
port =COMPort
Gdy jest używany protokół COM, COMPort określa port COM do użycia. Prefiks "COM" jest opcjonalny — na przykład dopuszczalne są zarówno wartości "com2" i "2".
baud=BaudRate
Gdy jest używany protokół COM, BaudRate określa szybkość transmisji, z jaką zostanie uruchomione połączenie. Dozwolona jest szybkość transmisji obsługiwana przez sprzęt.
kanał =COMChannel
Jeśli jest używany protokół COM, COMChannel określa kanał COM, który ma być używany w komunikacji z klientem debugowania. Może to być dowolna wartość z zakresu od 0 do 254 włącznie. Można użyć jednego portu COM dla wielu połączeń przy użyciu różnych numerów kanałów. (Różni się to od użycia portów COM dla debugowania — w takiej sytuacji nie można używać kanałów w porcie COM).
Jeśli jest używany protokół SSL lub SPIPE, Protocol określa protokół Secure Channel (S-Channel). Może to być dowolny z ciągów tls1, pct1, ssl2 lub ssl3.
Cert
Jeśli jest używany protokół SSL lub SPIPE, certyfikat określa certyfikat. Może to być nazwa certyfikatu lub odcisk palca certyfikatu (ciąg cyfr szesnastkowych podanych przez przystawkę certyfikatu). Jeśli jest używana składnia certuser=Cert, debuger wyszuka certyfikat w magazynie systemowym (magazyn domyślny). Jeśli jest używana składnia machuser=Cert, debuger wyszuka certyfikat w magazynie maszyn. Określony certyfikat musi obsługiwać uwierzytelnianie serwera.
ukryte
Zapobiega wyświetlaniu serwera połączeń KD, gdy ktoś używa opcji wiersza polecenia -QR, aby wyświetlić wszystkie aktywne serwery.
password=Password
Wymaga, aby klient inteligentny podał określone hasło w celu nawiązania połączenia z serwerem połączeń KD.
hasło może być dowolnym ciągiem alfanumerycznym, maksymalnie dwunastoma znakami.
Ważny
Użycie hasła z protokołem TCP, NPIPE lub COM zapewnia tylko niewielką ilość ochrony, ponieważ hasło nie jest szyfrowane. Jeśli używasz hasła razem z protokołem SSL lub SPIPE, hasło jest szyfrowane. Jeśli chcesz ustanowić bezpieczną sesję zdalną, musisz użyć protokołu SSL lub SPIPE.
ipversion=6
(Narzędzia debugowania dla systemu Windows 6.6.07 i starszych) Wymusza, aby debuger używał adresu IP w wersji 6, a nie w wersji 4 podczas nawiązywania połączenia z Internetem przy użyciu protokołu TCP. W systemie Windows Vista i nowszych wersjach debuger próbuje automatycznie domyślnie ustawić adres IP w wersji 6, co sprawia, że ta opcja jest niepotrzebna.
IcfEnable
Powoduje, że debuger włącza niezbędne połączenia portów dla komunikacji TCP lub nazwanego potoku, gdy zapora połączenia internetowego jest aktywna. Domyślnie zapora połączenia internetowego wyłącza porty używane przez te protokoły. Gdy