PV175 Správa MS Windows I Podzim 2008 Motivace — Funkcionalita grafických nástrojů bývá různě omezená — V doméně je skript možné aplikovat centrálně pomocí Group Policy na neomezené množství stanic — Některé úlohy je nutné / jednodušší provádět na stanici a přitom je chceme centrálně spravovat — Skripty je možné spouštět opakovaně bez další práce Skriptování vs. programování — Skriptování není programování — Skripty se nekompilují, pouze interpretují — Ve skriptech se využívá volání programů, služeb a funkcí operačního systému — Skripty nebývají chráněné autorskými právy, naopak obvykle jsou volně zveřejňovány k použití a úpravám PowerShell — Nová generace příkazové řádky — Propojeno s .Net framework — Dosti složitý a komplexní nástroj — V současnosti je mnoho pokročilých administrátorských nástrojů Microsoftu vytvářeno pouze jako grafická nadstavba PowerShellu ◦ Snadné nasazení Visual Basic Script — Soubory skriptu mají příponu vbs — Dostupné ve všech OS Windows — Umožňuje volání vnitřních funkcí operačního systému — Vhodné pro parsování textových dat — Nemá interaktivní mód — Skripty jsou spouštěny pod procesem cscript.exe (mód příkazové řádky) nebo wscript.exe (GUI mód) Ukázka ‘ Skript vypisující obsah souboru v parametru ‘ definice konstanty Const ForReading = 1 ‘ definice proměnné set objArgs = WScript.Arguments ‘ volání funkcí operačního systému Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFileTxt = objFSO.OpenTextFile (objArgs(0), ForReading) ‘ cyklus s podmínkou Do Until objFileTxt.AtEndOfStream strLine = objFileTxt.ReadLine wscript.echo strline loop Windows command line — Soubory skriptu mají příponu cmd — Dostupné ve všech počítačích s operačním systémem Windows — Velice jednoduché, intuitivní — Nejmenší nabídka funkcí — Skripty jsou spouštěny pod procesem cmd.exe Základní příkazy — cd : Změna pracovního adresáře — dir : Výpis obsahu adresáře — echo : Výpis parametru na výstup — go to : Nepodmíněný skok ve skriptu — if : Podmíněné větvení — for : Cyklus ◦ Často se používá k parsování souborů Manipulace se soubory — copy : Kopírování souborů — del : Smazání souboru — md : vytvoření nové složky — move : Přesun souboru — rd : Smazání složky — set : nastavení proměnných — type : Výpis obsahu souboru CMD přesměrování — Do souboru ◦ > filename – Uložení výstupu příkazu do souboru filename, předchozí obsah souboru je zahozen ◦ >> – Uložení výstupu příkazu do souboru filename, nová data jsou přidána za již uložená — K jinému příkazu ◦ cmd1 | cmd2 – Výstup příkazu cmd1 se použije jako vstup příkazu cmd2 Ukázka REM neopisování příkazů @echo off REM propojení příkazů a uložení jejich výstupu do souboru find /V "//" %1 | find /V "[" > export.txt REM výpis pouze některých položek souboru, odděleno dvojtečkou for /F "delims=, skip=2 tokens=2,4*" %%G IN (export.txt) DO echo %%G:%%H >> tosort.txt REM uspořádání podle abecedy sort tosort.txt REM smazání dočasných souborů del tosort.txt export.txt Efekt skriptu Původní soubor [office] 1,pc01,01-02-03-04-05-06,192.168.2.10 2,pc02,aa-bb-cc-dd-ee-ff,192.168.11.134 3,pc03,a1-b1-ef-34-c3-d2,147.251.15.23 // Potrebuje vymenu // Technik dorazi v pondeli 40,gandalf,a1-b1-ef-34-c12,147.251.10.100 [servery] 6,adserver,a1-b1-ef-34-f2-d2,147.251.56.1 // Nefunkcni 7,pc45,aa-bb-cc-dd-ee-ee,192.168.12.20 How to I — Jak zajistit, aby se skript spustil pouze jednou (pro uživatele / pro počítač) ◦ Uložit soubor a následně spouštět skript kontrolující jeho existenci — Jak umožnit procesu skriptu přístup i do oblasti, kde jsou omezena přístupová práva ◦ Spouštět skript jako naplánovanou úlohu pod administrátorským / systémovým účtem nebo jako logon / logoff / startup skript How to II — Jak zabránit opisování příkazů na výstup ◦ @echo off — Jak znemožnit uživatelům vypnutí logon skriptů ◦ GPO: Visible logon scripts — Jak zjistit parametry příkazu ◦ /? J Best practices — Nejlepší skript je ten, který udělal někdo jiný J — Pokud neexistuje skript, který přesně dělá to, co je požadováno, je nejlepší si stáhnout podobný a upravit ho — I k velmi krátkým skriptům je třeba psát komentáře Odkazy — Script Center Repository ◦ http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx — Popis příkazů cmd ◦ http://www.ss64.com/nt/ ◦ http://technet.microsoft.com/cs-cz/library/bb491071(en-us).aspx Dotazy? Díky za pozornost