Blog (6)
Komentarze (40)
Recenzje (0)

Wstępna konfiguracja Windowsa przy pomocy skryptu batch

Strona główna@chmod700Wstępna konfiguracja Windowsa przy pomocy skryptu batch
07.04.2016 14:16

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ć:

bDUliYnH
@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:

bDUliYnN
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 /code

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:

bDUliYnO
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /fREG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t REG_DWORD /d 1 /fREG 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ą:

bDUliYnP
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:

bDUliYnQ
set /p admin=Podaj nazwe konta do usuniecia:net user %admin% /delrd /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_istniejemkdir C:\temp:temp_istnieje

Powyższy fragment wpierw sprawdza czy istnieje katalog C:\temp. Jeśli tak to przeskakuje do ":tempistnieje", 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.

bDUliYoD