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 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.
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.
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. |
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:
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:
De esta forma se devuelve la información sobre las propiedades en un formato de lista, por ejemplo:
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.
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.
Get-Service | Get-Member
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() ...
get-service schedule | format-list -property *
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 :
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:
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.
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: |
.\testscript.ps1
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: |
Get-help about_signing
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.
- En el símbolo del sistema, escriba powershell y, a continuación, presione ENTRAR.
- En el símbolo del sistema, escriba Powershell -? y, a continuación, presione ENTRAR.
En la ventana de Windows PowerShell, puede usar el cmdlet Get-Help para buscar ayuda.
Para usar el cmdlet Get-Help
get-help Set-FsspSignatureUpdate
Para obtener ayuda detallada para un cmdlet determinado
get-help Set-FsspSignatureUpdate
Para ver solo los ejemplos de un cmdlet determinado
get-help Set-FsspSignatureUpdate -examples
Para ver solo un parámetro determinado
get-help Set-FsspSignatureUpdate -parameter ScheduleStart
Para ver una lista de todos los cmdlets que tienen un verbo común
get-help set-*
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, escriba get-help about_* y, a continuación, presione ENTRAR.
- 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, 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.
- 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.
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.
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.
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.
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.
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:
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:
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.
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:
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 |
Get-help format-list
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. |
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. |
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. |
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. |
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. |
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. |
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. |
Cmdlet | Función |
Set-FsspEngineManagement | Configura los valores específicos del motor. |
Get-FsspEngineManagement | Recupera la configuración específica del motor. |
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. |
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. |
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. |
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. |
Cmdlet | Función |
---|---|
Get-FsspReport | Recupera informes estadísticos sobre las actividades de FPSP. |
Clear-FsspReport | Restablece un informe sobre las actividades de FPSP. |
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. |
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. |
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. |
Cmdlet | Función |
Get-FsspHealth | Recupera el estado actual del sistema de FPSP. Fuente: http://technet.microsoft.com/es-mx/library/cc482998.aspx |
No hay comentarios:
Publicar un comentario