Windows 7 - upratovací skript

Z CVTI SR | SVS BB | Školská wikiencyklopédia
Skočit na navigaciSkočit na vyhledávání

Cieľom je, aby sa počítač po každom zapnutí tváril čo najčistejšie, teda aby na ploche nezostávali rôzne pracovné súbory, aby neboli nastavené rôzne podivné pozadia a podobne.

Skript by mohol byť užitočný pre školy bez Windows Server a Active Directory, teda o bežných PC s Windows 7 Home.

Na začiatoč jednoduchšie riešenie, ktoré rieši len mazanie žiackej plochy (všetky ikony, ktoré majú zostať na ploche, sú v spoločnej ploche), dočasných súborov (temp) a vracia obrázok pozadia:

 %~d0
 cd %~dp0
 set HKziak=HKU\S-1-5-21-2162720052-787350490-1719276253-1000
 del C:\Users\ziak\Desktop\*.* /s /f /q
 FOR /D %%p IN ("C:\Users\ziak\Desktop\*.*") DO rd "%%p" /s /q
 del C:\Windows\Temp\*.* /s /f /q
 FOR /D %%p IN ("C:\Windows\Temp\*.*") DO rd "%%p" /s /q
 del C:\Users\ziak\AppData\Local\Temp\*.* /s /f /q
 FOR /D %%p IN ("C:\Users\ziak\AppData\Local\Temp\*.*") DO rd "%%p" /s /q
 reg add "%HKziak%\Control Panel\Desktop" /v "Wallpaper" /d "C:\Windows\Web\Wallpaper\Windows\img0.jpg" /f 
  • pozn: identifikátor používateľa treba dať vlastný - ide o to, že skript sa spúšťa pod účtom správcu, preto sa nedá ísť jednoducho cez HKCU. Ak by sa v skripte pracovalo na viacerých miestach s registrami používateľa, bude vhodné cestu do registra žiaka dať do premennej - každý si nastaví svoj, prípadne tam dá "HKCU"

Za týmto miestom je už len volanie logon skriptu, ktorý je na NAS - to je práve na to, aby som mohol na všetky PC nasadiť nové upratovacie príkazy bez potreby behania k PC.

Skript sa spúšťa cez Plánovač úloh s oprávneniami správcu. Samozrejme, ak to bude treba, dá sa pridať skript, ktorý bude bežať priamo pod účtom žiaka.

Toto riešenie funguje, ale je slabé - napr. keď žiak zmení celú tému vzhľadu, zostane zmenená. K dispozícií je síce VBS skript, ktorý dosť okľukou nastaví východziu Aero tému, lenže on nechá otvorený ovládací panel so zmenou témy

 Set WshShell = WScript.CreateObject("WScript.Shell")
 Dim appID
 appID = WshShell.Run("rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /file:""C:\Windows\Resources\Themes\aero.theme""", 0)
 Wscript.Sleep(5000)
 WshShell.Sendkeys("%SZ")

Problém je práve to zavretie okna cez Sendkeys, lenže ak medzitým focus prejde k inému oknu, nezafunguje.

Ďalšia vec je, že aj keď žiaci nemôžu potrebné ikony z plochy zmazať a nimi pridané ikony sa zmažú, vedia ich rozhádzať. Bolo by teda vhodné pridať obnovu uloženej pozície ikon (vraj to ide cez DesktopCmd)

Čiže treba doplniť (nie všetko je nutné, ale nebolo by zlé):

  • zmenu témy vzhľadu
  • obnovu rozloženia ikon
  • zapnutie zvuku a nastavenie hlasitosti (žiaci často vypínajú zvuk, asi sa hrávajú a nechcú, aby to bolo počuť?)
  • vypnutie "šetriča" obrazovky (ja nastavené vypnutie monitora a zdá sa mi zbytočné, aby tam behali bubliny alebo všelijaké nápisy)

Pôvodný článok spracoval Dušan Zevran