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_Unix7/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_batch7/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.pdf7/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.pdf7/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).aspx7/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).aspx7/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.htm7/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
Top Related