Funkcje BIOS (Wake-On-Lan, PXE, Watchdog, Auto Power On, Tryb Kiosk) oraz funkcje Windows (Shell Launcher) – wbudowane w komputery przemysłowe Astraada
Kontakt w sprawie artykułu: Wojciech Talik - 2026-11-10

W tym artykule przedstawiamy najważniejsze funkcje BIOS-u dostępne w komputerze Astraada – czym są i do czego możemy je wykorzystać, a także funkcję systemu Windows Shell Launcher.
BIOS to program, który uruchamia się jako pierwszy w momencie włączenia komputera, jeszcze zanim pojawi się Windows. To on „budzi” sprzęt, sprawdzając poprawność działania i przekazuje władze systemowi operacyjnemu. W nowszych komputerach mówi się właściwie o UEFI, czyli nowocześniejszej wersji tego samego rozwiązania, ale nazwa BIOS została w powszechnym użyciu i tak też będziemy jej używać w tym artykule.
Konfiguracja wykorzystywana podczas tworzenia artykułu
Wszystkie opisy i zrzuty ekranu pochodzą z komputera przemysłowego Astraada z systemem BIOS American Megatrends (AMI Aptio Setup), wersja RKMXMA04, pracującego pod kontrolą systemu Windows 10. Wersję BIOS-u zainstalowaną na własnym urządzeniu można sprawdzić w BIOS-ie w zakładce Main, w pozycji BIOS Version. Układ menu oraz nazwy poszczególnych opcji mogą się nieznacznie różnić w innych wersjach BIOS-u i na innych modelach urządzeń, jeśli któraś z opisywanych pozycji nie jest widoczna, prawdopodobnie znajduje się w innej zakładce lub nie jest dostępna na danej płycie głównej.
W zwykłym komputerze domowym czy biurowym BIOS to coś, do czego mało kto zagląda. Natomiast w komputerze przemysłowym przeważnie ustawia się funkcje, które mają realne znaczenie w pracy urządzenia pozostawionego bez stałego nadzoru człowieka. Aby wejść do BIOS-u, wystarczy podczas uruchamiania komputera kilkukrotnie nacisnąć klawisz Delete, najlepiej zacząć naciskać go od razu po włączeniu zasilania, gdy na ekranie pojawia się logo AMI. Jeśli moment zostanie przegapiony, komputer uruchomi normalnie system operacyjny i trzeba będzie ponowić próbę po restarcie.
Zanim zaczniemy, warto zapamiętać dwie zasady bezpieczeństwa. Po pierwsze, warto zmieniać wyłącznie te ustawienia, które opisujemy w tym artykule. BIOS zawiera wiele opcji niskopoziomowych, a przypadkowa zmiana niektórych z nich może uniemożliwić uruchomienie systemu. Po drugie, jeśli coś pójdzie nie tak, zawsze można wrócić do punktu wyjścia: klawisz F3 (Optimized Defaults) przywraca ustawienia fabryczne BIOS-u, a Esc pozwala wyjść z menu bez zapisywania wprowadzonych zmian. Zmiany zapisujemy dopiero klawiszem F4 (Save & Exit).
W tym artykule pokażemy najważniejsze funkcje BIOS-u dostępne w komputerze Astraada – czym są, do czego się przydają i gdzie je znaleźć w menu:
- Wake-on-LAN (WoL) – zdalne włączanie komputera przez sieć,
- PXE – uruchamianie systemu bezpośrednio z sieci, bez nośnika typu pendrive,
- Tryb kiosk – ograniczenie komputera do jednej, wybranej aplikacji,
- Watchdog – automatyczny restart komputera, gdy system przestanie odpowiadać,
- Power Loss / Auto Power On – zachowanie komputera po zaniku i powrocie zasilania.
Na końcu artykułu opiszemy również funkcję Shell Launcher. Nie jest to funkcja BIOS-u, tylko mechanizm samego systemu Windows (dostępny w wersjach IoT Enterprise/Enterprise), ale ponieważ jest ściśle powiązany z trybem kiosk, warto o nim tu wspomnieć. Pokażemy tylko pierwszy, bezpieczny krok jej włączenia – pełną konfigurację, wymagającą utworzenia dodatkowego konta w systemie, opiszemy teoretycznie, bez wprowadzania zmian na omawianym komputerze.
Uwaga dotycząca nazewnictwa: menu BIOS-u dostępne jest wyłącznie w języku angielskim. Zrzuty ekranu z systemu Windows pochodzą natomiast z wersji polskiej i angielskiej, więc jeśli nazwa widoczna na obrazku różni się od tej na Twoim komputerze, chodzi o to samo ustawienie.
Wake on LAN (WoL)
Wake on LAN to funkcja, która pozwala zdalnie włączyć komputer przez sieć bez konieczności fizycznego naciskania przycisku zasilania. Wystarczy, że z innego urządzenia w sieci zostanie wysłany specjalny sygnał (tzw. magic packet), a komputer sam się uruchomi, nawet jeśli był wcześniej całkowicie wyłączony. W praktyce oznacza to, że komputer czy stanowisko przemysłowe można zdalnie włączyć z innego urządzenia w sieci bez potrzeby, aby ktoś fizycznie podchodził do urządzenia i naciskał przycisk zasilania. To przydatne np. przy nocnych aktualizacjach czy zdalnym uruchamianiu wielu stanowisk przed rozpoczęciem pracy.

Opcję Wake-on-LAN znajdujemy poruszając się strzałkami lewo/prawo w zakładce Advanced, w podmenu Wake Up Settings poruszając się za pomocą strzałek dół/góra a następnie klikając przycisk Enter. To tutaj zebrane są wszystkie ustawienia związane z wybudzaniem komputera.

Po zmianie wartości z Disabled na Enabled funkcja Wake-on-LAN jest aktywna, karta sieciowa zacznie nasłuchiwać w tle, nawet gdy komputer jest wyłączony, i po odebraniu pakietu Magic, uruchomi urządzenie. Zmianę zatwierdza się klawiszem F4 (Save & Exit). Widoczna obok pozycja Wake system from S5 dotyczy uruchamiania komputera o zaplanowanej godzinie przez zegar RTC, a nie wybudzania przez sieć dla funkcji Wake-on-LAN – zostawiamy ją jako Disabled.
Po zatwierdzeniu zmiany komputer automatycznie zapisuje nowe ustawienia BIOS-u i uruchamia się ponownie – tym razem ładując system Windows. Samo włączenie opcji Wake on LAN w BIOS-ie to jednak dopiero pierwszy etap konfiguracji. Aby funkcja rzeczywiście zadziałała, kartę sieciową trzeba jeszcze odpowiednio skonfigurować w samym systemie, a tym zajmuje się kolejna część tej sekcji.
Konfigurację po stronie Windows zaczynamy od Menedżera urządzeń (Device Manager). Menedżera urządzeń najszybciej otwiera się z menu, które pojawia się po kliknięciu prawym przyciskiem myszy na przycisk Start (lub po skrócie klawiszowym Windows + X). Z listy dostępnych opcji należy wybrać Device Manager (Menedżer urządzeń).

