Está en la página 1de 7

TEMA

about_Scripts
DESCRIPCIN BREVE
Describe como se escriben y ejecutan scripts en Windows PowerShell.
DESCRIPCIN DETALLADA
Un script es un archivo de texto sin formato que contiene uno o
varios comandos de Windows PowerShell. Los scripts de Windows
PowerShell tiene la extensin .ps1.
Al escribir un script, se guarda un comando para utilizarlo
posteriormente y se facilita su uso compartido con otros
usuarios. Y lo que es ms importante, un script permite ejecutar
los comandos escribiendo simplemente su ruta de acceso y nombre
de archivo. Los scripts pueden ser tan simples como un solo
comando en un archivo o tan extensos como un programa complejo.
Los scripts tienen caractersticas adicionales, como el
comentario especial #Requires, el uso de parmetros, la
compatibilidad con secciones de datos y firmas digitales por
motivos de seguridad. Asimismo, se pueden escribir temas de Ayuda
para los scripts y para cualquier funcin en los scripts.
CMO ESCRIBIR UN SCRIPT
Un script puede contener cualquier comando vlido de Windows
PowerShell, como un solo comando, comandos que usan la
canalizacin, funciones y estructuras de control, como
instrucciones If y bucles For.
Para escribir un script, inicie un editor de texto, como Bloc de
notas, o un editor de scripts, como Entorno de scripting
integrado (ISE) de Windows PowerShell. Escriba los comandos y
gurdelos en un archivo con un nombre de archivo vlido y la
extensin .ps1.
El ejemplo siguiente es un script simple que obtiene los
servicios que se estn ejecutando en el sistema actual y los
guarda en un archivo de registro. El nombre del archivo de
registro se crea a partir de la fecha actual.
$date = (get-date).dayofyear
get-service | out-file "$date.log"
Para crear este script, abra un editor de texto o un editor de
scripts, escriba estos comandos y, a continuacin, gurdelos en un archivo denom
inado
"registroDeServicios.ps1".
CMO EJECUTAR UN SCRIPT
Para poder ejecutar un script, deber cambiar la directiva de
ejecucin predeterminada de Windows PowerShell. La directiva de
ejecucin predeterminada, "Restricted", evita la ejecucin de
todos los scripts, incluidos los que se escriben en el equipo
local. Para obtener ms informacin, vea about_Execution_Policies.
Para ejecutar un script, escriba el nombre completo y la ruta de
acceso completa al archivo de script.
Por ejemplo, para ejecutar el script registroDeServicios en el
directorio C:\Scripts, escriba:
c:\scripts\registroDeServicios.ps1
Para ejecutar un script en el directorio actual, escriba la ruta
de acceso al directorio actual o use un punto para representar el
directorio actual, seguido de una barra diagonal inversa (.\).
Por ejemplo, para ejecutar el script registroDeServicios.ps1 en
el directorio local, escriba:
.\registroDeServicios.ps1
Por motivos de seguridad, Windows PowerShell no ejecuta scripts
cuando se hace doble clic el icono de un script en el Explorador
de Windows o se escribe el nombre del script sin ruta de acceso
completa, incluso si el script se encuentra en el directorio
actual. Para obtener ms informacin sobre la ejecucin de comandos
y scripts en Windows PowerShell, vea about_Command_Precedence.
EJECUTAR LOS SCRIPTS DE FORMA REMOTA
Para ejecutar un script en un equipo remoto, utilice el parmetro
FilePath del cmdlet Invoke-Command.
Escriba la ruta de acceso y el nombre de archivo del script como el valor
del parmetro FilePath. El script debe residir en el equipo local o en un
directorio al que pueda obtener acceso el equipo local.
El comando siguiente ejecuta el script registroDeServicios.ps1 en
el equipo remoto Servidor01.
invoke-command -computername Servidor01 -filepath C:\scripts\registroDeS
ervicios.ps1
PARMETROS EN LOS SCRIPTS
Para definir parmetros en un script, utilice una instruccin
Param. La instruccin Param debe ser la primera instruccin en un
script, salvo en el caso de los comentarios e instrucciones #requires.
Los parmetros de script funcionan de la misma manera que los
parmetros de funcin. Los valores de parmetro estn disponibles
para todos los comandos en el script. Todas las caractersticas
de los parmetros de funcin, incluidos el atributo Parameter y
sus argumentos con nombre, tambin son vlidas en los scripts.
Al ejecutar un script, se escriben los parmetros despus del
nombre del script.
En el ejemplo siguiente se muestra un script Prueba-Remota.ps1
que tiene un parmetro ComputerName. Ambas funciones del script
pueden obtener acceso al valor del parmetro ComputerName.
param ($ComputerName = $(throw "El parmetro ComputerName es obligatorio."
))
function CanPing {
$error.clear()
$tmp = test-connection $computername -erroraction SilentlyContinue
if (!$?)
{write-host "Error de ping: $ComputerName."; return $false}
else
{write-host "Ping correcto: $ComputerName"; return $true}
}
function CanRemote {
$s = new-pssession $computername -erroraction SilentlyContinue
if ($s -is [System.Management.Automation.Runspaces.PSSession])
{write-host "Prueba remota correcta: $ComputerName."}
else
{write-host "Error de prueba remota: $ComputerName."}
}
if (CanPing $computername) {CanRemote $computername}
Para ejecutar este script, escriba el nombre del parmetro
despus del nombre del script. Por ejemplo:
C:\PS> .\prueba-remota.ps1 -computername Servidor01
Ping correcto: Servidor01
Error de prueba remota: Servidor01
Para obtener ms informacin sobre la instruccin Param y los
parmetros de funcin, vea about_Functions y about_Functions_Advan
ced_Parameters.
AYUDA PARA LOS SCRIPTS
El cmdlet Get-Help obtiene ayuda para los scripts, as como para
los cmdlets, proveedores y funciones. Si desea obtener la Ayuda para
un script, escriba Get-Help as como la ruta de acceso y el
nombre de archivo del script. Si la ruta de acceso del script
est en la variable de entorno Path, podr omitirla.
Por ejemplo, si desea obtener la Ayuda para el script registroDeServi
cios.ps1, escriba:
get-help C:\admin\scripts\registroDeServicios.ps1
Puede escribir la Ayuda de un script mediante cualquiera de los
dos mtodos siguientes:
-- Ayuda basada en comentarios para los scripts
Se puede crear un tema de la Ayuda usando palabras clave
especiales en los comentarios. Para crear la Ayuda basada en
comentarios para un script, los comentarios deben colocarse
al principio o al final del archivo de script. Para obtener
ms informacin sobre la Ayuda basada en comentarios, vea
about_Comment_Based_Help.
-- Ayuda basada en XML para los scripts
Se puede crear un tema de ayuda basado en XML, del tipo de
los que suelen crearse para los cmdlets. La Ayuda basada en
XML es necesaria cuando se van a traducir los temas de la Ayuda
a varios idiomas.
Para asociar el script al tema de la Ayuda basado en XML, se
utiliza la palabra clave de comentario de la Ayuda .ExternalHelp.
Para obtener ms informacin sobre la palabra clave ExternalHelp,
vea about_Comment_Based_Help. Para obtener ms informacin sobre
la Ayuda basada en XML, vea el tema acerca de cmo se escribe
la Ayuda de los cmdlets en MSDN Library en
http://go.microsoft.com/fwlink/?LinkID=123415.
MBITO DE LOS SCRIPTS Y SCRIPTS PREFIJADOS POR PUNTOS
Cada script se ejecuta en su propio mbito. Los alias, funciones,
variables y unidades que se crean en el script existen nicamente
en el mbito del script y no se puede obtener acceso a estos
elementos ni a sus valores en el mbito en el que se ejecuta el script.
Para ejecutar un script en un mbito diferente, puede especificar
un mbito, como Global o Local, o usar un script prefijado por punto.
La caracterstica de script prefijado por punto permite ejecutar
un script en el mbito actual en lugar de ejecutarlo en el mbito
del script. Cuando se ejecuta un script prefijado por punto, los
comandos del script se ejecutan como si se hubieran escrito en el
smbolo del sistema. Los alias, funciones, variables y unidades
que el script crea se crean en el mbito en el que se est trabajando.
Despus de ejecutar el script, se pueden usar los elementos creados
y se puede obtener acceso a sus valores en la sesin.
Para usar un script prefijado por punto, escriba un punto (.) y
un espacio delante de la ruta de acceso al script.
Por ejemplo:
. C:\scripts\funcionesDeUtilidad.ps1
-o bien,
. .\funcionesDeUtilidad.ps1
Despus de ejecutarse el script funcionesDeUtilidad, las funciones y
variables creadas por el script se agregan al mbito actual.
Por ejemplo, el script funcionesDeUtilidad.ps1 crea la funcin
New-Profile y la variable $ProfileName.
#En funcionesDeUtilidad.ps1
function New-Profile
{
Write-Host "Se est ejecutando la funcin New-Profile"
$profileName = split-path $profile -leaf
if (test-path $profile)
{write-error "Ya hay un perfil $profileName en este equipo."}
else
{new-item -type file -path $profile -force }
}
Si se ejecuta el script funcionesDeUtilidad.ps1 en su propio
mbito, la funcin New-Profile y la variable $ProfileName solo
existen durante la ejecucin del script. Cuando se cierra el
script, se quitan la funcin y la variable, tal y como se muestra
en el ejemplo siguiente.
C:\PS> .\funcionesDeUtilidad.ps1
C:\PS> New-Profile
El trmino 'new-profile' no se reconoce como cmdlet, funcin,
programa ejecutable ni archivo de script. Compruebe el
trmino e intntelo de nuevo.
En lnea:1 carcter:12
+ new-profile <<<<
+ CategoryInfo : ObjectNotFound: (new-profile:String) [],
+ FullyQualifiedErrorId : CommandNotFoundException
C:\PS> $profileName
C:\PS>
Si usa y ejecuta el script prefijado por punto, el script crea la
funcin New-Profile y la variable $ProfileName en su sesin en su
mbito. Despus de ejecutar el script, puede usar la funcin New-Profile
en su sesin, tal y como se muestra en el ejemplo siguiente.
C:\PS> . .\funcionesDeUtilidad.ps1
C:\PS> New-Profile
Directory: C:\Users\juneb\Documents\WindowsPowerShell
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 1/14/2009 3:08 p. m. 0 Microsoft.PowerShellISE_profile.p
s1
C:\PS> $profileName
Microsoft.PowerShellISE_profile.ps1
Para obtener ms informacin sobre los mbitos, vea about_Scopes.
SCRIPTS EN MDULOS
Un mdulo es un conjunto de recursos relacionados de Windows
PowerShell que se pueden distribuir como una unidad. Puede usar
mdulos para organizar los scripts, funciones y otros recursos.
Tambin puede utilizarlos para distribuir cdigo a otros usuarios
y obtener cdigo de orgenes de confianza.
Puede incluir scripts en los mdulos o crear un mdulo de script,
que es un mdulo que se compone completamente o principalmente de
un script y recursos auxiliares. Un mdulo de script es
simplemente un script con la extensin .psm1.
Para obtener ms informacin sobre los mdulos, vea about_Modules.
OTRAS CARACTERSTICAS DE LOS SCRIPTS
Windows PowerShell incluye numerosas caractersticas tiles que
se pueden usar en los scripts.
#Requires
Puede usar una instruccin #Requires para evitar que un
script se ejecute sin los mdulos o complementos
especificados y sin la versin especificada de Windows
PowerShell. Para obtener ms informacin, vea about_Requires.
$MyInvocation
La variable automtica $MyInvocation contiene informacin
sobre el comando actual, incluido el script actual. Puede
usar esta variable y sus propiedades para obtener informacin
sobre el script durante su ejecucin. Por ejemplo, la variable
$MyInvocation.MyCommand.Path contiene la ruta de acceso y el nombre
de archivo del script.
Secciones de datos
Puede usar la palabra clave Data para separar los datos de la
lgica en los scripts.
Las secciones de datos tambin pueden facilitar la
localizacin. Para obtener ms informacin, vea
about_Data_Sections y about_Script_Localization.
Firma de los scripts
Puede agregar una firma digital a un script. Segn la
directiva de ejecucin, puede usar firmas digitales para
restringir la ejecucin de los scripts que podran incluir
comandos inseguros. Para obtener ms informacin, vea
about_Execution_Policies y about_Signing.
VEA TAMBIN
about_Command_Precedence
about_Comment_Based_Help
about_Execution_Policies
about_Functions
about_Modules
about_Profiles
about_Requires
about_Scopes
about_Script_Blocks
about_Signing
Invoke-Command

También podría gustarte