piątek, 18 stycznia 2013

Automatyczna konfiguracja Windows, cz.2

Tym razem przedstawię sposób na automatyczne przejście przez proces wyboru typu sieci (publiczna, domowa, itp). Jest to dość przydatne podczas przygotowywania systemu do współpracy z Selenium Grid.

W poniższych przykładach węzeł ControlSet001 można zastąpić CurrentControlSet jeśli system był chociaż raz uruchamiany, w przeciwnym razie, gdy np. ściągnęliśmy obraz IE VHD i przygotowywujemy go do pierwszego uruchomienia klucz CurrentControlSet nie będzie jeszcze istniał.

W obu przypadkach efektem ominięcia wyboru typu sieci będzie oznaczenie danej sieci jak publiczna.

Windows 7

Tutaj sprawa jest prosta, należy zaimportować poniższy plik do rejestru i cieszyć się brakiem pytania o typ sieci.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\NetworkLocationWizard]
"HideWizard"=dword:00000001

Windows Vista

W systemie Vista ominięcie ekranu wyboru jest trochę bardziej skomplikowane. Nie istnieją żadne ustawienia rejestru (z tego co mi wiadomo) które pozwalają na automatyczne ustawienie typu sieci. Pozostaje więc napisanie skryptu VBS.

Set objShell = CreateObject("WScript.Shell")

'wait for window
While objShell.APpActivate ("Set Network Location") = FALSE
Wscript.Sleep 1000
Wend

While objShell.APpActivate ("Set Network Location") = TRUE
Wscript.Sleep 1000

'close window
objShell.Sendkeys "{ESC}"

Wend

Powyższy skrypt czeka na pojawienie się okna o nazwie Set Network Location po czym zamyka je klawiszem ESC.

W przypadku gdy chcemy by system został skonfigurowany juz przy pierwszym uruchomieniu trzeba jeszcze dodać poniższy wpis do rejestru by skrypt został automatycznie uruchomiony.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"glorpen_reg"="C:\\glorpen\\network_type.vbs"

Wpisy pod kluczem RunOnce są uruchamiane tylko raz - po wykonaniu ich wpisy są usuwane.