Wstępna konfiguracja Windowsa przy pomocy skryptu batch
07.04.2016 | aktual.: 07.04.2016 20:48
W poniższym wpisie przedstawiam kilka prostych, aczkolwiek przydatnych przykładów skryptów, które pomogą nieco zautomatyzować proces konfiguracji nowego komputera z Windowsem na pokładzie. W myśl zasady mówiącej, że każda czynność, którą powtarzamy więcej niż raz powinna zostać oskryptowana.
W skrócie, plik batchowy to plik zawierający ciąg poleceń, które jest w stanie wykonać interpreter komend (powłoka) - w przypadku Windowsów od Windows NT wzwyż jest to "cmd.exe". Kolejne komendy w pliku umieszczamy jedna pod drugą i w takiej też kolejności są wykonywane. Plik batchowy powinien mieć rozszerzenie .bat.
Początek skryptu
W pierwszym wierszu warto umieścić:
@echo off
dzięki czemu podczas wykonywania pliku batchowego nie będą wyświetlane na ekranie wybierane polecenia, a jedynie ich rezultat. Może się również okazać pomocne ustawienie strony kodowej:
chcp 1250
co pozwoli nam na korzystanie z polskich znaków. Aczkolwiek nie zawsze warto zawracać sobie tym głowę.
Ustawianie zmiennych środowiskowych TMP oraz TEMP
Do rzeczy. Poniższy fragment skryptu utworzy katalog temp na partycji systemowej, a następnie przypisze na stałe systemowe zmienne środowiskowe TMP oraz TEMP do tego katalogu:
IF NOT EXIST "%SystemDrive%:\temp" ( mkdir %SystemDrive%:\temp ) setx /m TEMP %SystemDrive%\Temp setx /m TMP %SystemDrive%\Temp setx TEMP %SystemDrive%\Temp setx TMP %SystemDrive%\Temp
Zamiast zmiennej %SystemDrive% można śmiało wpisać na sztywno literę partycji systemowej, np.: "C:\temp".
Ukryte pliki, foldery i rozszerzenia plików
Następnie odkrywamy ukryte pliki i katalogi oraz rozszerzenia plików:
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t REG_DWORD /d 1 /f REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f
Ponieważ powyższe komendy modyfikują wpisy w rejestrze to zmiany te zostaną uwzględnione dopiero po restarcie systemu.
Zarządzanie kontami
Jeśli po postawieniu Windowsa odblokowaliśmy, domyślnie wyłączone, konto "Administrator", np. za pomocą:
net user administrator /active:yes
to poniższym kodem zmienimy do niego hasło. Co ważne - wpisywane znaki nie będą wyświetlane na ekranie ani nie zostaną zapisane do zewnętrznego pliku:
net user administrator *
Teraz, po zalogowaniu na konto "Administratora", możemy usunąć pierwsze lokalne konto, które zostało utworzone podczas instalacji systemu. Skrypt poprosi o podanie nazwy konta do usunięcia. Prócz tego usunięte zostaną również katalogi uzytkownika:
set /p admin=Podaj nazwe konta do usuniecia: net user %admin% /del rd /s /q c:\users\%admin%
Powyższy kod, przy pomocy "set /p admin" wyświetli po znaku "=" wybrany monit, a następnie przypisze do zmiennej "admin" podaną przez użytkownika nazwę konta, by wykorzystać ją linię niżej.
Hibernacja
Jeśli potrzebujemy ustawić hibernację na komputerze, wystarczy dodać:
powercfg -H ON
Analogicznie, jeśli chcemy wyłączyć hibernację i usunąć plik "hiberfil.sys" po przełączniku "‑H" dajemy "OFF".
Zmiana nazwy komputera
Kolejny fragment pozwala nam zmienić wygodnie nazwę komputera. Co ważne zmiana ta wchodzi w życie od razu i nie wymaga restartu. Ponowie korzystamy z "set /p" by odpowiedź użytkownika przypisać do zmiennej:
set /p nowanazwa=Podaj nowa nazwe komputera: wmic computersystem where name="%computername%" call rename name="%nowanazwa%"
Zmiana formatu daty
Zmiana krótkiego formatu daty w systemie na dd‑mm-rrrr:
REG add "HKU\.Default\Control Panel\International" /v sShortDate /t REG_SZ /d dd-mm-rrrr /f
Jak w przypadku innych wpisów w rejestrze - zmiana ta wejdzie w życie po restarcie.
Wyłączanie informacji o debugowaniu
Wyłączamy zapisywanie informacji przy debugowaniu:
REG add "HKLM\SYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 0 /f
Kontrola konta użytkownika
A tak można wyłączyć kontrolę konta użytkownika (UAC):
REG add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f
Ponownie mamy do czynienia z rejestrem i ponownie zmiana zacznie obowiązywać po restarcie.
Instrukcja skoku: GOTO
Na koniec wspomnę jeszcze o bardzo pomocnej instrukcji skoku: goto. Dzięki niej możemy łatwo przeskakiwać między wybranymi fragmentami kodu. By z niej skorzystać wpierw w kodzie skryptu, definiujemy punkty poprzedzone dwukropkiem, do których będziemy chcieli przeskoczyć:
:unikatowa_nazwa
Teraz aby przeskoczyć do wyżej wymienionego fragmentu piszemy:
goto unikatowa_nazwa
Przykład wykorzystania instrukcji goto:
IF EXIST "C:\temp" goto temp_istnieje mkdir C:\temp :temp_istnieje
Powyższy fragment wpierw sprawdza czy istnieje katalog C:\temp. Jeśli tak to przeskakuje do ":temp_istnieje", a następnie wykonywane są dalsze części skryptu. Jeśli natomiast warunek IF nie jest spełniony wówczas, za pomocą "mkdir C:\temp", utworzony zostaje ww. folder i dopiero po tym wykona się dalsza część skryptu.
Z pliku batchowego zawierającego powyższe komendy sam często korzystałem. Oczywiście istnieje masa ustawień, które można dostosować za pomocą jednego, prostego skryptu. Polecam dalsze drążenie tematu co często zaoszczędzi trochę czasu, a w sytuacjach wymagających szybkiej reakcji - pewnie także i stresu.