Windows PowerShell es el nuevo shell de línea de comandos de
Windows que se ha diseñado expresamente para los administradores de
sistemas. El shell incluye un símbolo del sistema interactivo y un
entorno de scripting que se pueden usar de forma independiente o
conjunta. Windows PowerShell se ha creado sobre .NET Framework, Common
Language Runtime (CLR) y .NET Framework, y acepta y devuelve objetos de
.NET.
Windows PowerShell es un shell de línea de comandos con
tecnología de scripting basada en tareas que proporciona a los
administradores de tecnologías de la información (TI) un control
integral y la posibilidad de automatizar las tareas de administración
del sistema, mejorando así su productividad. Windows PowerShell incluye
numerosas utilidades de administración del sistema, convenciones de
nomenclatura y sintaxis coherentes, y navegación mejorada para los datos
de administración comunes, como el Registro, el almacén de certificados
o el Instrumental de administración de Windows (WMI). Windows
PowerShell también incluye un lenguaje de scripting intuitivo diseñado
específicamente para la administración de TI.
En esta sección se proporciona una introducción a los
siguientes elementos de Windows PowerShell: lenguaje, comandos (los
denominados "cmdlets"), proveedores y uso de objetos.
Las características siguientes hacen de Windows PowerShell un tipo de shell diferente:
-
No procesa texto, En su lugar, procesa objetos basados en la plataforma .NET.
-
Ofrece una gran cantidad de comandos integrados con una interfaz coherente.
-
Se utiliza el mismo analizador de comandos para todos los comandos
del shell, en lugar de un analizador distinto para cada herramienta. De
este modo, resulta mucho más sencillo aprender a utilizar cada comando.
-
No es necesario dejar de usar las herramientas a las que se está
acostumbrado. Se pueden seguir usando las herramientas tradicionales de
Windows, como .NET y Reg.exe, en Windows PowerShell.
Windows PowerShell está pensado para que se use en una amplia
gama de productos de Microsoft, incluido Microsoft Forefront Protection
2010 for SharePoint (FPSP).
Windows PowerShell es una herramienta que se puede usar en
combinación con la interfaz gráfica de usuario y cualquier script
VBScript ya creado. Windows PowerShell es un complemento de VBScript y
otras tecnologías de administración. Se puede usar Windows PowerShell en
lugar de la Forefront Protection 2010 for SharePoint Administrator
Console, pero probablemente le sacará el máximo partido para tareas
especializadas que sean repetitivas.
Windows PowerShell ofrece un entorno interactivo completo.
Cuando escribe un comando en el símbolo del sistema, este comando se
procesa y la salida se muestra en la ventana del shell. La salida de un
comando se puede enviar también a un archivo o a la impresora, o se
puede enviar a otro comando mediante el operador de canalización (|).
En
Windows PowerShell se presenta el concepto de "cmdlet" (abreviatura de
"command-let"), que consiste en una sencilla herramienta de línea de
comandos integrada en el shell que permite realizar una función. Los
cmdlets se pueden utilizar por separado, pero se obtiene el máximo
provecho al usarlas conjuntamente para realizar tareas complejas.
Windows PowerShell incluye más de cien cmdlets básicos. Hay
aproximadamente 65 cmdlets para FPSP. Un cmdlet es un comando de una
sola función que manipula objetos en Windows PowerShell. Puede reconocer
los cmdlets por el formato del nombre, que consiste en un verbo y un
nombre separados por un guión (-), como Get-Help,
Set-FsspSignatureUpdate y Set-FsspRealtimeScan.
Nota: |
Aunque se usan mayúsculas en los nombres de cmdlet para que sean
más legibles, Windows PowerShell no distingue entre mayúsculas y
minúsculas.
|
En Windows PowerShell, la
mayoría de los cmdlets son simples. Por ejemplo, los cmdlets "get" solo
recuperan datos y los cmdlets "set" solo establecen o cambian datos.
Aunque
a primera vista pase inadvertido, cuando se trabaja con Windows
PowerShell, en realidad se está trabajando con objetos de .NET. A medida
que vaya ganando experiencia, cada vez le resultará más evidente la
eficacia del procesamiento de objetos, utilizará los objetos y entenderá
su lógica.
Técnicamente, un objeto de .NET es una instancia de
una clase de .NET que se compone de datos y de las operaciones asociadas
a esos datos. No obstante, un objeto puede concebirse como una entidad
de datos con propiedades (como características y métodos), que son
acciones que se pueden llevar a cabo sobre el objeto.
Por ejemplo,
cuando obtiene un servicio en Windows PowerShell, en realidad obtiene
un objeto que representa el servicio. Cuando consulta información sobre
un servicio, está viendo las propiedades del objeto de servicio. Al
iniciar un servicio, está usando un método del objeto de servicio.
Todos
los objetos del mismo tipo tienen las mismas propiedades y métodos,
pero cada instancia del objeto puede tener establecidos valores
distintos para sus propiedades. Por ejemplo, todos los objetos de
servicio tienen una propiedad de nombre y de estado. Sin embargo, cada
servicio puede tener un nombre y un estado diferentes.
Puede usar
el operador de canalización (|) para enviar los resultados de un cmdlet
(indicado a la izquierda del operador) a otro (especificado a la derecha
del operador). Para averiguar qué tipo de objeto obtiene un cmdlet, use
el cmdlet Get-Member, que obtiene información sobre objetos o
colecciones de objetos. Use el operador de canalización para enviar los
resultados de un comando Get a Get-Member. Por ejemplo, el comando
siguiente envía los objetos recuperados por un comando Get-Service a
Get-Member.
De esta forma se devuelve información como la siguiente sobre el objeto de servicio:
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
add_Disposed Method System.Void add_Disposed(EventHandler value)
Close Method System.Void Close()
Continue Method System.Void Continue()
...
Si desea buscar los valores de todas las propiedades de un
determinado objeto, use el operador de canalización (|) para enviar los
resultados de un comando Get a un comando Format-List o Format-Table.
(Los cmdlets Format se usan para mejorar la legibilidad de la salida.
Para obtener más información, vea
Formato de salida).
Use el parámetro -property del cmdlet de formato con el valor "todos"
(*). Por ejemplo, para buscar todas las propiedades del servicio
Schedule en el sistema, escriba lo siguiente:
get-service schedule | format-list -property *
De esta forma se devuelve la información sobre las propiedades en un formato de lista, por ejemplo:
Name : Schedule
CanPauseAndContinue : True
CanShutdown : True
CanStop : True
DisplayName : Task Scheduler
DependentServices : {}
MachineName : .
ServiceName : Schedule
ServicesDependedOn : {RpcSs}
ServiceHandle : SafeServiceHandle
Status : Running
ServiceType : Win32ShareProcess
Site :
Container :
Una de las principales ventajas de usar objetos es que
resulta más sencillo pasar la salida de un comando a otro comando como
entrada, lo que recibe el nombre de
canalización.
Mientras
que la comunicación a menudo requiere la manipulación de las cadenas de
caracteres para convertir la salida de un formato a otro, y quitar los
títulos y encabezados de columna, Windows PowerShell proporciona un
nuevo modelo interactivo que está basado en objetos en lugar de estar
basado en texto. Esto significa que el cmdlet que recibe un objeto puede
actuar directamente sobre sus propiedades o métodos sin tener que
llevar a cabo conversión o manipulación alguna. Se puede hacer
referencia a las propiedades y métodos del objeto por su nombre, en
lugar de calcular la posición de los datos en la salida.
En el
ejemplo siguiente, el resultado de un comando ipconfig se pasa a un
comando Findstr. El operador de canalización (|) envía el resultado del
comando de la izquierda al comando de la derecha. No es necesario
manipular cadenas ni calcular el desplazamiento de los datos.
PS> ipconfig | findstr "Address"
IP Address. . . . . . . . . . . . : 172.28.21.5
IP Address. . . . . . . . . . . . : 172.30.160.225
Si
ejecuta ciertos comandos o secuencias de comandos repetidas veces, o si
desarrolla una serie de comandos para llevar a cabo una tarea compleja,
le interesará guardarlos en un archivo con extensión .ps1 y ejecutar
este archivo (denominado "script") en lugar de escribir los comandos en
el símbolo del sistema.
Además de su interfaz interactiva, Windows
PowerShell ofrece plena compatibilidad con el uso de scripts. Para
ejecutar un script, escriba su nombre en el símbolo del sistema.
Especificar la extensión .ps1 es opcional.
Por ejemplo, lo siguiente es equivalente:
c:\test\testscript.ps1
c:\test\testscript
Nota: |
Debe especificar la ruta completa del archivo de script aunque
éste se encuentre en la carpeta actual. Para indicar la carpeta actual,
escriba el nombre de la carpeta o use un punto (.) para representarla.
Por ejemplo:
|
Importante: |
Aunque los scripts resultan de gran utilidad, e incluso
esenciales, podrían utilizarse para difundir código malintencionado. Por
esta razón, la directiva de seguridad de Windows PowerShell permite
determinar si se pueden ejecutar los scripts y si deben incluir una
firma digital. Para eliminar riesgos evidentes, ninguna de las
directivas de seguridad de Windows PowerShell permite ejecutar un script
haciendo doble clic en su icono. Para obtener más información, escriba: | |
Windows PowerShell dispone también de un lenguaje de
scripting muy completo que permite crear desde los scripts más simples
hasta los más complejos. Permite utilizar bucles, condiciones, control
de flujo y asignación de variables.
Para iniciar Windows PowerShell desde el menú Inicio
- Siga uno de estos procedimientos:
-
Si FPSP no está instalado, haga clic en Inicio, elija Todos los programas, seleccione Windows PowerShell 1.0 y, a continuación, haga clic en Windows PowerShell.
-
Si FPSP está instalado, haga clic en Inicio, seleccione Todos los programas y Microsoft Forefront Server Protection, y a continuación haga clic en Consola de administración de Forefront.
Para iniciar Windows PowerShell desde una ventana de símbolo del sistema (cmd.exe)
- En el símbolo del sistema, escriba powershell y, a continuación, presione ENTRAR.
Para ver los parámetros que puede usar al iniciar Windows PowerShell
- En el símbolo del sistema, escriba Powershell -? y, a continuación, presione ENTRAR.
Puesto
que la consola de Windows PowerShell se comporta prácticamente igual
que una consola del símbolo del sistema, puede ejecutar todos los
archivos ejecutables de línea de comandos desde la consola de Windows
PowerShell (por ejemplo: ipconfig); incluso puede ejecutar scripts
VBScript y archivos por lotes desde la consola de Windows PowerShell.
Como en cualquier consola, simplemente escriba el comando y presione
ENTRAR.
En la ventana de Windows PowerShell, puede usar el cmdlet Get-Help para buscar ayuda.
Para usar el cmdlet Get-Help
- Para usar el cmdlet Get-Help, en un símbolo del sistema de Windows PowerShell, escriba gethelp y, a continuación, presione ENTRAR.
Para ver una lista de todos los conceptos de Windows PowerShell
- Para ver una lista de todos los conceptos de Windows PowerShell, escriba get-help about_* y, a continuación, presione ENTRAR.
Para obtener ayuda sobre un concepto
- Para obtener ayuda sobre un concepto, escriba su nombre después de "about_". Por ejemplo, escriba get-help about_wildcard y, a continuación, presione ENTRAR.
Para ver todos los cmdlets que tiene a su disposición
- Para ver todos los cmdlets que tiene a su disposición, escriba get-command y, a continuación, presione ENTRAR.
Nota: |
El cmdlet Get-Command también recupera otros comandos y
elementos de comandos que no son cmdlets, incluidos alias, funciones y
archivos ejecutables que están disponibles en Windows PowerShell.
|
Para obtener ayuda para un cmdlet determinado
- Cada cmdlet tiene un archivo de ayuda al que
se puede tener acceso desde la ventana de Windows PowerShell. Para
obtener ayuda para un cmdlet determinado, escriba get-helpnombre del cmdlet y, a continuación, presione INTRO.
Por ejemplo, para ver la Ayuda de Set-FsspSignatureUpdate, escriba
get-help Set-FsspSignatureUpdate
Para obtener ayuda detallada para un cmdlet determinado
- Cada cmdlet dispone de ayuda detallada, que
incluye la explicación de cada uno de los parámetros y uno o más
ejemplos. Para obtener ayuda detallada para un cmdlet determinado,
escriba get-helpnombre de cmdlet-detailed y, a continuación, presione INTRO.
Por ejemplo, para ver la ayuda detallada de Set-FsspSignatureUpdate, escriba
get-help Set-FsspSignatureUpdate
Para ver solo los ejemplos de un cmdlet determinado
- Para ver solo los ejemplos de un cmdlet determinado, escriba get-helpnombre de cmdlet -examples y, a continuación, presione INTRO.
Por ejemplo, para ver solo los ejemplos de Set-FsspSignatureUpdate, escriba
get-help Set-FsspSignatureUpdate -examples
Para ver solo un parámetro determinado
- Para ver solo un parámetro determinado, escriba get-helpnombre de cmdlet-parameternombre de parámetro y, a continuación, presione INTRO.
Por ejemplo, para ver la Ayuda únicamente para el parámetro ScheduleStart del cmdlet Set-FsspSignatureUpdate:
get-help Set-FsspSignatureUpdate -parameter ScheduleStart
Para ver una lista de todos los cmdlets que tienen un verbo común
- Para ver una lista de todos los cmdlets que
tienen un verbo común, escriba el verbo, seguido de un guión (-) y un
asterisco (*), y a continuación presione ENTRAR.
Por ejemplo, ver una lista de todos los cmdlets Set:
get-help set-*
Algunos
cmdlets tienen parámetros, que empiezan por un guión (-), que permiten
indicar varias opciones. Por ejemplo, el cmdlet Set-FsspSignatureUpdate
tiene varios parámetros, como: Engine, ScheduleStart y EnableSchedule.
Muchos cmdlets no tienen ningún parámetro. Normalmente, los cmdlets Set
son los que tienen más probabilidades de tener parámetros.
Todos
los cmdlets admiten un conjunto de parámetros que se denominan
parámetros comunes. Algunos ejemplos son Verbose, Debug y ErrorAction.
Esta característica proporciona una interfaz uniforme a Windows
PowerShell. Para obtener una descripción de los parámetros comunes,
escriba:
get-help about_commonparameters
Muchos
de los cmdlets Set tienen parámetros que permiten activar y desactivar
condiciones mediante los indicadores true y false. En Windows
PowerShell, los valores booleanos true y false van precedidos del signo
de dólar ($).
Por ejemplo, para que se actualicen las definiciones
del motor de detección cada vez que se inicie el servicio de Forefront,
establezca el parámetro -UpdateAtStartup de Set-FsspSignatureOptions en
true, como se indica a continuación:
Set-FsspSignatureOptions -UpdateAtStartup $true
Puede
recuperar la salida en varios formatos diferentes si canaliza la
solicitud en uno de cmdlets Format opcionales enumerados en la tabla.
Cmdlet | Función |
format-list | Da formato de lista a la salida; cada propiedad aparece en una línea independiente |
format-table | Da a la salida un formato de tabla con columnas |
format-wide | Aplica a la salida el formato de una tabla ancha en la que se muestra únicamente una propiedad de cada objeto |
format-custom | Da a la salida un formato basado en las vistas de un archivo PS1XML |
Para
obtener más información sobre cada cmdlet de formato, use el cmdlet
Get-Help con cualquiera de ellos. A continuación, se proporciona un
ejemplo:
FPSP admite los cmdlets siguientes. Están agrupados por función para que se encuentren más fácilmente.
La tabla siguiente contiene los cmdlets que se usan para controlar la detección programada.
Cmdlet | Función |
Set-FsspScheduledScan | Establece la configuración de la detección programada. |
Get-FsspScheduledScan | Recupera la configuración de la detección programada. |
Start-FsspScheduledScan | Inicia una detección del almacén de base de datos inmediatamente. |
Stop-FsspScheduledScan | Detiene una detección del almacén de base de datos en curso. |
Suspend-FsspScheduledScan | Pausa una detección del almacén de base de datos en curso. |
Resume-FsspScheduledScan | Reanuda una detección suspendida del almacén de base de datos. |
La tabla siguiente contiene los cmdlets que se usan para controlar la detección en tiempo real.
Cmdlet | Función |
Set-FsspRealtimeScan | Establece la configuración de la detección en tiempo real. |
Get-FsspRealtimeScan | Recupera los valores de configuración de la detección en tiempo real. |
La tabla siguiente contiene los cmdlets que se usan para controlar la detección a petición.
Cmdlet | Función |
Set-FsspOnDemandScan | Establece las opciones de configuración de la detección a petición. |
Get-FsspOnDemandScan | Recupera los valores de configuración para la detección a petición. |
Start-FsspOnDemandScan | Inicia la detección a petición. |
Stop-FsspOnDemandScan | Detiene la ejecución de una detección a petición. |
Suspend-FsspOnDemandScan | Pausa una detección a petición en curso. |
Resume-FsspOnDemandScan | Reanuda una detección a petición en pausa. |
La tabla siguiente contiene los cmdlets que se usan para trabajar con listas de filtros.
Cmdlet | Función |
New-FsspFilterList | Crea una nueva lista de filtros. |
Get-FsspFilterList | Recupera listas de filtros. |
Set-FsspFilterList | Cambia las propiedades de una lista de filtros. |
Clear-FsspFilterList | Borra todas las entradas de una lista de filtros. |
Remove-FsspFilterList | Elimina una lista de filtros. |
Add-FsspFilterListEntry | Agrega uno o más elementos a una lista de filtros existente. |
Remove-FsspFilterListEntry | Quita uno o más elementos de una lista de filtros. |
La tabla siguiente contiene los cmdlets que se usan para el filtrado durante la detección programada.
Cmdlet | Función |
Set-FsspScheduledFilter | Habilita un filtro, lo configura y lo asocia a la detección programada. |
Set-FsspScheduledFilter | Recupera los filtros de la detección programada configurados. |
La tabla siguiente contiene los cmdlets que se usan para el filtrado durante la detección en tiempo real.
Cmdlet | Función |
Set-FsspRealtimeFilter | Habilita un filtro, lo configura y lo asocia a la detección en tiempo real. |
Get-FsspRealtimeFilter | Recupera los filtros de la detección en tiempo real configurados. |
La tabla siguiente contiene los cmdlets que se usan para el filtrado durante la detección a petición.
Cmdlet | Función |
Set-FsspOnDemandFilter | Habilita un filtro, lo configura y lo asocia a la detección a petición. |
Get-FsspOnDemandFilter | Recupera los filtros de la detección a petición configurados. |
La tabla siguiente contiene los cmdlets que se usan para administrar los motores.
Cmdlet | Función |
Set-FsspEngineManagement | Configura los valores específicos del motor. |
Get-FsspEngineManagement | Recupera la configuración específica del motor. |
La tabla siguiente contiene los cmdlets que se usan para controlar la actualización de definiciones.
Cmdlet | Función |
Set-FsspSignatureOptions | Establece las opciones de actualización de las definiciones. |
Get-FsspSignatureOptions | Recupera la configuración de las actualizaciones de definiciones. |
Set-FsspSignatureUpdate | Establece la programación para actualizar las definiciones del motor. |
Get-FsspSignatureUpdate | Recupera las programaciones para actualizar las definiciones del motor. |
Start-FsspSignatureUpdate | Inicia la actualización de las definiciones de forma inmediata. |
La tabla siguiente contiene los cmdlets que se usan para controlar opciones de configuración variadas.
Cmdlet | Función |
Set-FsspAdvancedOptions | Establece las opciones avanzadas. |
Get-FsspAdvancedOptions | Recupera las opciones avanzadas. |
Set-FsspLoggingOptions | Establece las opciones de registro y de diagnóstico. |
Get-FsspLoggingOptions | Recupera las opciones de registro. |
Set-FsspTracing | Establece las opciones de seguimiento. |
Get-FsspTracing | Recupera las opciones de seguimiento. |
La tabla siguiente contiene los cmdlets que se usan para recuperar los incidentes y los registros puestos en cuarentena.
Cmdlet | Función |
Get-FsspIncident | Recupera los registros de la base de datos de incidentes. |
Remove-FsspIncident | Quita un elemento de la base de datos de incidentes. |
Set-FsspIncidentOptions | Establece las opciones de la base de datos de incidentes. |
Get-FsspIncidentOptions | Recupera las opciones de la base de datos de incidentes. |
Get-FsspQuarantine | Recupera los registros de la base de datos de cuarentena. |
Export-FsspQuarantine | Guarda en el disco los elementos que están en cuarentena. |
Remove-FsspQuarantine | Elimina elementos de la base de datos de cuarentena. |
Set-FsspQuarantineOptions | Establece las opciones de la base de datos de cuarentena. |
Get-FsspQuarantineOptions | Recupera las opciones de la base de datos de cuarentena. |
La tabla siguiente contiene los cmdlets que se usan para configurar las notificaciones.
Cmdlet | Función |
Set-FsspNotification | Establece los valores de notificación. |
Get-FsspNotification | Recupera los valores de notificación. |
Set-FsspNotificationOptions | Establece la configuración de SMTP para enviar notificaciones de correo electrónico. |
Get-FsspNotificationOptions | Recupera la configuración de SMTP para enviar notificaciones de correo electrónico. |
La tabla siguiente contiene los cmdlets que se usan para controlar los informes.
Cmdlet | Función |
Get-FsspReport | Recupera informes estadísticos sobre las actividades de FPSP. |
Clear-FsspReport | Restablece un informe sobre las actividades de FPSP. |
La tabla siguiente contiene los cmdlets que se usan para recuperar información del producto Forefront.
Cmdlet | Función |
Get-FsspProductInfo | Recupera información del servidor y del producto Forefront. |
Set-FsspLicensing | Establece los parámetros de licencias necesarios para FPSP. |
Get-FsspLicensing | Recupera el estado de la licencia actual del producto. |
La tabla siguiente contiene los cmdlets que se usan para importar y exportar valores de configuración.
Cmdlet | Función |
Import-FsspSettings | Importa los valores de configuración de un archivo XML. |
Export-FsspSettings | Exporta los valores de configuración a un archivo XML. |
La
tabla siguiente contiene los cmdlets que se usan para controlar las
opciones extendidas (que se emplean para pruebas y solución de
problemas)
Cmdlet | Función |
Set-FsspExtendedOption | Establece una opción extendida. |
Get-FsspExtendedOption | Recupera un valor de opción extendida. |
New-FsspExtendedOption | Crea una nueva opción extendida. |
Remove-FsspExtendedOption | Elimina una opción extendida. |
La tabla siguiente contiene los cmdlets que se usan para comprobar el mantenimiento del sistema.
Cmdlet | Función |
Get-FsspHealth | Recupera el estado actual del sistema de FPSP.
Fuente: http://technet.microsoft.com/es-mx/library/cc482998.aspx |