ud. 7 scripting en sistemas operativos

Upload: samu-purrinos

Post on 01-Mar-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    1/16

    Profesor, Tradutor e Corrector: Borja Rey Seoane

    UNIDADE 7SCRIPTING EN SISTEMAS OPERATIVOS

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    2/16

    1

    Scripting en Sistemas

    OperativosA shelle as linguaxes de scripting

    Shell o termo empregado en informtica para se referir a un intrprete de

    comandos consistente nunha interface de usuario tradicional funcional a travs dunha

    consola de texto (tamn coecida coma terminal). Normalmente empregar ordes ou

    comandos propios do sistema as coma instrucins dunha linguaxe de programacin en

    modo intrprete. Mediante as instrucins aportadas polo intrprete, o usuario pdesecomunicar co ncleo do sistema operativo e, por extensin, executar as devanditas ordes

    as coma ferramentas que lle permitirn controlar o funcionamento da computadora.

    Os comandos que aportan os intrpretes poden empregarse a xeito de guin se se

    escriben dentro duns ficheiros de texto pseudoexecutables (en realidade son

    interpretables) coecidos coma shell-scripts1 ou, simplemente, scripts. s veces, nas

    contornas Microsoft (MS-DOS e Windows) denomnaselles aos scriptsmediante o termo

    batch, xa que as primeiras versins deste tipo de ficheiros s podan executarse por

    lotes2.

    Deste xeito, cando o usuario precisa facer emprega de varios comandos (ou

    combinacins destes con ferramentas), escribe nun ficheiro de texto marcado coma

    executable aquelas operacins que, posteriormente e lia por lia, o intrprete traducir

    ao ncleo para a sa realizacin.

    Para acceder s tarefas de shell, pois, precisamos dunha terminal co seu

    correspondente intrprete de comandos activo.

    1Un script un guin, ficheiro de ordes ou ficheiro de procesamento por lotes que representa o cdigo

    dun programa usualmente simple, que polo xeral almacenado nun ficheiro de texto plano. Os scriptsson case

    que sempre interpretados, pero iso non implica que todo programa interpretado sexa un script. A emprega

    habitual deste tipo de ficheiros a de realizar tarefas tpicas da administracin de sistemas, tales coma a

    combinacin de compoentes, a instalacin e configuracin de software, a interaccin en xeral co sistema

    operativo, etc.

    2Cocese coma execucin por lotes ou batcha aquela execucin dun programa de xeito desatendido,

    isto , sen necesidade da interaccin directa do usuario.

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    3/16

    2

    Como se fai isto? Depender do sistema operativo empregado. En Windows

    poderemos empregar cmd(o intrprete de comandos tradicional, baseado na consola de

    MS-DOS) ou PowerShell (en versins mis modernas); ambos accesibles dende a

    opcin de executar no inicio do sistema.

    No caso de contornas GNU/Linux accederemos terminal directamente no arrinque(en modo texto) ou ben dende unha GUI (habitualmente tras da combinacin de teclas

    Alt+F2.

    Tipos de shell

    Se nos cinguimos aos sistemas operativos mis coecidos hoxe en da, poderemos

    indicar os seguintes intrpretes shell.

    GNU/Linux

    Temos diversos intrpretes, sendo os mis empregados: sh (Bourne Shell), bash

    (Bourne-Again Shell), ksh(Korn Shell), zsh(Z Shell) e fish(Friendly Interactive Shell).

    Para saber mis

    Na Wikipedia dispoemos dun b punto de partida para coecer algo mis sobre as

    shellde GNU/Linux (e dos sistemas operativos UNIX en xeral):

    Shell de Unix

    As mesmo, nestoutro enlace atoparedes informacin en detalle sobre as shellmis

    tpicas:

    Anlise dasshellpara Linux mis populares

    Neste enlace dispoedes dun listado dos comandos dispoibles para bash, a shell

    mis empregada en GNU/Linux:

    Listado de comandos en bash

    Microsoft Windows

    Coma xa comentamos, temos basicamente das posibilidades: cmde PowerShell,

    sendo o primeiro mis coecido por herdar a sa estrutura e funcionalidade dos sistemas

    operativos MS-DOS, predecesores das familias Windows 9X e NT. mbolos dous tipos de

    shellsoportan a execucin de scriptstanto de tipo BAT (batch) coma VBS (Visual Basic

    Script).

    https://es.wikipedia.org/wiki/Shell_de_Unixhttps://es.wikipedia.org/wiki/Shell_de_Unixhttp://hipertextual.com/archivo/2014/09/shell-para-linux/http://hipertextual.com/archivo/2014/09/shell-para-linux/http://hipertextual.com/archivo/2014/09/shell-para-linux/http://hipertextual.com/archivo/2014/09/shell-para-linux/http://ss64.com/bash/http://ss64.com/bash/http://ss64.com/bash/http://hipertextual.com/archivo/2014/09/shell-para-linux/https://es.wikipedia.org/wiki/Shell_de_Unix
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    4/16

    3

    Para saber mis

    No seguinte artigo de Wikipedia faise unha lene introducin sintaxe e estrutura dos

    ficheiros BAT:

    Ficheiro batch

    Neste enlace temos un listado dos comandos soportados pola maiora de versins de

    cmd:

    Comandos de cmd para Microsoft Windows

    Velaqu mis un enlace cun listado alternativo de comandos de cmd:

    Mis comandos de cmd para Microsoft Windows

    A continuacin figura un enlace coas posibles estruturas soportadas nun scriptVBS:

    Nomenclatura e listado dos comandos VBS

    E, por ltimo en relacin s shellde Microsoft, un listado de comandos soportados

    por PowerShell:

    Listado de comandos para PowerShell

    Estruturas da linguaxe

    Os intrpretes de comandos ou shells soportan tamn unha serie de linguaxes deprogramacin completas. A programacin de shellemprgase moito para realizar tarefas

    repetitivas e que non requiren de programas complexos para a sa resolucin. Os

    administradores de sistemas adoitan escribir programas ou aplicacins na linguaxe de

    base da shelldo sistema operativo por motivos de rapidez e eficiencia.

    Como toda linguaxe, dbense cumprir uns certos requirimentos para a sa emprega,

    tales coma respectar a sa sintaxe e semntica, de xeito que non se contean erros.

    Ese tipo de linguaxe de programacin consta de ordes (ou comandos) que,

    xeralmente, poderemos empregar directamente nunha contorna de tipo terminal. A

    maiores desas ordes disporemos dunha serie de estruturas de fluxo de programa e

    instrucins bsicas (como, por exemplo, operadores aritmtico-lxicos) que nos

    permitiran xogar coas distintas ordes dispoibles no sistema.

    https://es.wikipedia.org/wiki/Archivo_batchhttps://es.wikipedia.org/wiki/Archivo_batchhttp://www.kapcom.com.au/Windows-CMD-Commands-CMD-Network-Commands.htmlhttp://www.kapcom.com.au/Windows-CMD-Commands-CMD-Network-Commands.htmlhttp://ss64.com/nt/http://ss64.com/nt/http://ss64.com/vb/http://ss64.com/vb/http://ss64.com/ps/http://ss64.com/ps/http://ss64.com/ps/http://ss64.com/vb/http://ss64.com/nt/http://www.kapcom.com.au/Windows-CMD-Commands-CMD-Network-Commands.htmlhttps://es.wikipedia.org/wiki/Archivo_batch
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    5/16

    4

    A continuacin un exemplo de como pode verse un script tpico en bash

    (GNU/Linux):

    #!/bin/bash

    # meusdatos.sh

    # amosa datos relativos ao usuario co executa

    #

    echo "OS MEUS DATOS."

    echo " Nome: "$LOGNAME

    echo "Directorio: "$HOME

    echo -n "Data: "

    date

    echo

    # fin meusdatos.sh

    Para saber mis

    No seguinte enlace poders estudar as estruturas da linguaxe de scriptsdos distintos

    tipos de shellen GNU/Linux:

    Compendio completo de ShellScripting en GNU/Linux (ingls)

    Outro recurso interesante que introduce as estruturas dos scriptsde shell tanto en

    contornas Microsoft Windows coma GNU/Linux:

    Estruturashellen Microsoft Windows e GNU/Linux

    No enlace de Wikipedia que figura a continuacin atoparedes un punto de referencia

    para vos introducir na PowerShell dos sistemas Microsoft Windows actuais:

    Windows PowerShell

    Variables de contorna e paso de parmetros

    Non debemos esquecer que para interactuar de xeito mis eficiente co sistema

    operativo debemos ter un sistema cmodo para nos comunicar con el. Ese sistema ten

    que ser fiable e conseguir que as rutinas que implementamos sexan o mis eficientes

    posible. Isto consegumolo, por exemplo, mediante a emprega de variables de

    contorna.

    Sabemos que toda linguaxe de programacin dispn de distintos xeitos de gardar

    informacin ou datos a medida que se van xerando. As, os datos que se almacenan na

    memoria principal estarn contidos, segundo o cdigo dos programas, nunha estruturas

    coecidas coma variables. Esas variables poden ser xeradas polo propio programa,

    http://www.freeos.com/guides/lsst/http://www.freeos.com/guides/lsst/http://www.freeos.com/guides/lsst/http://www.freeos.com/guides/lsst/http://www.freeos.com/guides/lsst/http://www.freeos.com/guides/lsst/http://recursostic.educacion.es/observatorio/web/es/software/programacion/573-javier-martinez-avedillohttp://recursostic.educacion.es/observatorio/web/es/software/programacion/573-javier-martinez-avedillohttp://recursostic.educacion.es/observatorio/web/es/software/programacion/573-javier-martinez-avedillohttp://recursostic.educacion.es/observatorio/web/es/software/programacion/573-javier-martinez-avedillohttps://en.wikipedia.org/wiki/Windows_PowerShellhttps://en.wikipedia.org/wiki/Windows_PowerShellhttps://en.wikipedia.org/wiki/Windows_PowerShellhttp://recursostic.educacion.es/observatorio/web/es/software/programacion/573-javier-martinez-avedillohttp://www.freeos.com/guides/lsst/
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    6/16

    5

    poden ser definidas polo programador ou ben poden ser tomadas directamente do

    sistema operativo. A esas ltimas coceselles coma variables de contorna.

    Que son as variables?

    Coma xa dixemos, unha variable o nome interno que lle damos a unha porcin de

    memoria na cal almacenamos un certo dato.

    Que son as variables de contorna?

    Son obxectos designados para conter unha informacin concreta, a cal ser

    compartida polos distintos procesos do sistema. Entre outras grdanse datos tales coma:

    a versin do ncleo do sistema operativo, o identificador do usuario actual, a hora do

    sistema, etc.

    As variables de contorna sanse, pois, para fornecer simultaneamente unha mesma

    informacin a moitos procesos distintos, permitindo que estes compartan tales datos.

    En Windows poderemos observar as variables de contorna por defecto nas claves de

    rexistro seguintes:

    HKEY_CURRENT_USER\Environment

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

    Manager\Environment

    En GNU/Linux poderemos consultar as distintas variables de contorna existentesmediante o comando set.

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    7/16

    6

    Captura de pantalla amosando certas variables de contorna dun sistema

    Microsoft Windows 8.

    A continuacin algns exemplos de variables de contorna en sistemas MicrosoftWindows:

    echo %COMPUTERNAME% #extrae o nome da mquina.

    echo %date% #extrae a data actual do sistema.

    Tamn podemos crear as nosas propias variables de contorna e modificar o seu

    valor:

    set anual=%date:~-4%echo %anual%

    2011

    Algo semellante ocorre cos sistemas GNU/Linux. Velaqu un exemplo:

    echo $PATH #extrae tdolos camios de busca por defecto.

    export PATH=$PATH:/home/usuario/bin #engade o directorio indicado

    ao listado de camios de busca.

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    8/16

    7

    Para saber mis

    Eis un enlace das distintas variables de contorna que adoitan soportar os sistemas

    Microsoft Windows e GNU/Linux:

    Variables de contorna en Windows e Linux

    Creacin e depuracin de scripts

    Para crear un scriptprecisamos un editor de texto plano porque, coma xa dixemos,

    este tipo de programas son en realidade ficheiros de texto plano que son interpretados

    lia a lia pola shell.

    No caso dos scriptsde Windows, tales ficheiros debern ter extensin .batou .cmd

    (se falamos de scriptsde tipo BAT) ou .vbs(se falamos de VisualBasic Scripts).Para a sa execucin, un ficheiro de script en Windows que tea, por exemplo, o

    nome direccionar.batexecutarase mediante:

    C:\direccionar

    Non sendo necesario indicar a extensin non sendo que o nome do ficheiro provoque

    conflito con outro homnimo tamn executable pero de diferente extensin que se atope

    na mesma ruta.Para GNU/Linux a cousa un chisco distinta. Anda que se adoita acompaar os

    nomes dos scriptsda extensin .sh, o certo que esta non precisa, e que simplemente

    engadida de xeito orientativo para que usuarios e administradores poidan recoecer

    este tipo de ficheiros comodamente. Ademais do anterior, unha vez creado un scripten

    GNU/Linux, ser preciso asignarlle os correspondentes permisos de execucin mediante o

    comando chmodxa que, doutro xeito, comportarase coma un ficheiro regular de texto,

    imposibilitando a sa execucin.

    Para executar un script (por exemplo chamado direccionar.sh) en GNU/Linux

    contamos con das posibilidades:

    Empregando o comando sh:

    sh direccionar.sh

    Sen empregar o comando sh:

    http://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R07_VARIABLES_ENTORNO.pdfhttp://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R07_VARIABLES_ENTORNO.pdfhttp://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R07_VARIABLES_ENTORNO.pdf
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    9/16

    8

    ./direccionar.sh

    Cando temos un scriptgrande e vemos, durante a sa execucin, que algo est a

    fallar, aproveitamos para facer trazas mediante o comando echo, de xeito que poidamos

    illar con maior facilidade o problema e as resolvelo.

    importante dispoer dalgunha ferramenta que nos faga servizo de debugger3

    (sempre que sexa posible) e seguir, paso a paso, a execucin do script conforme

    interpretado orde a orde. Deste xeito, poderemos comprobar o cdigo do script

    inspeccionando o resultado das distintas ordes e o contido das variables empregadas no

    mesmo.

    Para saber mis

    Neste ficheiro poderedes ver distintos xeitos de depuracin dispoibles en GNU/Linux

    e Microsoft Windows:

    Depuracin descriptsen GNU/Linux e Microsoft Windows

    No caso dos sistemas operativos GNU/Linux, o comando shque empregamos para

    lanzar os scriptsten un parmetro que nos permite visualizar as operacins realizadas

    dentro do mesmo, o valor das variables, etc. Tal e coma comentaramos anteriormente.

    Para saber mis

    Nestoutro enlace poderedes descargar BASH Debuggerunha aplicacin grfica que,

    coma o seu propio nome indica, permite depurar scriptsescritos para a shellbash de

    GNU/Linux:

    BASH Debugger

    Interpretacin de scriptsdo sistema

    Coma se mencionou con anterioridade, os scriptsempregan ordes propias das shelldos sistemas operativos, sendo esas (as shell) as encargadas de interpretar cada lia e

    xerar os resultados correspondentes.

    Non esquezamos que, aparte de instrucins ou ordes, poden empregarse variables

    de contorna includas no propio sistema operativo.

    3Un debugger ou depurador un programa empregado para probar e, coma o seu nome indica, depurar

    os erros que poidan existir no cdigo doutro programa (ou script).

    http://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R09_DEPURACION_SCRIPTS.pdfhttp://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R09_DEPURACION_SCRIPTS.pdfhttp://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R09_DEPURACION_SCRIPTS.pdfhttp://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R09_DEPURACION_SCRIPTS.pdfhttp://bashdb.sourceforge.net/http://bashdb.sourceforge.net/http://bashdb.sourceforge.net/http://www.edu.xunta.es/platega/file.php/3728/ASO07/ASO07_Web/ASO07_CONT_R09_DEPURACION_SCRIPTS.pdf
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    10/16

    9

    Non preciso, pois, realizar ningn tipo de adaptacin dos nosos sistemas para

    poder executar scripts, en tanto que estes empregan linguaxes que son nativas aos

    mesmos. Iso si, os permisos e privilexios de cada scriptdebern ser os axeitados para a

    tarefa a realizar, ou corremos o risco de que esta poida ser abortada ou, peor, mal

    realizada.

    Por exemplo: a variable de contorna $LOGNAMEde GNU/Linux almacena o nome do

    usuario que ten a sesin actual aberta. As pois con:

    #!/bin/bash

    echo $LOGNAME

    Amosamos por sada estndar (por defecto, a lia de comandos) o nome do usuario

    propietario da sesin actual.

    Se quixeramos, por exemplo, un scriptde GNU/Linux que amose a data do sistema

    seguida polo nome do usuario actual poderiamos escribir algo coma isto:

    #!/bin/bash

    date

    who am i

    Para saber mis

    Velaqu un listado das instrucins e operacins dispoibles en VisualBasic Script:

    Manual de Referencia de VisualBasic Script

    Utilizacin de extensins de comandos para

    tarefas de administracin

    Entendemos por tarefas administrativasaquelas realizadas de xeito repetitivo ou

    rutinario e, xeralmente, tamn obrigatorio. Son precisamente este tipo de tarefas as quemis se benefician da automatizacin va scripten tanto que permiten aforrar tempo moi

    valioso aos administradores de sistemas; tempo que logo pode ser investido noutras

    labores.

    Para saber mis

    Neste enlace dispoedes dun moi completo manual (en ingls) de scriptingBATen

    contornas Microsoft Windows:

    https://msdn.microsoft.com/es-es/library/ha6zwzx0(v=vs.80).aspxhttps://msdn.microsoft.com/es-es/library/ha6zwzx0(v=vs.80).aspxhttps://msdn.microsoft.com/es-es/library/ha6zwzx0(v=vs.80).aspx
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    11/16

    10

    Gua parascriptingbatch en Windows

    Nestoutro enlace atoparedes unha pequena introducin aos ficheiros por lotes e s

    variables de contorna dispoibles en sistemas Microsoft Windows:

    Introducin shellde comandos

    Poamos un exemplo: os nosos usuarios precisan acceder a varias unidades lxicas

    e, a travs dos seus perfs do usuario, s est permitido o acceso a unha nica unidade.

    Co gaio de resolver isto creamos un script que realice esa tarefa. Creamos un script e

    gardmolo no cartafol especfico para tales fins:

    C:\Windows\sysvol\server.local\sysvol\scripts

    # Sincroniza a hora co servidor.

    @echo offnet time \\ servidor /set /yes

    # Elimina as unidades lxicas que se van empregar.

    net use z: /delete

    net use y: /delete

    # Asigna as unidades lxicas.

    net use z: "\\servidor\%username%$"

    net use y: "\\ servidor \traballos$"

    Para saber mis

    No enlace que figura a continuacin tendes as extensins e comandos de que dispno cmddas contornas Microsoft Windows:

    Tboa de extensins e comandos de DOS

    Personalizacin e/ou creacin de extensins de

    comandos especficos

    As extensins de comandos emprganse para ampliar a funcionalidade dedeterminados comandos do sistema (e s en sistemas operativos Microsoft Windows). Os

    comandos aos que afectan poden ser consultados mediante:

    cmd/?

    Como sabemos se as extensins de comandos estn habilitadas?Revisamos o

    rexistro e accedemos s claves seguintes:

    http://steve-jansen.github.io/guides/windows-batch-scripting/http://steve-jansen.github.io/guides/windows-batch-scripting/http://steve-jansen.github.io/guides/windows-batch-scripting/http://steve-jansen.github.io/guides/windows-batch-scripting/https://technet.microsoft.com/es-es/library/cc737438(WS.10).aspxhttps://technet.microsoft.com/es-es/library/cc737438(WS.10).aspxhttps://technet.microsoft.com/es-es/library/cc737438(WS.10).aspxhttps://technet.microsoft.com/es-es/library/cc737438(WS.10).aspxhttps://support.microsoft.com/es-es/kb/72188https://support.microsoft.com/es-es/kb/72188https://support.microsoft.com/es-es/kb/72188https://technet.microsoft.com/es-es/library/cc737438(WS.10).aspxhttp://steve-jansen.github.io/guides/windows-batch-scripting/
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    12/16

    11

    HKEY_CURRENT_USER\Software\Microsoft\Command

    Processor\EnableExtensions

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command

    Processor\EnableExtensions

    Velaqu un exemplo: empregamos o comando SET para crear novas variables de

    contorna e as probar se podemos aplicar o asignado s mesmas.

    C:\>SET meufogar=C:\Documents and Settings\usuario

    C:\>CD % meufogar %

    C:\Documents and Settings\usuario>

    Z:\>SET m=ping -n 1 www.kernel.org

    Z:\>%m%

    Haciendo ping a www.kernel.org [195.77.128.9] con 32 bytes de

    datos:Respuesta desde 195.77.128.9: bytes=32 tiempo=46ms TTL=247

    Estadsticas de ping para 195.77.128.9:

    Paquetes: enviados = 1, recibidos = 1, perdidos = 0 (0% perdidos),

    Tiempos aproximados de recorrido redondo en milisegundos:

    mnimo = 46ms, mximo = 46ms, promedio = 46ms

    Imos indicar como habilitar as extensins de comandos se estas non estn

    habilitadas. Isto realzase empregando o flagenableextensionsdentro dun ficheiro de

    scriptBAT(ou CMD).

    Vamos a indicar como habilitar las extensiones de comandos si stas no estn

    habilitadas. Esto se realiza con el flag o bandera enableextensions. Y lo aplicamos a un

    fichero BAT o CMD.

    #Nome do ficheiro: tail.cmd

    #Utilizacin: tail archivo nmero de lias.

    #Ejemplo: tail proba.txt 3

    @echo offsetlocal ENABLEEXTENSIONS

    if {%2} == {} (set "lines=%1") else set "lines=%2"

    for /f %%a in ('find /c /v "" ^< %1') do set /a skip=%%a-lines

    for /f "delims=" %%a in ('more /e +%skip% ^< %1') do (

    echo %%a

    )

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    13/16

    12

    Para saber mis

    Neste enlace temos mis un listado dos comandos dispoibles tipicamente nun cmd

    de Microsoft Windows:

    Comandos parascriptsBAT ou CMD

    E no enlace seguinte vemos exemplos de uso das variables de contorna habituais de

    Microsoft Windows 7:

    Lista das variables de contorna de Microsoft Windows 7

    Acceso ao rexistro

    O concepto de rexistro do sistema (ou simplemente rexistro) exclusivo aos

    sistemas Microsoft Windows, e consiste nunha estrutura de datos na cal son almacenadasas configuracins e opcins dos distintos elementos, programas e ferramentas instalados,

    as coma do sistema operativo no seu conxunto.

    O rexistro de Windows mantn informacin sobre a configuracin do hardware, o

    software, as contas de usuario e equipos, e as preferencias da mquina, seguindo unha

    estrutura xerrquica de rbore invertida.

    Para saber mis

    De seguido disporedes de varios enlaces nos cales informarvos mis detalladamente

    da organizacin e funcionamento do rexistro de Microsoft Windows:

    Manual do rexistro de Windows e a ferramenta regedit

    O rexistro de Windows en Wikipedia

    O rexistro de Windows explicado doadamente

    Sabemos que mediante as ordes regedit.exe e regedit32.exepodemos acceder a

    e editar o rexistro de Windows pero, posible traballar sobre o rexistro mediante

    un ficheiro descript?Si, posible.

    Para acceder ao rexistro emprganse, polo xeral, scripts escritos en VisualBasic

    Script (anda que non obrigadamente). Por exemplo: queremos escribir un script que

    acceda ao rexistro para coecer o punto de instalacin por defecto dos programas; de

    xeito que nos amose a ruta do cartafol correspondente mediante un dilogo emerxente.

    'Creamos unha variable para empregar o mtodo RegRead

    Dim Obxecto

    https://technet.microsoft.com/es-es/library/cc772390(WS.10).aspxhttps://technet.microsoft.com/es-es/library/cc772390(WS.10).aspxhttps://technet.microsoft.com/es-es/library/cc772390(WS.10).aspxhttps://technet.microsoft.com/es-es/library/cc772390(WS.10).aspxhttps://norfipc.com/inf/variables-entorno.htmlhttps://norfipc.com/inf/variables-entorno.htmlhttps://norfipc.com/inf/manual-registro.htmlhttps://norfipc.com/inf/manual-registro.htmlhttps://es.wikipedia.org/wiki/Registro_de_Windowshttps://es.wikipedia.org/wiki/Registro_de_Windowshttp://windowsespanol.about.com/od/ConoceEInstalaWindows/ss/Registro-Windows.htmhttp://windowsespanol.about.com/od/ConoceEInstalaWindows/ss/Registro-Windows.htmhttp://windowsespanol.about.com/od/ConoceEInstalaWindows/ss/Registro-Windows.htmhttps://es.wikipedia.org/wiki/Registro_de_Windowshttps://norfipc.com/inf/manual-registro.htmlhttps://norfipc.com/inf/variables-entorno.htmlhttps://technet.microsoft.com/es-es/library/cc772390(WS.10).aspx
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    14/16

    13

    'Creamos o obxecto

    Set Obxecto = CreateObject("Wscript.Shell")

    'Amosamos mediante un Msgbox o valor do dato "ProgramFilesDir

    (x86)" que ten a ruta denantes mencionada

    MsgBox

    Obxecto.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir (x86)")

    'Eliminamos a variable de obxecto

    Set Obxecto = Nothing

    Programacin para a xestin do directorio activo

    Nesta ocasin imos comezar cun exemplo realizado en Windows Server 2008 e cun

    script realizado en VisualBasic Script. Este script vai extraendo os usuarios do grupo

    soporteque est dentro da unidade organizativa redesdo dominio meudominio.local.

    'Indicamos en que obxecto procuraremos.

    Set obxectoGrupo =

    GetObject("LDAP://cn=soporte,ou=redes,dc=meudominio,dc=local")

    'Realiza unha chamada subrutina que realiza a busca.

    Call EnumeraMembros(obxectoGrupo)

    'Desenvolvemento da subrutina. Enva coma parmetro o obxecto de

    busca.

    Sub EnumeraMembros(obxectoGrupo)

    For Each obxectoMembro In ObxectoGrupo.Members

    wscript.Echo "Membro: " & obxectoMembro.SAMAccountName _ & "(" & obxectoMembro.class & ")"

    If (LCase(obxectoMembro.Class = "group") Then

    Call EnumerarMembros(obxectoMembro)

    End If

    Next

    End Sub

    Scriptspara a administracin de contas de

    usuario, procesos e servizos en WindowsNeste caso tamn comezamos cun exemplo. O script seguinte est realizado en

    VisualBasic Script e o seu obxectivo crear 10 contas de usuario dentro da unidade

    organizativa redes. Estas contas precisaran, posteriormente, un refinamento das sas

    propiedades particulares:

    Set objRootDSE = GetObject("LDAP://rootDSE")

    Set objContainer = GetObject("LDAP://ou=redes," & _

    objRootDSE.Get("defaultNamingContext"))

  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    15/16

    14

    For i = 1 To 10

    Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)

    objLeaf.Put "sAMAccountName", "UserNo" & i

    objLeaf.SetInfo

    Next

    WScript.Echo "10 Usuarios creados."

    En sistemas de servidor Microsoft Windows til dispoer de scriptsque asignen os

    recursos aos usuarios ao acceder ao sistema. Un bo exemplo disto sera o seguinte

    ficheiro BAT:

    @echo off

    #Sincronizacin da hora do equipo cliente coa do servidor

    net time \\nombre_netbios /set /yes

    #Elimina as unidades lxicas por se estiveran en uso.

    net use z: /delete

    net use y: /delete

    #Crea as unidades lxicas que se empregarn.

    #Defnese un cartafol compartido oculto como zona de traballo do

    usuario.

    net use z: "\\ nombre_netbios \%username%$"

    #Defnese un cartafol compartido oculto para uso dun departamento,

    por exemplo.

    net use y: "\\ nombre_netbios \GBD$"

    Para saber mis

    No seguinte enlace atopars exemplos abondo coma para te facer unha idea do

    funcionamento bsico dos scriptspara LDAP sobre mquinas Windows Server:

    PowerShell e Active Directory (en ingls)

    E para ter unha referencia sobre a arquitectura de Active Directory e como traballar

    mediante scriptssobre o mesmo, recorremos directamente s fontes de Microsoft:

    ADSI Scripting no technet de Microsoft

    Scriptspara a administracin de contas de

    usuario, procesos e servizos de GNU/Linux

    No caso de GNU/Linux, existen diversos xeitos de crear scripts para que sexan

    usados polos usuarios ou para que corran de xeito automatizado xestionando parmetros

    e variables do sistema.

    http://www.computerperformance.co.uk/powershell/powershell_active_directory.htmhttp://www.computerperformance.co.uk/powershell/powershell_active_directory.htmhttps://technet.microsoft.com/en-us/library/ee156524.aspxhttps://technet.microsoft.com/en-us/library/ee156524.aspxhttps://technet.microsoft.com/en-us/library/ee156524.aspxhttp://www.computerperformance.co.uk/powershell/powershell_active_directory.htm
  • 7/25/2019 Ud. 7 Scripting en Sistemas Operativos

    16/16

    15

    Existe, por exemplo, un scriptde inicio onde son asignados por defecto os valores

    dos perfiles dos usuarios (en /etc/profile). Disponse, as mesmo, no contexto das shell

    BASHdun ficheiro oculto, almacenado no cartafol de traballo de cada usuario, e de nome

    .bashrc que definen que ordes sern executadas no inicio de sesin do usuario

    correspondente. En paralelo a este, existe o script .bash_logout, no cal defnense astarefas a realizar durante o peche de sesin.

    O seguinte scriptpara BASHamosa solicita un nome de usuario e un nome de grupo

    ao usuario actual e resposta indicando se tales elementos existen xa no sistema.

    #! /bin/bash

    clear

    read -p "Indica un usuario... " user

    read -p "Indica un grupo... " group

    ifgrep -e "^$user:.*" /etc/passwd > /dev/null

    then

    if grep -e "^$group:.*" /etc/group > /dev/nullthen

    echo "Usuario e grupo xa existen no sistema"

    elif grep -e "^$group:.*" /etc/group > /dev/nullthen

    echo "usuario no existe, grupo si"

    else

    echo "Nin grupo nin usuario existen"

    fi

    fi