Następnie należy rozwinąć sekcję Karty sieciowe. W komputerze Astraada karta sieciowa Intel(R) I211 Gigabit Network Connection występuje na liście kilkukrotnie (#2, #3 itd.), wynika to z tego, że urządzenie posiada kilka fizycznych portów sieciowych, a każdy z nich widoczny jest w systemie jako osobny wpis. Funkcję Wake-on-LAN należy skonfigurować dokładnie na tym porcie, do którego faktycznie podłączony jest kabel prowadzący do sieci – konfiguracja na pozostałych, niepodłączonych portach nie przyniesie żadnego efektu.

Nie należy przy tym zakładać, że numeracja wpisów w Windows odpowiada numeracji portów oznaczonych na obudowie komputera. Bywa ona pomieszana, dlatego zanim przejdziemy dalej, warto jednoznacznie ustalić, który wpis odpowiada któremu gniazdu. Najprościej zrobić to metodą praktyczną: podłączamy kabel do jednego portu, a z drugiej strony do działającego urządzenia (na przykład switcha), i sprawdzamy w Panelu sterowania, w sekcji Połączenia sieciowe, na której karcie pojawiło się aktywne połączenie. Pozostałe wpisy będą w tym czasie oznaczone jako niepodłączone. To właśnie na tej karcie, która zareagowała, wykonujemy dalszą konfigurację.

We właściwościach karty sieciowej, w zakładce Zaawansowane, znajduje się lista właściwości do konfiguracji. Znajdują się tam opcje powiązane z funkcją Wake-on-LAN, które warto rozróżnić.
Wake on Magic Packet to opcja, która włącza rozpoznawanie pakietu Magic, czyli specjalnego sygnału wysyłanego celowo po to, żeby zdalnie uruchomić komputer. To podstawowy mechanizm, na którym opiera się cała funkcja Wake-on-LAN, dlatego tę opcję ustawiamy na Enabled.
Wake on Pattern Match rozszerza tę funkcjonalność o możliwość wybudzania komputera także na podstawie innych wzorców ruchu sieciowego. Wzorce to zdefiniowane filtry, które opisują, jak ma wyglądać pakiet, żeby karta uznała go za sygnał wybudzenia na przykład żądania ARP kierowane do adresu komputera. Rejestruje je jednak system operacyjny lub konkretna aplikacja, programowo; nie ma tu okna, w którym użytkownik mógłby zdefiniować własny wzorzec. Ponieważ w naszym scenariuszu komputer ma reagować wyłącznie na świadomie wysłany pakiet Magic, tę opcję zostawiamy wyłączoną (Disabled).
Wake on Link Settings działa zupełnie inaczej. Uruchamia komputer w momencie wykrycia zmiany stanu samego połączenia sieciowego, na przykład przy podłączeniu kabla Ethernet do portu. Tę opcję również zostawiamy wyłączoną (Disabled), ponieważ jej włączenie może powodować przypadkowe uruchomienia komputera przy zwykłych zmianach stanu łącza, na przykład po restarcie switcha czy chwilowym zaniku połączenia, a nie tylko po świadomie wysłanym pakiecie Magic.
Enable PME (Power Management Event) to opcja o kluczowym znaczeniu, którą łatwo przeoczyć, ponieważ znajduje się na tej samej liście, ale nie jest bezpośrednio kojarzona z Wake-on-LAN. Odpowiada ona za mechanizm zgłaszania płycie głównej zdarzenia wybudzenia. Bez jej włączenia karta sieciowa może poprawnie rozpoznać pakiet Magic, ale sygnał wybudzenia nie zostanie przekazany dalej do płyty głównej i komputer się nie uruchomi. Tę opcję koniecznie ustawiamy na Enabled, to właśnie ona okazuje się decydująca dla poprawnego działania całej funkcji, nawet jeśli pozostałe ustawienia są już wykonane prawidłowo.
W tej samej karcie sieciowej, w zakładce Zarządzanie energią, znajdują się trzy opcje decydujące o tym, czy Windows może wyłączać kartę sieciową dla oszczędności energii oraz czy karta ma prawo wybudzić z tego stanu cały komputer. To właśnie tu ustala się, na jakie sygnały z sieci komputer zareaguje uruchomieniem.

Pierwsza opcja, Zezwalaj komputerowi na wyłączanie tego urządzenia w celu oszczędzania energii, mimo mylącej nazwy musi pozostać zaznaczona inaczej dwa pozostałe pola, w tym kluczowe dla Wake-on-LAN Zezwalaj temu urządzeniu na wznawianie pracy komputera, staną się nieaktywne i nie da się ich zaznaczyć.
Druga opcja, Zezwalaj temu urządzeniu na wznawianie pracy komputera, jest kluczowa dla funkcji WoL. Musi być zaznaczona, ponieważ to ona pozwala karcie sieciowej faktycznie uruchomić komputer.
Trzecia opcja, Zezwalaj tylko pakietowi Magic na wznawianie pracy komputera, decyduje o tym, na jak szeroki zakres sygnałów sieciowych komputer będzie reagował wybudzeniem i to, czy warto ją zaznaczyć, zależy od tego, co ustawiono wcześniej w zakładce Zaawansowane, konkretnie przy opcji Wake on Pattern Match.
Jeśli zależy nam wyłącznie na klasycznym Wake-on-LAN, czyli komputer ma się budzić tylko po odebraniu pakietu Magic, tę opcję zaznaczamy. Zawęża ona wybudzanie do tego jednego rodzaju sygnału, dzięki czemu zwykły ruch sieciowy nie uruchomi komputera przypadkowo. Jest to najbezpieczniejsze i najbardziej przewidywalne ustawienie.
Jeśli natomiast w zakładce Zaawansowane celowo włączono Wake on Pattern Match (czyli komputer ma reagować nie tylko na pakiet Magic, ale też na inne wzorce ruchu sieciowego), tę opcję pozostawiamy odznaczoną. Jej zaznaczenie wyklucza działanie Wake on Pattern Match, mimo że funkcja pozostaje włączona w zakładce Zaawansowane.
W praktyce, jeśli nie ma konkretnego powodu, żeby korzystać z Wake on Pattern Match, prostszym i bezpieczniejszym rozwiązaniem jest zaznaczenie trzeciej opcji i poleganie wyłącznie na klasycznym pakiecie Magic.

Kolejnym etapem jest dostęp do klasycznego Panelu sterowania systemu Windows, w którym znajdują się zaawansowane ustawienia zasilania niedostępne w nowszym interfejsie Ustawień. Z widoku głównego, przedstawionego na rysunku, należy wybrać kategorię Hardware and Sound (Sprzęt i dźwięk). To w tej sekcji zlokalizowane są opcje zarządzania energią komputera, w tym funkcja szybkiego uruchamiania systemu (Fast Startup), której dezaktywacja jest niezbędna do poprawnego działania mechanizmu zdalnego wybudzania urządzenia.

Po przejściu do sekcji Hardware and Sound należy odnaleźć obszar Opcje zasilania (Power Options), w którym dostępny jest link Change what the power buttons do (Wybierz działanie przycisków zasilania). Wybranie tej opcji umożliwia dostęp do zaawansowanych ustawień zamykania systemu.

Po przejściu do sekcji Opcje zasilania system prezentuje listę dostępnych planów zasilania, jednak w kontekście konfiguracji funkcji Wake-on-LAN istotny jest odnośnik znajdujący się w lewym panelu nawigacyjnym Wybierz działanie przycisków zasilania. Wybranie tego linku umożliwia przejście do ustawień odpowiedzialnych za tryb zamykania systemu, gdzie znajduje się poszukiwana opcja szybkiego uruchamiania.

Po przejściu do okna Ustawienia systemowe wszystkie pozycje w sekcji Ustawienia zamykania są domyślnie wyłączone i niedostępne do edycji. Aby uzyskać możliwość ich modyfikacji, należy kliknąć odnośnik Zmień ustawienia, które są obecnie niedostępne, oznaczony ikoną tarczy. Czynność ta wymaga uprawnień administratora i odblokowuje edycję opcji zamykania systemu, w tym kluczowej dla funkcji Wake-on-LAN opcji szybkiego uruchamiania.

Po odblokowaniu edycji ustawień odznaczamy opcję Włącz szybkie uruchamianie (zalecane). Przy włączonej tej funkcji Windows po kliknięciu Zamknij system nie wyłącza się do końca: wylogowuje użytkowników, ale stan jądra systemu i sterowników zapisuje do pliku na dysku, podobnie jak przy hibernacji, żeby następny start był szybszy. Komputer wygląda więc na wyłączony, choć w rzeczywistości znajduje się w stanie pośrednim między wyłączeniem a hibernacją. Karta sieciowa nie przechodzi wtedy w tryb nasłuchiwania i nie jest w stanie odebrać sygnału wybudzającego, dlatego wyłączenie szybkiego uruchamiania jest niezbędne do poprawnego działania Wake-on-LAN. Pozostałe opcje zostawiamy bez zmian, a konfigurację zatwierdzamy przyciskiem Zapisz zmiany.
Kilka praktycznych wskazówek
Sama poprawna konfiguracja BIOS-u i systemu Windows to jedno, ale warto wiedzieć o jeszcze kilku rzeczach, które ułatwiają testowanie i diagnozowanie funkcji Wake-on-LAN.
Jak sprawdzić, czy problem jest sprzętowy, zanim zaczniemy szukać go w ustawieniach?
Najprostszym i najbardziej wiarygodnym testem jest obserwacja diody link przy porcie Ethernet. Po całkowitym wyłączeniu komputera dioda ta powinna nadal świecić (lub delikatnie migać) – to znak, że karta sieciowa ma zasilanie i teoretycznie jest gotowa do odebrania pakietu Magic. Jeśli dioda gaśnie natychmiast po wyłączeniu komputera, oznacza to brak zasilania na porcie. W takiej sytuacji żadne ustawienie programowe nie sprawi, że Wake-on-LAN zadziała – przyczyn należy szukać na poziomie elektrycznym, a system Windows nie ma na to wpływu.
Ile trzeba odczekać po wyłączeniu komputera?
Zaraz po wykonaniu pełnego zamknięcia systemu (shutdown) karcie sieciowej potrzeba chwili, żeby w pełni przejść w tryb nasłuchiwania. Warto odczekać co najmniej 15–20 sekund, zanim wyślemy pakiet Magic – próba wysłania go zbyt wcześnie może nie przynieść żadnego efektu, mimo że cała konfiguracja jest poprawna. W takim przypadku wystarczy wysłać pakiet jeszcze raz.
Jak samodzielnie wysłać magic packet, bez instalowania dodatkowego oprogramowania?
Do przetestowania funkcji nie trzeba ściągać żadnego zewnętrznego programu, wystarczy nam wbudowany w Windows PowerShell. Przedstawiony niżej skrypt buduje przykładowy magic packet. W razie problemów z jego działaniem gotowe rozwiązania można znaleźć w Internecie, na przykład w poradniku PDQ.
Przed uruchomieniem skryptu trzeba uzupełnić dwie wartości. Adres MAC to unikalny numer karty sieciowej komputera, który chcemy zdalnie uruchomić. Odczytujemy go na tym komputerze, jeszcze zanim go wyłączymy: otwieramy wiersz polecenia (Win + R, wpisujemy cmd) i wpisujemy ipconfig /all. Na liście odnajdujemy kartę sieciową odpowiadającą portowi, do którego podłączony jest kabel, i odczytujemy pozycję Adres fizyczny, np. AB-9C-71-00-11-22.
Adres rozgłoszeniowy (broadcast) to adres, pod którym magic packet trafia do wszystkich urządzeń w sieci lokalnej. W typowej sieci domowej lub firmowej (z maską 24-bit) powstaje przez zamianę ostatniego członu adresu IP na 255 – jeśli komputery mają adresy w rodzaju 192.168.1.23, adresem rozgłoszeniowym będzie prawdopodobnie 192.168.1.255. Własny adres IP sprawdzimy tym samym poleceniem ipconfig /all, w pozycji Adres IPv4.
Trzeba również uważać na strukturę sieci. Magic packet jest wysyłany jako pakiet rozgłoszeniowy, a takie pakiety standardowo nie przechodzą przez routery między różnymi sieciami. Komputer wysyłający i odbierający muszą więc znajdować się w tej samej sieci lokalnej. Jeśli są w innych podsieciach, sygnał nie dotrze do celu, mimo że konfiguracja BIOS-u i systemu jest poprawna.
# adres mac karty sieciowej komputera, który chcemy uruchomić w stylu jak podano w cudzysłowie (nie usuwać cudzysłowów)
$mac = "AA-BB-CC-DD-EE-FF"
# adres broadcast przykładowy podany poniżej
$broadcast = "192.168.1.255"
$macBytes = $mac -split '[:-]' | ForEach-Object { [byte]("0x$_") }
$packet = [byte[]](,0xFF * 6)
1..16 | ForEach-Object { $packet += $macBytes }
$udpClient = New-Object System.Net.Sockets.UdpClient
$udpClient.EnableBroadcast = $true
$udpClient.Connect($broadcast, 9)
$udpClient.Send($packet, $packet.Length) | Out-Null
$udpClient.Close()
Write-Host "Magic packet wyslany na $mac"Niektóre implementacje nasłuchują na porcie 7 zamiast 9, więc jeśli nie zadziała, proszę spróbować zmienić wartość w $udpClient.Connect($broadcast, 9) z 9 na 7
PXE
PXE to funkcja, która pozwala uruchomić system operacyjny bezpośrednio z sieci, bez potrzeby posiadania go na lokalnym dysku, płycie czy pamięci USB. Komputer włącza się normalnie, ale zamiast szukać systemu na dysku, pobiera go z serwera w sieci. Wystarczy, że jest podłączony kablem do sieci, w której działa odpowiednio skonfigurowany serwer, a cały system operacyjny lub narzędzia startowe zostaną pobrane automatycznie. Funkcja ta nie działa przez Wi-Fi, więc fizyczne połączenie kablowe jest tu niezbędne. Oznacza to, że można zdalnie zainstalować lub odświeżyć system na komputerze czy stanowisku przemysłowym, bez podchodzenia do niego z pendrivem czy płytą instalacyjną. Przydaje się to na przykład przy masowej instalacji systemów na wielu stanowiskach.
Aby skonfigurować funkcję PXE, po wejściu do BIOS-u przechodzimy do zakładki Advanced. Ustawienia związane z PXE znajdują się w podsekcji UEFI PXE Configuration, widocznej na liście wraz z innymi ustawieniami zaawansowanymi płyty głównej.

Po wejściu w sekcję UEFI PXE Configuration widoczna jest lista opcji odpowiadających za działanie funkcji PXE:
- UEFI PXE – główny przełącznik całej funkcji. Musi być ustawiony na Enabled, ponieważ bez tego żadna z pozostałych opcji nie zadziała.
- IPv4 PXE Support – odpowiada za możliwość bootowania sieciowego po protokole IPv4. Ustawiamy na Enabled, ponieważ to właśnie IPv4 jest wykorzystywane w zdecydowanej większości środowisk PXE.
- IPv4 HTTP Support – nowsza metoda bootowania sieciowego (przez HTTP zamiast klasycznego TFTP). Pozostawiona jako Disabled, ponieważ nie jest potrzebna do standardowej konfiguracji PXE.
- IPv6 PXE Support – analogiczna opcja dla protokołu IPv6. Ustawiona na Disabled, ponieważ typowe środowiska PXE bazują na IPv4. Opcję tę można włączyć (Enabled), jeśli w danej sieci celowo skonfigurowano i uruchomiono infrastrukturę PXE opartą na IPv6
- IPv6 HTTP Support – pozostawiona jako Disabled, z tego samego powodu co powyżej.
- PXE boot wait time – czas oczekiwania (w sekundach) przed rozpoczęciem próby uruchomienia PXE. Wartość 0 oznacza, że próba rozpoczyna się natychmiast, bez dodatkowego opóźnienia.
- Media detect count – liczba prób wykrycia fizycznego połączenia sieciowego (kabla) przed uznaniem, że łącze jest nieaktywne. Wartość 1 oznacza jedną próbę.

Aby przejść do listy urządzeń startowych, z poziomu głównego menu BIOS-u (Aptio Setup – AMI) należy strzałkami lewo/prawo przejść z zakładki Advanced do zakładki Boot, znajdującej się na górnym pasku menu (Main → Advanced → Chipset → Security → Boot → Save & Exit).
W tej zakładce znajduje się pełna lista wszystkich urządzeń, z których komputer może zostać uruchomiony, ponumerowana kolejno jako Boot Option #1, #2, #3 itd. Wśród nich widoczne są pozycje związane z funkcją PXE, dla każdego portu sieciowego (w tym przypadku karty Intel(R) I211 Gigabit Network Connection) system generuje osobną pozycję dla protokołu IPv4 oraz IPv6,
Liczba takich pozycji odpowiada liczbie fizycznych portów LAN w komputerze — im więcej portów sieciowych, tym więcej wpisów PXE (osobno dla IPv4 i IPv6) pojawia się na liście.
Poniżej listy znajduje się opcja Fast Boot, ustawiona na Disabled. Jej wyłączenie jest istotne dla poprawnego działania PXE, ponieważ funkcja Fast Boot przyspiesza start komputera poprzez pomijanie pełnej inicjalizacji niektórych podzespołów w tym często kart sieciowych.

W górnej części zakładki Boot znajduje się sekcja Boot Option Priorities, w której ustala się kolejność, w jakiej komputer sprawdza kolejne urządzenia podczas normalnego uruchamiania. Na pierwszym miejscu (Boot Option #1) ustawiony jest Windows Boot Manager, wskazujący na lokalny dysk (w tym przypadku dysk SSD Samsung) dzięki temu komputer przy każdym uruchomieniu w pierwszej kolejności normalnie startuje system operacyjny zainstalowany na dysku.
Kolejne pozycje (Boot Option #2 i dalsze) to poszczególne opcje PXE IPv4 i PXE IPv6 dla dostępnych interfejsów sieciowych. Domyślnie są one zazwyczaj ułożone kolejno według portów fizycznych (np. Boot Option #2 i #3 odpowiadają pierwszemu portowi LAN, #4 i #5 drugiemu, i tak dalej), jednak nie zawsze jest to regułą. W razie wątpliwości warto zweryfikować, który wpis odpowiada któremu portowi, na przykład metodą testu z podłączonym kablem i obserwacją komunikatu PXE, opisaną w dalszej części poradnika.

Jak zmienić kolejność (priorytet) danej pozycji:
Aby wybrać, które urządzenie ma zostać przypisane do danego miejsca na liście (np. Boot Option #1), należy najechać na tę pozycję i nacisnąć Enter otworzy się lista wszystkich dostępnych urządzeń startowych, z której wybiera się żądaną opcję (np. konkretny port PXE IPv4). Ponieważ nazwy poszczególnych pozycji PXE są identyczne dla każdego portu (różnią się jedynie kolejnością na liście), łatwo się pomylić, który wpis odpowiada któremu fizycznemu portowi LAN. Zalecalibyśmy zapisanie sobie (np. na kartce) numeru Boot Option wraz z portem, któremu odpowiada szczególnie jeśli kolejność była zmieniana lub testowana, aby uniknąć pomyłki przy późniejszej konfiguracji lub serwisowaniu urządzenia.
Po zapisaniu ustawień w BIOS-ie (F4) i restarcie komputera, można w dowolnym momencie wejść w jednorazowe menu wyboru urządzenia startowego, naciskając przy starcie klawisz F7. Pojawi się ekran Please select boot device z listą wszystkich dostępnych opcji, w tym Windows Boot Manager oraz poszczególne pozycje PXE dla każdego portu sieciowego.

Menu to obsługuje się strzałkami góra/dół oraz klawiszem Enter, który uruchamia wybraną pozycję. Wybór opcji w tym miejscu jest jednorazowy i nie zmienia na stałe konfiguracji zapisanej wcześniej w BIOS-ie (Boot Option Priorities)
To miejsce służy również do praktycznego sprawdzenia, czy dana pozycja PXE odpowiada właściwemu, fizycznie podłączonemu portowi LAN. Po najechaniu na wybraną pozycję PXE IPv4 i naciśnięciu Enter, mogą wystąpić dwa scenariusze:
1. Port bez podłączonego kabla – na ekranie pojawia się jedynie migający kursor (_) przez ułamek sekundy, po czym komputer automatycznie wraca do Boot Menu lub przechodzi do kolejnej pozycji. Oznacza to, że karta sieciowa nie wykryła żadnego fizycznego połączenia.
2. Port z podłączonym, aktywnym kablem – na ekranie pojawia się komunikat: „Start PXE over IPv4”. Komputer przez kilkanaście do kilkudziesięciu sekund próbuje uzyskać odpowiedź od serwera PXE w sieci.
Jeśli w sieci nie ma uruchomionego serwera PXE, po upływie tego czasu (timeout) komputer automatycznie wraca do Boot Menu. Jest to normalne, oczekiwane zachowanie, które potwierdza, że dany port oraz konfiguracja PXE w BIOS-ie działają poprawnie. Sam fakt pojawienia się komunikatu „Start PXE over IPv4” jest wystarczającym dowodem prawidłowej konfiguracji, nawet bez dostępu do rzeczywistego serwera PXE. Pełne uruchomienie systemu operacyjnego przez sieć wymaga już jednak takiego serwera (usługi DHCP i TFTP) po drugiej stronie połączenia.
Tryb kiosk
Tryb kiosk to sposób pracy komputera, w którym urządzenie po każdym uruchomieniu wczytuje dokładnie tę samą aplikację i jest zabezpieczone przed przypadkową lub celową ingerencją osób trzecich. Dzięki temu może działać autonomicznie, bez nadzoru człowieka. To rozwiązanie spotykane wszędzie tam, gdzie komputer ma pełnić jedną, ściśle określoną funkcję z jednym wgranym programem.
Warto na wstępie wyjaśnić jedną, kluczową rzecz: tryb kiosk nie jest pojedynczą opcją, którą można włączyć jednym kliknięciem. To zestaw kilku powiązanych ze sobą ustawień, z których część konfiguruje się w BIOS-ie urządzenia, a część już w samym systemie operacyjnym. W tej sekcji skupimy się na pierwszej warstwie, czyli na tym, co można i warto ustawić bezpośrednio w BIOS-ie, zanim system operacyjny w ogóle się uruchomi. Drugą warstwą, konfigurowaną po stronie Windows, zajmiemy się w sekcji „Shell Launcher”.
W zakładce Boot znajduje się sekcja Boot Option Priorities, w której ustawia się kolejność, w jakiej komputer próbuje uruchomić system. W polu Boot Option #1 wybieramy pozycję, która pozwoli uruchomić właściwy system operacyjny – w tym przypadku jest to Windows Boot Manager (Samsung SSD PM851 mSATA 256GB). Dzięki temu komputer przy każdym uruchomieniu automatycznie startuje z właściwego dysku, niezależnie od tego, co jest w danym momencie podłączone do urządzenia (na przykład pendrive). Pozostałe pozycje (Boot Option #2-6) to opcje uruchamiania systemu przez sieć, opisane wcześniej w sekcji poświęconej PXE.

Kolejnym elementem konfiguracji jest opcja Full Logo Display, widoczna w tej samej zakładce. Po prawej stronie ekranu BIOS wyświetla krótki opis: opcja włącza lub wyłącza pełnoekranowe wyświetlanie logo. Ustawiamy ją na Enabled – dzięki temu podczas uruchamiania komputera użytkownik widzi wyłącznie logo producenta na całym ekranie, zamiast surowego tekstu diagnostycznego. W kiosku ma to znaczenie estetyczne i praktyczne: urządzenie sprawia wrażenie uruchamiającego się płynnie i wygląda jak gotowy produkt, a nie jak zwykły komputer z uruchomionym programem. Przy okazji na ekranie startowym nie pojawiają się informacje o podzespołach i konfiguracji sprzętu, które mogłyby ułatwić osobie nieuprawnionej ingerencję w ustawienia urządzenia.

Kolejna opcja w zakładce Boot to Setup Prompt Timeout, obecnie ustawiona na wartość 3. Po prawej stronie ekranu BIOS wyświetla opis: określa ona liczbę sekund, przez które komputer czeka na wciśnięcie klawisza aktywującego setup, zanim przejdzie dalej. Wartość 65535 (0xFFFF) oznacza czekanie w nieskończoność.

Domyślne 3 sekundy to czas, przez który na ekranie wyświetlają się komunikaty typu „Press DEL to enter Setup„. W trybie kiosk warto tę wartość skrócić, komputer szybciej przechodzi do uruchamiania systemu, a zachęta do wejścia w ustawienia BIOS-u znika z ekranu, co ogranicza ryzyko przypadkowej lub celowej ingerencji osoby nieuprawnionej. Zamiast ustawiać 0, bezpieczniej jest jednak wpisać 1. Efekt jest praktycznie taki sam, a zostaje minimalne okno na wciśnięcie klawisza Delete, które przydaje się przy każdej późniejszej zmianie konfiguracji czy serwisie urządzenia.
W zakładce Security znajdują się opcje związane z hasłami dostępu do BIOS-u. Ekran wyświetla opis działania obu rodzajów haseł:
- Administrator Password – jeśli ustawione jest tylko to hasło, ogranicza ono dostęp wyłącznie do samego Setupu (BIOS-u). Jest to wymagane tylko przy próbie wejścia do ustawień, nie blokuje normalnego uruchamiania systemu.
- User Password – może zostać ustawione dopiero wtedy, gdy wcześniej ustawiono hasło administratora. Działa jako hasło włączenia komputera i musi zostać podane zarówno przy starcie systemu, jak i przy wejściu do Setupu. Zgodnie z opisem wyświetlanym przez BIOS użytkownik korzystający z tego hasła ma w ustawieniach jedynie uprawnienia do odczytu („Read-Only rights”).

W trybie kiosk warto ustawić Administrator Password. Zabezpiecza on wszystkie wcześniej skonfigurowane ustawienia przed zmianą przez osobę nieuprawnioną. Co równie ważne, hasło blokuje także dostęp do jednorazowego menu wyboru urządzenia startowego (klawisz F7, opisanego w sekcji poświęconej PXE). Bez tego zabezpieczenia sama konfiguracja kolejności bootowania nie chroni urządzenia, przez co osoba postronna mogłaby podłączyć własny nośnik USB i uruchomić z niego system, pomijając ustawienia zapisane w BIOS-ie.
Opcję Secure Boot ustawiamy na Enabled. Tuż obok widnieje wtedy informacja „Not Active”, co może budzić wątpliwości. BIOS wyjaśnia przyczynę: Secure Boot staje się w pełni aktywny dopiero po zarejestrowaniu klucza Platform Key (PK), gdy system znajdzie się w tzw. User Mode. W opisie widnieje informacja: „The mode change requires platform reset”. Wystarczy zapisać ustawienia i zrestartować komputer, a po ponownym uruchomieniu Platform Key rejestruje się automatycznie, a status zmienia się na Active.

Trzeba pamiętać, że aktywacja Secure Boot wymaga wyłączonego trybu CSM (Compatibility Support Module). Po ustawieniu Secure Boot na Enabled, BIOS automatycznie wyłączył CSM, wyświetlając komunikat „CSM disabled due to active UEFI Secure Boot mode”.
Widoczna jest tu również opcja Secure Boot Mode, ustawiona na Standard. Oznacza to, żesystem korzysta wtedy z domyślnych kluczy bezpieczeństwa producenta płyty (tryb Custom pozwala zarządzać kluczami samodzielnie). Dostępne są też opcje Restore Factory Keys oraz Reset To Setup Mode, służące odpowiednio do przywracania domyślnych kluczy i resetowania mechanizmu do stanu początkowego. W praktyce nie są one jednak konieczne do aktywacji funkcji.
Na tym kończy się warstwa konfiguracji dostępna w BIOS-ie. Po wykonaniu powyższych kroków komputer uruchamia się automatycznie z właściwego dysku, bez wyświetlania komunikatów diagnostycznych i bez możliwości wejścia w ustawienia przez osobę nieuprawnioną. To fundament, na którym opiera się tryb kiosk, ale sam w sobie nie sprawia jeszcze, że urządzenie startuje bezpośrednio do wybranej aplikacji. Za to odpowiada druga warstwa, konfigurowana już w systemie Windows, a dokładniej mechanizm Shell Launcher, który opisujemy w dalszej części artykułu.
Watchdog
Watchdog („pies stróż”) to mechanizm, który pilnuje, czy komputer działa poprawnie i automatycznie go restartuje, jeżeli wykryje, że system się zawiesił. To rozwiązanie szczególnie popularne w komputerach pracujących bezobsługowo tam, gdzie fizyczny dostęp do urządzenia bywa utrudniony, a ciągła praca jest kluczowa.
Zasada działania jest prosta. Na płycie głównej znajduje się układ odliczający czas, niezależny od systemu operacyjnego, ustawiany na określoną wartość – na przykład 60 sekund. Dopóki system działa prawidłowo, dedykowana aplikacja regularnie resetuje ten licznik do wartości początkowej, zanim zdąży on dojść do zera. Jeśli system przestanie odpowiadać, sygnał resetujący przestaje przychodzić, licznik dolicza do końca, a płyta główna wymusza restart komputera. Zaletą tego rozwiązania jest to, że układ odliczający działa poza systemem operacyjnym, a więc zadziała również wtedy, gdy system przestanie odpowiadać całkowicie i nie reaguje już na żadne polecenia. Watchdog nie analizuje przyczyny awarii – wymusza restart zawsze, gdy nic nie potwierdza poprawnej pracy systemu.
W praktyce mechanizm ten składa się jednak z kilku warstw, które współpracują ze sobą na różnych etapach pracy komputera, od samego BIOS-u, przez system operacyjny, aż po dedykowane oprogramowanie. Jak dokładnie te warstwy się ze sobą łączą i na czym polega ich konfiguracja, pokażemy w dalszej części artykułu na konkretnym przykładzie komputera przemysłowego.
Wchodzimy do BIOS-u i przechodzimy do zakładki Advanced. Na liście dostępnych opcji znajdujemy pozycję Watch Dog Configuration. Właśnie tutaj skonfigurujemy sprzętowy watchdog.

Wchodzimy w pozycję Watch Dog Configuration z poprzedniego ekranu i widzimy trzy ustawienia: Watch Dog Control, ustawione na Enabled, Watch Dog Degree określające jednostkę czasu, tutaj Second, oraz Watch Dog Timer z aktualną wartością 0.

Licznik ten uruchamia się już na etapie POST, czyli podczas startu komputera, i odlicza dalej przez cały rozruch systemu operacyjnego, a zatrzymuje się dopiero wtedy, gdy przejmie nad nim kontrolę aplikacja uruchomiona w systemie Windows. Wartość 0 oznacza, że żaden limit czasu nie jest obecnie ustawiony, więc mimo że watchdog jest włączony, licznik realnie nic nie odlicza, dopóki nie wpiszemy tu konkretnej liczby sekund.
UWAGA, WAŻNE!
Nie należy ustawiać tej wartości na małą liczbę sekund, jeśli sam proces uruchamiania systemu operacyjnego zajmuje dłuższy czas. Jeśli licznik dojdzie do zera, zanim system zdąży w pełni wystartować i uruchomić oprogramowanie resetujące watchdog, komputer wpadnie w pętlę restartów. Wyjściem z niej jest ręczne wyłączenie tej opcji w BIOS-ie, ale trzeba zdążyć wejść do Setupu (klawisz Del) w krótkim oknie czasu między startem komputera a kolejnym restartem. Na początek, dla bezpieczeństwa, zalecamy ustawienie dużej wartości, na przykład 90 sekund. Parametr ten jest konfigurowalny aż do 255 sekund, więc warto zostawić sobie duży margines, zwłaszcza przy pierwszym uruchomieniu i testowaniu konfiguracji.

To właśnie to oprogramowanie jest najważniejszym elementem całej konfiguracji watchdoga. Sam BIOS ustawia jedynie wartość początkową licznika na etapie uruchamiania komputera, ale to dedykowana aplikacja w Windows przejmuje nad nim kontrolę w trakcie normalnej pracy systemu i regularnie go karmi, czyli resetuje, zanim zdąży dojść do zera. Bez zainstalowania i uruchomienia tego oprogramowania komputer, mimo poprawnie skonfigurowanego watchdoga w BIOS, będzie wpadał w nieskończoną pętlę restartów, ponieważ nic nie będzie potwierdzać, że system działa prawidłowo.
Oprogramowanie można pobrać korzystając z tego linku.
Interfejs programu jest prosty i przejrzysty. W polu WDT Value ustawiamy docelową wartość licznika w sekundach, w naszym przypadku 80. Warto w tym miejscu wyjaśnić, jak ta wartość ma się do 90 sekund ustawionych wcześniej w BIOS-ie. Ustawienie z BIOS-u obowiązuje wyłącznie na starcie komputera i musi być na tyle duże, żeby system zdążył się uruchomić i włączyć tę aplikację. Od chwili, gdy aplikacja przejmie kontrolę nad licznikiem, obowiązuje już wartość z pola WDT Value. To ona decyduje, po jakim czasie braku sygnału komputer zostanie zrestartowany podczas normalnej pracy, a ustawienie z BIOS-u nie ma wtedy znaczenia aż do kolejnego uruchomienia. Dlatego wartość w BIOS-ie dobiera się na podstawie czasu startu systemu, a wartość w aplikacji pod to, jak szybko urządzenie ma zareagować na zawieszenie. Docelowo stosuje się tu wartości mniejsze, około 20 sekund, jednak na czas testów zalecamy pozostawienie większego zapasu.
Checkbox Enabled włącza watchdog i uruchamia w tle proces regularnego resetowania licznika. Checkbox AutoStart sprawia, że program uruchamia się automatycznie przy każdym starcie systemu – jest to ustawienie kluczowe, ponieważ bez niego trzeba by pamiętać o ręcznym uruchomieniu programu po każdym restarcie komputera. Dostępna jest również opcja StopFeedTest, pozwalająca celowo przetestować działanie mechanizmu: przerywa ona resetowanie licznika, dzięki czemu można zweryfikować, czy komputer faktycznie zrestartuje się po ustawionym czasie.
Co zrobić, jeśli AutoStart nie działa:
Zdarza się, że mimo zaznaczenia checkboxa AutoStart w programie, aplikacja nie uruchamia się automatycznie po restarcie komputera. Dzieje się tak najczęściej wtedy, gdy program wymaga uprawnień administratora do działania, a standardowy mechanizm autostartu systemu Windows nie potrafi samodzielnie podnieść tych uprawnień bez potwierdzenia użytkownika, przez co Windows po cichu pomija uruchomienie takiego programu przy starcie.
W takiej sytuacji najbardziej niezawodnym rozwiązaniem jest ręczne skonfigurowanie autostartu przez Harmonogram zadań systemu Windows:
1. Otwieramy go poprzez Win + R i wpisanie taskschd.msc.
2. Po prawej stronie okna klikamy Utwórz zadanie… (nie wybieramy „Utwórz zadanie proste”, ponieważ potrzebujemy pełnej wersji z dodatkowymi opcjami).
3. W zakładce Ogólne nadajemy zadaniu nazwę, na przykład „Watchdog AutoStart”, a następnie zaznaczamy checkbox Uruchom z najwyższymi uprawnieniami. W polu Konfiguruj dla wybieramy naszą wersję systemu Windows.
4. Przechodzimy do zakładki Wyzwalacze, klikamy Nowy, z listy rozwijanej wybieramy Przy logowaniu i zatwierdzamy przyciskiem OK.
5. Przechodzimy do zakładki Akcje, klikamy Nowa, w polu Program/skrypt klikamy Przeglądaj i wskazujemy plik wykonywalny naszego programu watchdog, a następnie zatwierdzamy przyciskiem OK.
6. Klikamy OK, żeby zapisać całe zadanie. System może poprosić o podanie hasła naszego konta Windows, co jest normalnym elementem procesu i pozwala zadaniu działać z podniesionymi uprawnieniami bez pytania o zgodę przy każdym starcie komputera.
Ważna uwaga dotycząca zapisywania ustawień w samym programie:
Podczas testowania zauważyliśmy, że pola takie jak WDT Value mogą być nieaktywne, wyszarzone i niemożliwe do edycji, jeśli powiązany z nimi checkbox jest w danym momencie zaznaczony. Żeby zmienić wartość lub zapisać nowe ustawienia, checkboxy takie jak Enabled powinny być w danym momencie odznaczone, dzięki czemu pole staje się białe i edytowalne. Dopiero po wprowadzeniu żądanej wartości należy ponownie zaznaczyć checkbox, aby watchdog zaczął działać z nową konfiguracją.
Power Loss / Auto Power On
Auto Power On to funkcja BIOS-u, która decyduje o tym, jak komputer zachowa się po zaniku i ponownym powrocie zasilania. To jedna z tych opcji, które na pierwszy rzut oka wydają się drobiazgiem, a w praktyce mają kluczowe znaczenie dla niezawodnej pracy komputera przemysłowego działającego bez nadzoru. Komputer w trybie kiosk często stoi w miejscu, do którego nikt regularnie nie zagląda. W takich warunkach przerwy w zasilaniu nie są rzadkością.
Domyślnie wiele komputerów po takiej sytuacji pozostaje wyłączonych nawet po powrocie zasilania. Urządzenie pozostaje w tym stanie do momentu, aż ktoś wciśnie przycisk zasilania. W przypadku zwykłego komputera biurowego nie stanowi to problemu, bo zawsze jest ktoś w pobliżu. Inaczej wygląda to w zastosowaniach przemysłowych – komputer bywa zamknięty w szafie sterowniczej, umieszczony w trudno dostępnym miejscu albo obsługuje stanowisko, przy którym nikt na stałe nie pracuje. W takich warunkach zanik zasilania oznacza zatrzymanie pracy urządzenia aż do chwili, gdy ktoś dotrze do niego fizycznie. Dlatego Auto Power On jest jednym z podstawowych ustawień decydujących o niezawodnej pracy komputera przemysłowego – zapewnia, że urządzenie wraca do działania samodzielnie, natychmiast po przywróceniu zasilania.
Zanim przejdziemy do zakładki Chipset, warto wrócić na moment do początku sekcji „Wake On Lan” w tym artykule. W zakładce Advanced, w podmenu Wake Up Settings, znajduje się pozycja Restore AC Power Loss – widać ją dosłownie na pierwszych dwóch ilustracjach w sekcji „Wake On LAN”, tuż nad opcją Wake on LAN. To właśnie tam ustawiamy ją jako pierwszą, na wartość Power on.
Następnie przechodzimy do zakładki Chipset, w której widoczne są dwie podsekcje: System Agent (SA) Configuration oraz PCH-IO Configuration. Interesująca nas opcja Restore AC Power Loss znajduje się w tej drugiej. Zaznaczamy ją i wchodzimy do środka klawiszem Enter.

Po wejściu w podsekcję PCH-IO Configuration widoczna jest lista opcji dotyczących niskopoziomowej konfiguracji chipsetu. Wśród nich znajduje się szukana pozycja: Restore AC Power Loss, ustawiona na [Power on]. Po prawej stronie ekranu BIOS wyjaśnia dokładnie, do czego służy ta opcja: „Specify what state to go to when power is re-applied after a power failure (G3 state)”, czyli określa, w jaki stan ma przejść komputer, gdy zasilanie zostanie przywrócone po jego całkowitym zaniku (tzw. stan G3, oznaczający pełne odcięcie zasilania).

Po naciśnięciu Enter na tej pozycji BIOS pokazuje trzy wartości do wyboru. Power off oznacza, że komputer po powrocie zasilania pozostanie wyłączony i będzie czekał na ręczne wciśnięcie przycisku zasilania, Power on – że uruchomi się zawsze, niezależnie od tego, w jakim stanie był przed zanikiem, a Last state – że wróci do stanu sprzed awarii, czyli włączy się tylko wtedy, gdy w chwili zaniku faktycznie pracował. Dla kiosku działającego w trybie ciągłym wybieramy Power on, co gwarantuje, że urządzenie samo wróci do pracy natychmiast po przywróceniu zasilania, bez potrzeby ręcznej interwencji. Opcja Last state ma sens tam, gdzie komputer bywa celowo wyłączany na dłuższy czas i nie powinien sam startować po chwilowym zaniku zasilania.
Jeśli mimo ustawienia Power on komputer nie uruchamia się po powrocie zasilania, warto sprawdzić, czy urządzenie rzeczywiście doświadczyło pełnego zaniku. Przy bardzo krótkich przerwach w zasilaniu zasilacz potrafi podtrzymać pracę na tyle, że BIOS w ogóle nie rozpoznaje sytuacji jako stanu G3, a wtedy opisywany mechanizm się nie uruchamia.
Shell Launcher
Windows po zalogowaniu użytkownika uruchamia domyślną powłokę, czyli program odpowiedzialny za cały widoczny interfejs. Domyślnie jest nim explorer.exe: to on rysuje pulpit, pasek zadań, menu Start i obsługuje ikony. Nie jest to część jądra systemu ani coś nienaruszalnego, tylko zwykły proces wskazany w konfiguracji.
Shell Launcher wykorzystuje tę właściwość. To komponent opcjonalny Windows, który pozwala wskazać inną aplikację jako powłokę dla konkretnego konta użytkownika. Po zalogowaniu system uruchamia ją zamiast Eksploratora. Efekt: nie ma pulpitu, paska zadań ani menu Start. Nie jest tak dlatego, że są one ukryte, tylko dlatego, że nigdy nie powstały. Kluczowa cechą jest to, że konfiguracja jest przypisywana do konta. Na tym samym urządzeniu operator może dostawać wyłącznie aplikację firmową, a administrator normalny pulpit (wystarczy się przelogować).
Warto od razu zaznaczyć jedną rzecz. Shell Launcher nie jest mechanizmem zabezpieczeń. Ukrywa powłokę, ale nie blokuje kombinacji Ctrl+Alt+Del ani Menedżera zadań, więc użytkownik z klawiaturą nadal może uruchomić z niego dowolny program. To warstwa, która uzupełnia wcześniej opisaną konfigurację trybu kiosk, a nie taka, która ją zastępuje. Dopiero razem z hasłem BIOS-u, zablokowanym menu wyboru urządzenia startowego i odpowiednimi politykami systemowymi daje realnie zamknięte urządzenie.
Wymagania
Shell Launcher nie jest dostępny w każdej wersji systemu Windows, dlatego zaczynamy od sprawdzenia, jaką edycję mamy zainstalowaną. To najczęstszy powód, dla którego wdrożenie kończy się już na starcie. Funkcję obsługują edycje Enterprise i Enterprise LTSC, Education oraz IoT Enterprise i IoT Enterprise LTSC. W edycjach Home i Pro Shell Launcher nie występuje i nie da się go doinstalować. Zainstalowaną edycję można sprawdzić w PowerShellu poleceniem:
Get-ComputerInfo -Property WindowsEditionId, WindowsVersion, OsBuildNumberInteresuje nas pozycja WindowsEditionId. Wartości Enterprise, EnterpriseS, Education i IoTEnterprise oznaczają, że system obsługuje Shell Launcher i można przejść do dalszej konfiguracji. Wartości Professional i Core oznaczają odpowiednio edycję Pro i Home, w których funkcja nie jest dostępna.
Włączenie funkcji w systemie
Shell Launcher jest komponentem opcjonalnym, domyślnie wyłączonym, więc trzeba go najpierw dodać do systemu. Otwieramy PowerShell jako administrator i wpisujemy polecenie:
Get-WindowsOptionalFeature -Online -FeatureName Client-EmbeddedShellLauncherWynik Disabled oznacza, że komponent jest dostępny i czeka na włączenie. Błąd o treści „feature name is unknown” oznacza, że zainstalowana edycja systemu go nie zawiera
Włączamy go poleceniem:
Enable-WindowsOptionalFeature -Online -FeatureName Client-EmbeddedShellLauncher -All -NoRestartPo zakończeniu pojawi się komunikat o wstrzymaniu restartu – to nie błąd, tylko efekt parametru -NoRestart. Restartujemy system i sprawdzamy stan ponownie:
(Get-WindowsOptionalFeature -Online -FeatureName Client-EmbeddedShellLauncher).StatePolecenie powinno zwrócić Enabled.
Stworzenie kont w celu zabezpieczenia się przed niewłaściwą konfiguracją
To moment, w którym decyduje się, czy nie zablokujemy sobie dostępu do urządzenia. Potrzebne będą trzy konta o rozdzielonych rolach:
1. Konto główne – to, z którego pracujemy i konfigurujemy system.
2. Konto zapasowe administratora – droga wyjścia na wypadek, gdyby coś poszło nie tak.
3. Konto kiosku – konto standardowe, na którym uruchomi się wybrana aplikacja bez powłoki systemowej.
Konto zapasowe tworzymy poleceniami:
New-LocalUser -Name "Zapas" -Password (Read-Host -AsSecureString "Podaj haslo") -AccountNeverExpires
Add-LocalGroupMember -SID "S-1-5-32-544" -Member "Zapas"W drugim poleceniu zamiast nazwy grupy użyliśmy identyfikatora SID (Security Identifier), jest to wewnętrzny numer, którym Windows oznacza grupy i konta użytkowników. Nazwa grupy administratorów zmienia się wraz z językiem systemu (Administratorzy / Administrators), natomiast identyfikator S-1-5-32-544 jest taki sam w każdej wersji językowej.
Konto kiosku tworzymy analogicznie, przypisując je do grupy użytkowników standardowych:
New-LocalUser -Name "Kiosk" -Password (Read-Host -AsSecureString "Haslo") -AccountNeverExpires
Add-LocalGroupMember -SID "S-1-5-32-545" -Member "Kiosk"Po utworzeniu kont warto wylogować się i zalogować na konto zapasowe, żeby sprawdzić, czy logowanie faktycznie działa i czy pojawia się pulpit. Konto zapasowe, którego nie sprawdziliśmy, nie jest jeszcze zabezpieczeniem, a jedynie założeniem. Dlatego lepiej zweryfikować to teraz, zanim przejdziemy do dalszej konfiguracji.
Uwaga dotycząca hasła konta kiosku:
Konto utworzone bez hasła może przy pierwszym logowaniu zażądać jego ustawienia. System zgłasza wtedy, że hasło jest nieprawidłowe, a następnie wymaga jego zmiany i zatwierdzenia. Zasady zabezpieczeń mogą również wymagać hasła o określonej długości, przez co konto bez hasła nie zostanie przyjęte.
W takiej sytuacji logujemy się na konto główne, otwieramy PowerShell jako administrator i nadajemy hasło ponownie:
Set-LocalUser -Name "Kiosk" -Password (Read-Host -AsSecureString "Nowe haslo")Po wpisaniu hasła zatwierdzamy je klawiszem Enter. Wpisywane znaki nie są wyświetlane na ekranie. Następnie logujemy się na konto Kiosk, używając nowego hasła.
Utworzenie pliku konfiguracyjnego
Zaczynamy od wygenerowania identyfikatora profilu:
New-GuidOtrzymaną wartość kopiujemy do notatnika. Będzie potrzebna w dwóch miejscach pliku konfiguracyjnego i w obu musi być identyczna.
Następnie tworzymy plik C:\Temp\shell-launcher.xml:
New-Item -Path C:\Temp -ItemType Directory -Force
notepad C:\Temp\shell-launcher.xmlDo otwartego notatnika wklejamy poniższą zawartość, podmieniając TWOJ-GUID na skopiowaną wcześniej wartość. Klamry zostawiamy bez zmian.
<?xml version="1.0" encoding="utf-8"?>
<ShellLauncherConfiguration
xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
<Profiles>
<DefaultProfile>
<Shell Shell="%SystemRoot%\explorer.exe">
<DefaultAction Action="RestartShell"/>
</Shell>
</DefaultProfile>
<Profile Id="{TWOJ-GUID}" Name="Test">
<Shell Shell="%SystemRoot%\system32\cmd.exe" V2:AppType="Desktop">
<DefaultAction Action="DoNothing"/>
</Shell>
</Profile>
</Profiles>
<Configs>
<Config>
<Account Name=".\Kiosk"/>
<Profile Id="{TWOJ-GUID}"/>
</Config>
</Configs>
</ShellLauncherConfiguration>Na czas pierwszego testu celowo podstawiamy cmd.exe zamiast docelowej aplikacji. Jeśli coś zawiedzie, na ekranie pojawi się działający wiersz poleceń, a nie czarny ekran bez żadnej możliwości reakcji.
Sekcja DefaultProfile wskazuje na explorer.exe i obowiązuje wszystkie konta, którym nie przypisano innego profilu. Dzięki temu konto główne oraz konto zapasowe zachowują normalny pulpit. Z punktu widzenia bezpieczeństwa jest to najważniejszy fragment całego pliku, bez niego można stracić dostęp do systemu.
Parametr DefaultAction ustawiamy na DoNothing wyłącznie na czas testów. Do wyboru są cztery wartości: RestartShell, RestartDevice, ShutdownDevice oraz DoNothing. Docelowostosuje się RestartShell, jednak podczas testów aplikacja zamykająca się przy starcie wprowadziłaby wtedy komputer w pętlę ponownych uruchomień powłoki. Przy ustawieniu DoNothing pojawia się w takiej sytuacji pusty ekran, z którego można spokojnie się wylogować.
Wgranie konfiguracji do systemu
Sam plik XML nie wprowadza jeszcze żadnych zmian, trzeba go jeszcze przekazać systemowi. Na tym etapie pojawia się jedyny nieoczywisty element całej konfiguracji.
Windows nie przyjmie tej konfiguracji od konta administratora. Wymagane są uprawnienia konta SYSTEM, czyli wyższe niż administratorskie, a samo uruchomienie PowerShella jako administrator nie wystarczy.
Rozwiązaniem jest utworzenie zadania w Harmonogramie zadań, które Windows uruchomi w imieniu konta SYSTEM. Całość wykonamy w PowerShellu, bez instalowania dodatkowych programów.
Stwórzmy plik C:\Temp\apply.ps1 :
notepad C:\Temp\apply.ps1Notatnik zapyta, czy utworzyć nowy plik – potwierdzamy, wklejamy poniższą treść, zapisujemy skrótem Ctrl+S i zamykamy okno.
$xml = Get-Content -Raw C:\Temp\shell-launcher.xml
$obj = Get-CimInstance -Namespace "root\cimv2\mdm\dmmap" -ClassName MDM_AssignedAccess
$obj.ShellLauncher = [System.Net.WebUtility]::HtmlEncode($xml)
Set-CimInstance -CimInstance $obj
"OK $(Get-Date)" | Out-File C:\Temp\wynik.txtOstatnia linijka służy do potwierdzenia, że polecenie zostało wykonane – bez niej nie wiadomo, czy konfiguracja została przyjęta.
Następnie tworzymy i uruchamiamy zadanie. PowerShell uruchamiamy jako administrator:
$a = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Temp\apply.ps1"
$p = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "ApplyShellLauncher" -Action $a -Principal $p -Force
Start-ScheduledTask -TaskName "ApplyShellLauncher"Odczekujemy kilkanaście sekund, po czym sprawdzamy wynik:
Get-Content C:\Temp\wynik.txtJeśli widzimy „OK” z datą to konfiguracja jest w systemie.
Testy
Wylogowujemy się i logujemy na konto Kiosk. Pierwsze logowanie potrwa dłużej, ponieważ system tworzy wtedy profil użytkownika.
Po zalogowaniu na ekranie pojawia się wyłącznie okno wiersza poleceń – bez pulpitu, paska zadań i menu Start. Powłoka explorer.exe nie została uruchomiona, co oznacza, że konfiguracja zadziałała.
Aby wrócić do normalnej pracy, wpisujemy w oknie wiersza poleceń logoff albo korzystamy ze skrótu Ctrl+Alt+Del i wybieramy Wyloguj. Następnie logujemy się na konto główne i sprawdzamy, czy pulpit wyświetla się z domyślną konfiguracją.
Tego ostatniego kroku nie należy pomijać. Potwierdza on, że konfiguracja objęła wyłącznie konto Kiosk, a pozostałe konta działają bez zmian.
Autor artykułu:
Bartosz Leśniak
Praktykant ASTOR
Student kierunku Automatyka i robotyka na Akademii Górniczo-Hutniczej w Krakowie
Współpraca i wsparcie merytoryczne: Wojciech Talik