Blog (6)
Komentarze (50)
Recenzje (0)
@chmod700Wstępna konfiguracja Windowsa przy pomocy skryptu batch

Wstępna konfiguracja Windowsa przy pomocy skryptu batch

07.04.2016 14:16, aktualizacja: 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.

Wybrane dla Ciebie
Komentarze (30)