sábado, 30 de marzo de 2013

Usar Windows PowerShell


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.
noteNota:
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.
Get-Service | 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
noteNota:
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
importantImportante:
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
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.
    noteNota:
    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.

 

CmdletFunción
format-listDa formato de lista a la salida; cada propiedad aparece en una línea independiente
format-tableDa a la salida un formato de tabla con columnas
format-wideAplica a la salida el formato de una tabla ancha en la que se muestra únicamente una propiedad de cada objeto
format-customDa 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:
        Get-help format-list
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.

 

CmdletFunción
Set-FsspScheduledScanEstablece la configuración de la detección programada.
Get-FsspScheduledScanRecupera la configuración de la detección programada.
Start-FsspScheduledScanInicia una detección del almacén de base de datos inmediatamente.
Stop-FsspScheduledScanDetiene una detección del almacén de base de datos en curso.
Suspend-FsspScheduledScanPausa una detección del almacén de base de datos en curso.
Resume-FsspScheduledScanReanuda 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.

 

CmdletFunción
Set-FsspRealtimeScanEstablece la configuración de la detección en tiempo real.
Get-FsspRealtimeScanRecupera 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.

 

CmdletFunción
Set-FsspOnDemandScanEstablece las opciones de configuración de la detección a petición.
Get-FsspOnDemandScanRecupera los valores de configuración para la detección a petición.
Start-FsspOnDemandScanInicia la detección a petición.
Stop-FsspOnDemandScanDetiene la ejecución de una detección a petición.
Suspend-FsspOnDemandScanPausa una detección a petición en curso.
Resume-FsspOnDemandScanReanuda una detección a petición en pausa.
La tabla siguiente contiene los cmdlets que se usan para trabajar con listas de filtros.

 

CmdletFunción
New-FsspFilterListCrea una nueva lista de filtros.
Get-FsspFilterListRecupera listas de filtros.
Set-FsspFilterListCambia las propiedades de una lista de filtros.
Clear-FsspFilterListBorra todas las entradas de una lista de filtros.
Remove-FsspFilterListElimina una lista de filtros.
Add-FsspFilterListEntryAgrega uno o más elementos a una lista de filtros existente.
Remove-FsspFilterListEntryQuita 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.

 

CmdletFunción
Set-FsspScheduledFilterHabilita un filtro, lo configura y lo asocia a la detección programada.
Set-FsspScheduledFilterRecupera 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.

 

CmdletFunción
Set-FsspRealtimeFilterHabilita un filtro, lo configura y lo asocia a la detección en tiempo real.
Get-FsspRealtimeFilterRecupera 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.

 

CmdletFunción
Set-FsspOnDemandFilterHabilita un filtro, lo configura y lo asocia a la detección a petición.
Get-FsspOnDemandFilterRecupera los filtros de la detección a petición configurados.
La tabla siguiente contiene los cmdlets que se usan para administrar los motores.

 

CmdletFunción
Set-FsspEngineManagementConfigura los valores específicos del motor.
Get-FsspEngineManagementRecupera la configuración específica del motor.
La tabla siguiente contiene los cmdlets que se usan para controlar la actualización de definiciones.

 

CmdletFunción
Set-FsspSignatureOptionsEstablece las opciones de actualización de las definiciones.
Get-FsspSignatureOptionsRecupera la configuración de las actualizaciones de definiciones.
Set-FsspSignatureUpdateEstablece la programación para actualizar las definiciones del motor.
Get-FsspSignatureUpdateRecupera las programaciones para actualizar las definiciones del motor.
Start-FsspSignatureUpdateInicia 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.

 

CmdletFunción
Set-FsspAdvancedOptionsEstablece las opciones avanzadas.
Get-FsspAdvancedOptionsRecupera las opciones avanzadas.
Set-FsspLoggingOptionsEstablece las opciones de registro y de diagnóstico.
Get-FsspLoggingOptionsRecupera las opciones de registro.
Set-FsspTracingEstablece las opciones de seguimiento.
Get-FsspTracingRecupera las opciones de seguimiento.
La tabla siguiente contiene los cmdlets que se usan para recuperar los incidentes y los registros puestos en cuarentena.

 

CmdletFunción
Get-FsspIncidentRecupera los registros de la base de datos de incidentes.
Remove-FsspIncidentQuita un elemento de la base de datos de incidentes.
Set-FsspIncidentOptionsEstablece las opciones de la base de datos de incidentes.
Get-FsspIncidentOptionsRecupera las opciones de la base de datos de incidentes.
Get-FsspQuarantineRecupera los registros de la base de datos de cuarentena.
Export-FsspQuarantineGuarda en el disco los elementos que están en cuarentena.
Remove-FsspQuarantineElimina elementos de la base de datos de cuarentena.
Set-FsspQuarantineOptionsEstablece las opciones de la base de datos de cuarentena.
Get-FsspQuarantineOptionsRecupera las opciones de la base de datos de cuarentena.
La tabla siguiente contiene los cmdlets que se usan para configurar las notificaciones.

 

CmdletFunción
Set-FsspNotificationEstablece los valores de notificación.
Get-FsspNotificationRecupera los valores de notificación.
Set-FsspNotificationOptionsEstablece la configuración de SMTP para enviar notificaciones de correo electrónico.
Get-FsspNotificationOptionsRecupera 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.

 

CmdletFunción
Get-FsspReportRecupera informes estadísticos sobre las actividades de FPSP.
Clear-FsspReportRestablece un informe sobre las actividades de FPSP.
La tabla siguiente contiene los cmdlets que se usan para recuperar información del producto Forefront.

 

CmdletFunción
Get-FsspProductInfoRecupera información del servidor y del producto Forefront.
Set-FsspLicensingEstablece los parámetros de licencias necesarios para FPSP.
Get-FsspLicensingRecupera 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.

 

CmdletFunción
Import-FsspSettingsImporta los valores de configuración de un archivo XML.
Export-FsspSettingsExporta 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)

 

CmdletFunción
Set-FsspExtendedOptionEstablece una opción extendida.
Get-FsspExtendedOptionRecupera un valor de opción extendida.
New-FsspExtendedOptionCrea una nueva opción extendida.
Remove-FsspExtendedOptionElimina una opción extendida.
La tabla siguiente contiene los cmdlets que se usan para comprobar el mantenimiento del sistema.

 

CmdletFunción
Get-FsspHealthRecupera el estado actual del sistema de FPSP.


Fuente: http://technet.microsoft.com/es-mx/library/cc482998.aspx

No hay comentarios:

Publicar un comentario