elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
29 Agosto 2008, 07:54  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Scripting
| | | |-+  Power Shell
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Power Shell  (Leído 655 veces)
Meta

Desconectado Desconectado

Mensajes: 928


Ver Perfil
Power Shell
« en: 05 Agosto 2007, 11:28 »

Antiguamente salió el Batch, me encanta y lo usaba mucho hace tiempo, ahora me dió por Windows Host Script, más potente y podía codificarlo para que andie vea el código fuente, como era interpretado se puede descodificar y ver exactamente etu código.

Más adelante en el 2006 apareció otro nuevo sustituto llamado Power Shell 1.0 (Requiere .NET 2.0 o superior instalado para funcionar). Más potente aún y compilado, nada de interpretado. En realidad el PowerShell "PS"
 es el sustituto del CMD.
Os dejo el manual, que aún así lo puedes encontrar, pero para leer por el aire y ver como es no es nada malo.


DESCARGA en PDF aquí:
http://web.omnidrive.com/APIServer/public/abBQfIxKNWBSv0FZPZiACLK1/powershell_pdf_es.zip


********


Manual de introducción de Windows PowerShell™
Microsoft Corporation
Publicación: septiembre de 2006
Resumen
Windows PowerShell™ es un 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 utilizar de forma independiente o conjunta.
La finalidad de este documento es ofrecer a los nuevos usuarios una introducción a Windows PowerShell e informarles sobre sus características básicas. Para obtener información más detallada, consulte la Guía básica de Windows PowerShell.
 


 
Contenido
Aviso de copyright del manual de introducción de Windows PowerShell™   5
Objetivos de diseño de Windows PowerShell   6
Finalidad principal   6
Introducción a Windows PowerShell   7
Cmdlets de Windows PowerShell   7
Un nuevo lenguaje de scripting   8
Comandos y utilidades de Windows   8
Procesamiento de objetos   8
Canalizaciones de objetos   10
Interacción y creación de scripts   10
Entorno interactivo   10
Compatibilidad con la creación de scripts   11
Iniciar Windows PowerShell   12
Utilizar Windows PowerShell   12
Get-Help: obtener ayuda   13
Utilizar cmdlets   15
Obtener información sobre objetos:  Get-Member   16
Utilizar los parámetros de los cmdlets   19
Parámetros comunes   19
Formato de la salida de un comando   20
Utilizar alias   22
Crear un alias   23
Eliminar un alias   24
Utilizar funciones para crear nombres alternativos   24
Utilizar programas de Windows   24
Administrar errores   25
Desplazarse por Windows PowerShell   25
Desplazarse por el sistema de archivos   26
Desplazarse por el Registro   26
Desplazarse por el almacén de certificados   28
Desplazarse por otras unidades   29
Acerca de las unidades de Windows PowerShell   30
Unidades y proveedores   30
Personalizar Windows PowerShell   31
Examinar la directiva de ejecución   31
Perfiles de Windows PowerShell   32
Descripción de los perfiles   32
Crear un perfil   32
 
Aviso de copyright del manual de introducción de Windows PowerShell™
La finalidad de este documento es meramente informativa y Microsoft declina toda garantía, implícita o explícita, relativa al mismo. La información que contiene este documento, incluidas las referencias a direcciones URL y otros sitios Web de Internet, está sujeta a cambios sin previo aviso. Cualquier riesgo derivado del uso de este documento o de las consecuencias de su utilización es responsabilidad del usuario. A menos que se indique lo contrario, los nombres de las empresas, organizaciones, productos, dominios, así como las direcciones de correo electrónico, los logotipos, las personas y los acontecimientos que se muestran aquí son ficticios. No existe la intención de establecer ni debe inferirse ninguna asociación con ninguna empresa, organización, producto, nombre de dominio, dirección de correo electrónico, logotipo, persona, lugar o acontecimiento reales. Es responsabilidad del usuario cumplir con todas las leyes de copyright aplicables. Sin limitación de los derechos de copyright, no se permite reproducir, almacenar, introducir en un sistema de recuperación ni transmitir de ninguna forma ni con ningún tipo de medio (electrónico, mecánico, de fotocopiado, grabación, etc.) ninguna parte de este documento, independientemente de la finalidad, sin la autorización explícita por escrito de Microsoft Corporation.
Microsoft puede ser titular de patentes, solicitudes de patentes, marcas, derechos de autor, y otros derechos de propiedad intelectual sobre los contenidos de este documento. Salvo en lo que respecta a lo establecido expresamente en cualquier acuerdo de licencia escrito de Microsoft, la entrega de este documento no le concede ninguna licencia sobre estas patentes, marcas comerciales, derechos de copyright u otros derechos de propiedad intelectual.
© 2006 Microsoft Corporation. Reservados todos los derechos.
Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, .NET Framework 2.0, Componentes de tiempo de ejecución de .NET Framework 2.0 y Win32 son marcas registradas o marcas comerciales de Microsoft Corporation registradas en Estados Unidos u otros países.
Otros nombres de productos y compañías mencionados aquí pueden ser marcas comerciales de sus respectivos propietarios.
Objetivos de diseño de Windows PowerShell
Windows PowerShell es un 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 utilizar de forma independiente o conjunta.
A diferencia de la mayoría de los shells, que aceptan y devuelven texto, Windows PowerShell se ha creado sobre Common Language Runtime de .NET (CLR) y .NET Framework, y acepta y devuelve objetos .NET. Este cambio esencial del entorno proporciona herramientas y métodos completamente nuevos para la administración y configuración de Windows.
En Windows PowerShell se presenta el concepto de "cmdlet" (se pronuncia como "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 ofrece más de cien cmdlets principales para realizar tareas básicas; además, el usuario puede crear sus propios cmdlets y compartirlos con otros usuarios.
Al igual que muchos shells, Windows PowerShell proporciona acceso al sistema de archivos del equipo. Asimismo, los proveedores de Windows PowerShell permiten obtener acceso a otros almacenes de datos, como el Registro y el almacén de certificados de firmas digitales, con la misma facilidad con la que obtiene acceso al sistema de archivos.
Este manual de introducción constituye una presentación de Windows PowerShell: el lenguaje, los cmdlets, los proveedores y la utilización de objetos.
Finalidad principal
La finalidad fundamental de este documento es ayudar a los usuarios a empezar a usar Windows PowerShell. En este manual se describen las características necesarias para comenzar a utilizar el shell. Para obtener información más detallada del shell y sus características, y para ver ejemplos de uso del shell, consulte la Guía básica de Windows PowerShell.
Introducción a Windows PowerShell
El funcionamiento de la mayoría de los shells, incluido Cmd.exe y los shells SH, KSH, CSH y BASH, consiste en ejecutar un comando o una utilidad en un nuevo proceso, y presentar los resultados al usuario en forma de texto. Con el paso de los años, muchas herramientas de procesamiento de texto, como sed, AWK y PERL, han evolucionado para ofrecer esta interacción.
 Estos shells tienen también comandos integrados que se ejecutan en los procesos del shell, como el comando typeset en KSH o el comando dir en Cmd.exe. Como en la mayor parte de los shells hay pocos comandos integrados, se han creado numerosas utilidades.
Windows PowerShell es muy diferente. 
•   No procesa texto, sino objetos de 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.
Sin embargo, su ventaja principal es que no es necesario renunciar a todas esas herramientas a las que estamos acostumbrados. Windows PowerShell permite seguir utilizando las herramientas tradicionales de Windows, como Net, SC y Reg.exe.
Cmdlets de Windows PowerShell
Un "cmdlet" (se pronuncia como "command-let") es un comando de una sola función que manipula objetos en Windows PowerShell. Los cmdlets se pueden reconocer por el formato de sus nombres: un verbo y un nombre separados por un guión; por ejemplo, Get-Help, Get-Process y Start-Service.
En los shells tradicionales, los comandos son programas ejecutables que pueden ser muy simples, como attrib.exe, o muy complejos, como netsh.exe.
En Windows PowerShell, la mayoría de los cmdlets son muy simples y se han diseñado para utilizarse en combinación con otros cmdlets. Por ejemplo, los cmdlets "get" sólo recuperan datos; los cmdlets "set" sólo establecen o modifican los datos, los cmdlets "format" sólo aplican formato a los datos y los cmdlets "out" sólo dirigen la salida a un destino determinado.
Cada cmdlet dispone de un archivo de ayuda al que se puede obtener acceso escribiendo:
get-help <nombreCmdlet> -detailed
La vista detallada del archivo de ayuda del cmdlet contiene una descripción del cmdlet, la sintaxis del comando, descripciones de los parámetros y un ejemplo de la utilización del cmdlet.
Un nuevo lenguaje de scripting
Windows PowerShell utiliza su propio lenguaje, en lugar de reutilizar uno de los lenguajes existentes, por los motivos siguientes:
•   Windows PowerShell necesita un lenguaje que permita administrar objetos .NET.
•   El lenguaje debe proporcionar un entorno coherente para el uso de cmdlets.
•   El lenguaje debe ser capaz de realizar tareas complejas sin complicar las tareas sencillas.
•   El lenguaje debe ser coherente con los lenguajes de nivel superior que se utilizan en la programación .NET, como C#.
Comandos y utilidades de Windows
Los programas de línea de comandos de Windows se pueden ejecutar en Windows PowerShell. En el shell se pueden abrir también programas de Windows que tienen una interfaz de usuario, como Bloc de notas y Calculadora. Asimismo, es posible capturar el texto que generan los programas y utilizarlo en el shell, del mismo modo que se utilizaría en Cmd.exe.
Procesamiento de objetos
Aunque a primera vista pase inadvertido, cuando se trabaja con Windows PowerShell, en realidad se está trabajando con objetos .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 .NET es una instancia de una clase .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 (que son como características) y métodos (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 al servicio. Cuando consulta información sobre un servicio, está viendo las propiedades del objeto de servicio y cuando inicia un servicio (es decir, cuando cambia el valor de la propiedad Status del servicio a "started") está utilizando 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 las propiedades Name y Status. Sin embargo, cada servicio puede tener un nombre y un estado diferentes.
Cuando esté preparado, le será fácil conocer a fondo los objetos. Si desea saber qué tipo de objeto obtiene un cmdlet, utilice el operador de canalización (|) para enviar los resultados de un comando "get" al comando Get-Member. Por ejemplo, el comando siguiente envía los objetos recuperados por un comando Get-Service a Get-Member.
get-service | get-member

Get-Member muestra información sobre el objeto de servicio, incluidos el nombre del tipo del objeto y una lista de sus propiedades y métodos.
   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()
...

Para obtener información sobre una clase de objetos, copie y pegue el nombre del tipo (por ejemplo, System.ServiceProcess.ServiceController) en MSDN. Cuando encuentre la clase, podrá leer los subtemas de MSDN para conocer las propiedades y los métodos de los objetos basados en dicha clase, como los de Windows PowerShell.
Si desea buscar los valores de todas las propiedades de un determinado objeto, utilice el operador de canalización (|) para enviar los resultados de un comando "get" a un comando Format-List o Format-Table. Utilice el parámetro Property de los cmdlets de formato con el valor "todos" (*). Por ejemplo, para buscar todas las propiedades del servicio Schedule en el sistema, escriba:
get-service schedule | format-list -property *

A continuación se muestra un ejemplo de los resultados:
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           :

No necesita tener ningún conocimiento previo sobre los objetos al empezar a utilizar Windows PowerShell; sólo necesita tener en mente el concepto de "objeto". Muy pronto sabrá cómo utilizar los objetos y sacar el máximo provecho de ellos.
Canalizaciones de objetos
Una de las principales ventajas de utilizar objetos es que resulta mucho más sencillo canalizar los comandos, es decir, pasar la salida de un comando a otro como entrada. Por lo general, este tipo de comunicación hace necesaria la manipulación de cadenas para convertir la salida de un formato a otro y eliminar títulos y encabezados de columna. 
Windows PowerShell proporciona un nuevo modelo interactivo basado en objetos, no en texto. 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. Los usuarios pueden 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. En Microsoft® Windows® PowerShell 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

Interacción y creación de scripts
Entorno interactivo
Al igual que otros shells, Windows PowerShell ofrece un entorno interactivo completo. Cuando escribe un comando en el símbolo del sistema, este comando se procesa y el resultado se muestra en la ventana del shell. El resultado 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 (|).
Compatibilidad con la creación de scripts
Si ejecuta ciertos comandos o scripts repetidas veces, o si desarrolla una serie de comandos para llevar a cabo una tarea compleja, le interesará guardar estos comandos en un archivo y ejecutar este archivo de comandos en lugar de escribir los comandos en el símbolo del sistema. Un archivo de comandos se denomina script.
Además de su interfaz interactiva, Windows PowerShell ofrece plena compatibilidad con el uso de scripts. En Windows PowerShell, los archivos de script tienen la extensión .ps1. Para ejecutar un script, escriba su nombre en el símbolo del sistema. La extensión de nombre de archivo es opcional.
Por ejemplo:
c:\test\testscript.ps1

O bien
c:\test\testscript

Debe especificar la ruta completa del archivo de script aunque éste se encuentre en el directorio actual. Para especificar el directorio actual, escriba el nombre del directorio o utilice un punto (.) para representar al directorio actual. Por ejemplo:
.\testscript.ps1

Aunque los scripts resultan de gran utilidad, e incluso esenciales, en algunas empresas podrían utilizarse para difundir código malintencionado. Por esta razón, la directiva de seguridad de Windows PowerShell, que es una directiva de ejecución, permite determinar si se pueden ejecutar los scripts y si deben incluir una firma digital. Para eliminar riesgos evidentes, ninguna de las directivas de ejecución 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 muy completo que permite crear desde scripts muy simples hasta scripts muy complejos. Permite utilizar bucles, condiciones, control de flujo y asignación de variables.
Iniciar Windows PowerShell
Para iniciar Windows PowerShell desde el menú Inicio, haga clic en Inicio, Todos los programas, Windows PowerShell 1.0 y, a continuación, elija Windows PowerShell.

Para iniciar Windows PowerShell desde el cuadro Ejecutar, haga clic en Inicio, después en Ejecutar y escriba:

powershell

Para iniciar Windows PowerShell desde una ventana del símbolo del sistema (cmd.exe), escriba:
powershell

Para ver las opciones de inicio de Windows PowerShell en una ventana del símbolo del sistema, escriba:
powershell -?

Cuando Windows PowerShell está abierto, puede utilizar el cmdlet Get-Help para obtener ayuda. En el símbolo del sistema de Windows PowerShell, escriba:
get-help


Utilizar Windows PowerShell
En esta sección se ofrece una descripción de los principios básicos que deben tenerse en cuenta al utilizar Windows PowerShell. En primer lugar, se explicará el cmdlet Get-Help, que muestra información sobre los cmdlets y los temas conceptuales de Windows PowerShell. A continuación se describen algunos cmdlets básicos, se explica cómo se utilizan los parámetros de los cmdlets y se indica qué formato debe tener la salida de los cmdlets para obtener los datos necesarios en una presentación útil. En los temas finales se explica cómo se utilizan los alias para facilitar el trabajo en Windows PowerShell, cómo se ejecutan los programas tradicionales de Windows en Windows PowerShell y cómo se administran los errores.
Get-Help: obtener ayuda
El cmdlet Get-Help es una herramienta de gran utilidad para conocer Windows PowerShell. Mediante las descripciones de los cmdlets, los conceptos y los temas relativos al lenguaje, podrá comenzar a comprender cómo se utiliza Windows PowerShell.
El primer tema de interés podría ser el sistema de Ayuda. Para mostrar información sobre el sistema de Ayuda en Windows PowerShell, escriba:
get-help

Es posible que después desee conocer algunos de los cmdlets básicos, como Get-Help, Get-Command, Get-Process, Get-Service y Get-Eventlog.
Para ver la ayuda de un cmdlet con el formato más sencillo, escriba "get-help" y a continuación el nombre del cmdlet. Por ejemplo, para obtener ayuda sobre el cmdlet Get-Command, escriba:
get-help get-command

Si la ayuda del cmdlet no tiene el formato correcto (es decir, comienza con etiquetas XMLNS), es posible que la directiva de ejecución de Windows PowerShell impida que el sistema cargue el archivo de configuración que da formato a la ayuda de los cmdlets. Para obtener información sobre las directivas de ejecución, escriba:
get-help about_signing   

Para obtener ayuda detallada sobre un cmdlet que incluya descripciones de los parámetros y ejemplos, utilice el parámetro Detailed de Get-Help. Por ejemplo, para obtener información de ayuda detallada del cmdlet Get-Command, escriba:
get-help get-command -detailed

Para ver toda la ayuda disponible de un cmdlet, incluida la información técnica sobre el cmdlet y sus parámetros, utilice el parámetro Full. Por ejemplo, para obtener toda la ayuda del cmdlet Get-Command, escriba:
get-help get-command -full

También puede consultar determinadas partes del archivo de ayuda. Para ver exclusivamente los ejemplos, utilice el parámetro Examples. Por ejemplo, para mostrar los ejemplos del cmdlet Get-Command, escriba:
get-help get-command -examples

Para ver exclusivamente descripciones detalladas de los parámetros, utilice el parámetro Parameter de Get-Help. Puede especificar el nombre de un parámetro o utilizar el carácter comodín (*) para especificar todos los parámetros. Por ejemplo, para ver una descripción del parámetro TotalCount de Get-Command, escriba:
get-help get-command -parameter totalcount

Para ver todos los parámetros del cmdlet Get-Command, escriba:
get-help get-command -parameter *

También puede utilizar una de las funciones de Windows PowerShell que llaman a Get-Help. La función Help muestra la ayuda en una pantalla completa cada vez. La función Man muestra la ayuda de forma similar a las páginas Man de Unix. Si desea utilizar las funciones Help y Man para mostrar la ayuda del cmdlet Get-Command, escriba:
man get-command

O bien
help get-command

Cuando se solicita un tema de ayuda determinado, Get-Help muestra el contenido del tema. Sin embargo, si se utilizan caracteres comodín para solicitar varios temas, Get-Help muestra una lista de temas. Por ejemplo, para ver una lista de temas de ayuda de los cmdlets "Get", escriba:
get-help get-*
La ayuda sobre los conceptos en Windows PowerShell comienza con "about_". Para ver la ayuda de un concepto de Windows PowerShell, escriba "get-help" seguido del nombre del concepto. Por ejemplo, para obtener ayuda sobre los caracteres comodín, escriba:
get-help about_wildcard

Para mostrar una lista de todos los temas de ayuda conceptuales de Windows PowerShell, escriba:
get-help about_*

Si lee los temas de ayuda y prueba los ejemplos, comprenderá cómo funciona Windows PowerShell y cómo puede utilizarlo en su trabajo.


Utilizar cmdlets
Un cmdlet (se pronuncia como "command-let") es una sencilla herramienta de línea de comandos integrada en el shell que permite realizar una función. Los cmdlets se utilizan del mismo modo que los comandos y las herramientas tradicionales. Para empezar, escriba el nombre del cmdlet en el símbolo del sistema de Windows PowerShell. Los comandos de Windows PowerShell no distinguen entre mayúsculas y minúsculas, así que puede escribir el cmdlet como quiera.
Por ejemplo, puede probar el cmdlet Get-Date:
C:\PS> get-date
jueves, 10 de noviembre de 2005 4:43:50 p.m.

Para ver una lista de los cmdlets de la sesión, utilice el cmdlet Get-Command sin ningún parámetro.
PS> get-command

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...
...


De forma predeterminada, Get-Command muestra tres columnas: CommandType, Name y Definition. En la lista de cmdlets mostrada, la columna Definition indica la sintaxis del cmdlet. Los puntos suspensivos (…) que aparecen en la sintaxis indican que los datos se muestran truncados.
El cmdlet Get-Command también obtiene otros comandos y elementos de comandos distintos de los cmdlets, incluidos los alias (sobrenombres de los comandos), funciones y archivos ejecutables que están disponibles en Windows PowerShell.
El comando siguiente muestra los archivos ejecutables que están disponibles en Windows PowerShell utilizando el parámetro Name en Get-Command.
PS> get-command *.exe

CommandType Name                   Definition
----------- ----                   ----------
Application 000StTHK.exe           C:\WINDOWS\system32\000StTHK.exe
Application 00THotkey.exe          C:\WINDOWS\system32\00THotkey.exe
Application accwiz.exe             C:\WINDOWS\system32\accwiz.exe
...

En la columna Definition se muestran las rutas completas de los archivos ejecutables mostrados.
Pruebe a continuación otros cmdlets, como Get-Process, Get-Service, Get-EventLog y Get-Alias.
Cuando esté familiarizado con los cmdlets "Get-" más sencillos, pruebe otros cmdlets más complejos, como Get-WmiObject. Este cmdlet resulta muy útil porque permite consultar y modificar los componentes de equipos remotos. Por ejemplo, el comando siguiente obtiene información sobre el BIOS del equipo remoto Servidor01:
get-wmiobject win32_bios -computername servidor01

Si necesita obtener ayuda sobre cualquier cmdlet, escriba:
get-help <nombreCmdlet> -detailed
Por ejemplo:
get-help get-alias -detailed.
Obtener información sobre objetos:
Get-Member
Uno de los cmdlets más útiles es Get-Member, que muestra información sobre el objeto .NET devuelto por un comando. En la información se especifican el tipo, las propiedades y los métodos del objeto.
Si desea utilizar Get-Member, envíe los resultados de un comando a Get-Member mediante el operador de canalización (|). Por ejemplo:
get-service | get-member
Este comando pone de manifiesto que, en realidad, Get-Service devuelve un conjunto de objetos System.ServiceProcess.ServiceController, uno por cada servicio del equipo.
   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()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
get_CanPauseAndContinue   Method        System.Boolean get_CanPauseAndContinue()
get_CanShutdown           Method        System.Boolean get_CanShutdown()
get_CanStop               Method        System.Boolean get_CanStop()
get_Container             Method        System.ComponentModel.IContainer get_Container()
get_DependentServices     Method        System.ServiceProcess.ServiceController[] get_DependentServices()
get_DisplayName           Method        System.String get_DisplayName()
get_MachineName           Method        System.String get_MachineName()
get_ServiceHandle         Method        System.Runtime.InteropServices.SafeHandle get_ServiceHandle()
get_ServiceName           Method        System.String get_ServiceName()
get_ServicesDependedOn    Method        System.ServiceProcess.ServiceController[] get_ServicesDependedOn()
get_ServiceType           Method        System.ServiceProcess.ServiceType get_ServiceType()
get_Site                  Method        System.ComponentModel.ISite get_Site()
get_Status                Method        System.ServiceProcess.ServiceControllerStatus get_Status()
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
remove_Disposed           Method        System.Void remove_Disposed(EventHandler value)
set_DisplayName           Method        System.Void set_DisplayName(String value)
set_MachineName           Method        System.Void set_MachineName(String value)
set_ServiceName           Method        System.Void set_ServiceName(String value)
set_Site                  Method        System.Void set_Site(ISite value)
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.String ServiceName {get;set;}
ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                      Property      System.ComponentModel.ISite Site {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Esta información parece demasiado técnica, pero en realidad resulta muy práctica.
•   El nombre de tipo (como "System.ServiceProcess.ServiceController") indica qué tipo de objeto .NET devuelve el cmdlet. Para obtener información sobre los objetos de esta clase .NET, pegue el nombre de tipo en el cuadro de texto Buscar de MSDN. El tema de MSDN relacionado contiene información sobre las propiedades y los métodos de los objetos de esta clase, incluidos los objetos que devuelve Get-Service.
•   Los tipos Property representan las propiedades de los objetos. El valor de cada propiedad da información sobre el objeto de servicio. Por ejemplo, los objetos ServiceController tienen la propiedad CanPauseAndContinue. En la descripción de MSDN se especifica que esta propiedad indica si el servicio puede interrumpirse y reanudarse.
Para mostrar el valor de una propiedad de un determinado servicio, escriba:
(get-service <nombre_servicio>).<nombre_propiedad>

Por ejemplo:
(get-service alerter).canpauseandcontinue

Para ver una lista con el nombre y el valor de la propiedad CanPauseAndContinue del servicio Alerter, escriba:
get-service alerter | format-list -property name, CanPauseAndContinue

Para ver una lista con los valores de todas las propiedades del servicio Alerter, escriba:
get-service alerter | format-list -property *

Para ver una tabla con el nombre y el valor de la propiedad CanPauseAndContinue de todos los servicios, escriba:
get-service | format-table -property name, CanPauseAndContinue

•   Los tipos Method representan los métodos del objeto, es decir, las acciones que se pueden llevar a cabo sobre el objeto. Por ejemplo, los objetos ServiceController tienen un método Stop que permite detener el servicio.
Para llamar a un método de un objeto de servicio, utilice el formato siguiente (no olvide los paréntesis):
(get-service <nombre_servicio>).<nombre_método>()
Por ejemplo:
(get-service schedule).stop()


Para obtener información acerca del comando Get-Member, escriba:
get-help get-member -detailed.
Utilizar los parámetros de los cmdlets
Los parámetros de los cmdlets se identifican por el guión (-) que precede al nombre del parámetro. En Windows PowerShell no se utilizan barras diagonales (/ y \) para especificar los parámetros.
Al especificar un nombre de parámetro puede escribir el nombre completo, aunque sólo necesita escribir los caracteres suficientes para que se distinga de los nombres de otros parámetros del cmdlet.
Por ejemplo, el cmdlet Get-Help tiene un parámetro denominado "Detailed", aunque basta con escribir "-det" para distinguirlo del parámetro Debug.
Algunos nombres de parámetro son opcionales. Puede utilizarlos escribiendo su valor y omitiendo su nombre. Sin embargo, si se omite el nombre del parámetro, el valor debe aparecer en la posición especificada en el diagrama de sintaxis.
Por ejemplo, el cmdlet Get-Help tiene un parámetro Name que especifica el nombre de un cmdlet o un concepto. Puede escribir el nombre de este parámetro u omitirlo. Para obtener ayuda sobre el comando Get-Alias, puede escribir:
get-help -name get-alias

O bien
get-help get-alias

Para ver qué nombres de parámetros son opcionales, consulte la sintaxis en el archivo de Ayuda. Los nombres de parámetro opcionales se escriben entre corchetes:
Get-Help [[-Name] <cadena>]...

Parámetros comunes
Todos los cmdlets admiten una serie de parámetros que se denominan parámetros comunes. Esta característica proporciona una interfaz uniforme a Windows PowerShell.
Si un cmdlet admite un parámetro común, el uso de este parámetro no causará un error. No obstante, es posible que el parámetro no tenga ningún efecto en algunos cmdlets. Para obtener una descripción de los parámetros comunes, escriba:
get-help about_commonparameters
Formato de la salida de un comando
En los shells tradicionales, cada herramienta o comando determina el formato de su salida. Algunas herramientas permiten personalizar la salida y contienen parámetros especiales para controlar el formato de los resultados.
En Windows PowerShell, los únicos cmdlets que aplican un formato a la salida son los cmdlets de formato:
•   Format-List
•   Format-Custom
•   Format-Table
•   Format-Wide
Ningún otro cmdlet aplica formato a la salida. Por tanto, no es necesario aprender las rutinas de formato y los parámetros de numerosas herramientas; basta con conocer los cmdlets Format y sus parámetros.
Cuando se ejecuta un comando, Windows PowerShell llama al formateador predeterminado, que depende del tipo de los datos mostrados. El formateador determina las propiedades de la salida que se van a mostrar y si van a aparecer en una lista o una tabla.
Por ejemplo, para el cmdlet Get-Service, la presentación predeterminada es una tabla de tres columnas como la siguiente:
C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

...
Si desea modificar el formato de salida de un cmdlet, utilice el operador de canalización (|) para enviar el resultado del comando a un cmdlet Format.
Por ejemplo, el comando siguiente envía la salida de un comando Get-Service al cmdlet Format-List. Como resultado, los datos de servicio se presentan en forma de una lista por cada servicio.
C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

En este formato no sólo se muestran los datos en una lista en lugar de en una tabla; también se incluye más información sobre cada servicio. En lugar de tres columnas de datos para cada servicio, hay nueve filas de datos. Format-List no recupera información adicional sobre el servicio. Estos datos están en los objetos recuperados por Get-Service, pero Format-Table (el formateador predeterminado) los omite porque no puede mostrar más de tres columnas en la pantalla.
Además de determinar si los datos van a aparecer en una lista o una tabla, también puede establecer las propiedades del objeto que se van a mostrar. Por ejemplo, en la presentación predeterminada de Get-Service únicamente aparecen las propiedades Status, Name y DisplayName del objeto de servicio.
Si desea ver todas las propiedades de un objeto, utilice el operador de canalización (|) para enviar la salida de un comando al cmdlet Get-Member. Por ejemplo, para ver todas las propiedades de un objeto de servicio, escriba:
get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Dado que todas estas propiedades se encuentran en el objeto que Get-Service recupera para cada servicio, pueden mostrarse algunas de ellas o todas. Utilice el parámetro Property de los cmdlets Format para seleccionar las propiedades que se van a mostrar y el orden en el que van a aparecer. Por ejemplo, en el comando siguiente se utiliza el cmdlet Format-Table para mostrar únicamente las propiedades Name, ServiceType y CanShutDown del servicio.
get-service | format-table name, Servicetype, Canshutdown

Esto no es más que una pequeña parte de lo que se puede hacer con las presentaciones de Windows PowerShell. Si desea obtener información más detallada, utilice los comandos siguientes para consultar la ayuda de los cmdlets Format:
get-help format-list
get-help format-table
get-help format-wide
get-help format-custom

Utilizar alias
Los nombres de los cmdlets pueden resultar incómodos de escribir. Para minimizar la necesidad de escribir estos nombres y facilitar el uso de Windows PowerShell a los usuarios acostumbrados a otros shells, Windows PowerShell incorpora el concepto de "alias", es decir, el nombre alternativo de un comando. Puede crear un alias para el nombre de un cmdlet, una función o un archivo ejecutable, y escribir este alias en lugar del nombre del comando.
Windows PowerShell dispone de numerosos alias integrados, pero el usuario puede crear también sus propios alias. Los alias que cree sólo serán válidos durante la sesión actual. Para crear alias persistentes, deberá agregarlos a su perfil de Windows PowerShell.
Para buscar todos los alias de la sesión, escriba:
get-alias

Para buscar los alias de un cmdlet, escriba:
get-alias | where-object {$_.definition -eq "<nombreCmdlet>"}

Por ejemplo:
get-alias | where-object {$_.definition -eq "set-location"}

En Windows PowerShell, los alias se basan en el proveedor de alias, un ensamblado .NET que permite consultar los alias en una unidad muy similar a las unidades del sistema de archivos de Windows. La unidad de alias se denomina "Alias:".
Para cambiar la ubicación a la unidad Alias, escriba:
set-location alias:
Para consultar los alias, es decir, los elementos secundarios de la unidad Alias, escriba
get-childitem
Para consultar los elementos secundarios de la unidad Alias desde otra unidad, escriba el nombre de la unidad en el comando. Por ejemplo:
get-childitem alias:


Crear un alias
En Windows PowerShell los alias de los cmdlets y los comandos se crean mediante el cmdlet Set-Alias. Por ejemplo, para crear el alias "gh" del cmdlet Get-Help, escriba:
set-alias gh get-help

También se pueden crear alias para los comandos, como los comandos que inician un programa. Por ejemplo, para crear el alias "np" para el Bloc de notas (notepad.exe), escriba:
set-alias np c:\windows\notepad.exe

(La ruta de acceso al ejecutable del Bloc de notas puede ser diferente en su sistema.)
Eliminar un alias
Para eliminar un alias de la unidad Alias:, utilice el cmdlet Remove-Item. Por ejemplo, para quitar el alias "ls", escriba:
remove-item alias:ls

Utilizar funciones para crear nombres alternativos
Se pueden crear alias para cmdlets, funciones o archivos ejecutables, pero no para comandos con parámetros. Sin embargo, puede crear una función que se comporte como un alias.
Por ejemplo, si desea utilizar el Bloc de notas (notepad.exe) para abrir el archivo Boot.ini en un equipo con Windows XP, escriba:
notepad c:\boot.ini

No se puede crear un alias para "notepad c:\boot.ini", aunque sí una función. El comando siguiente crea la función bootini.
function bootini {notepad c:\boot.ini}

Esta función actúa como un alias. Si escribe bootini en el símbolo del sistema de Windows PowerShell, Boot.ini se abre en el Bloc de notas.
Utilizar programas de Windows
En Windows PowerShell puede ejecutar programas de línea de comandos e iniciar programas gráficos de Windows. Si el programa genera una salida de texto, puede capturarla y utilizarla en el nuevo shell del mismo modo que lo haría en cualquier otro shell.
Para ejecutar un programa (por ejemplo, Bloc de notas) en Windows PowerShell, el archivo ejecutable del programa debe estar en un directorio incluido en la variable de entorno Path, ya que el valor de la variable de entorno Path determina el lugar en el que Windows PowerShell buscará aplicaciones, herramientas y scripts. (No es necesario que los cmdlets se encuentren en un directorio de Path.)
Para ver las rutas de acceso de la variable de entorno Path, escriba:
PS> $env:path

Para agregar directorios a la variable de entorno Path, escriba:
PS> $env:path += ";newdirectory"

Por ejemplo, para agregar el directorio del archivo WordPad.exe a la variable Path, escriba:
PS> $env:path += ";C:\Archivos de programa\Windows NT\Accesorios"

Al igual que el comando set, esta instrucción de asignación sólo cambia el valor de Path durante la sesión actual de Windows PowerShell. Para que este cambio sea permanente, agregue la instrucción de asignación a su perfil de Windows PowerShell. Para obtener información detallada, consulte el tema relativo a los perfiles de Windows PowerShell.
Administrar errores
Ocasionalmente pueden producirse errores al utilizar el shell, por ejemplo, al intentar establecer una ubicación en un directorio inexistente o al intentar quitar un archivo sin los privilegios apropiados.
En Windows PowerShell existen dos tipos de errores:
•   Errores que provocan fin: errores que interrumpen la ejecución del comando.
•   Errores que no provocan fin: errores que no interrumpen la ejecución del comando.
Por ejemplo, si está quitando todos los archivos .TMP de un directorio, posiblemente no desee que se interrumpa el proceso si no se puede quitar uno de los archivos. Normalmente, deseará quitar todos los archivos y ocuparse a continuación de los archivos que no se han podido quitar.
El error que se produce cuando no se puede quitar un archivo se denomina "error que no provoca fin". Cuando se produce un error que no provoca fin, Windows PowerShell continúa el procesamiento y muestra después el error con los resultados.
Hay errores más graves que interrumpen el procesamiento de los comandos. Estos errores se denominan "errores que provocan fin". Los errores que provocan fin detienen el procesamiento del comando. Por ejemplo, si envía datos no válidos o no tiene los permisos necesarios para ejecutar el comando, Windows PowerShell genera un error que provoca fin.
Desplazarse por Windows PowerShell
Una de las características más eficaces de Windows PowerShell es que permite desplazarse por distintos almacenes de datos con las mismas técnicas que se suelen emplear para desplazarse por el sistema de archivos.
Además de las conocidas unidades del sistema de archivos, como C: y D:, Windows PowerShell dispone de otras unidades que representan los subárboles del Registro HKEY_LOCAL_MACHINE (HKLM:) y HKEY_CURRENT_USER (HKCU:), el almacén de certificados de firmas digitales del equipo (Cert:) y las funciones de la sesión actual (Function:), entre otras. Estas unidades se conocen como unidades de Windows PowerShell.
Windows PowerShell cuenta con varias unidades de gran utilidad, que son compatibles con los proveedores de Windows PowerShell. Para ver una lista de las unidades de Windows PowerShell, escriba:
get-psdrive

Desplazarse por el sistema de archivos
Al iniciar Windows PowerShell, sentirá la tentación de escribir cd, dir o ls. Hágalo. cd es un alias del cmdlet Set-Location, que cambia la ubicación actual por la ruta especificada. dir y ls son alias del cmdlet Get-Childitem, que obtiene los elementos secundarios de una ubicación.
Para desplazarse por la unidad del sistema de archivos, utilice los cmdlets Set-Location (cd) y Get-Childitem (dir, ls). En Windows PowerShell, las unidades se especifican mediante el nombre de la unidad seguido de dos puntos, como C:, y los elementos principales se separan de los elementos secundarios mediante barras diagonales inversas (\) o barras diagonales (/), como en C:\Windows\System32.
Hay algunas características que facilitan la tarea de desplazarse por Windows PowerShell:
•   Existen símbolos para el directorio actual (.) y el contenido de un directorio (*).
•   Existen variables integradas para el directorio principal, $home, y el directorio de instalación de Windows PowerShell, $pshome.
Al igual que en otros shells, es posible cambiar ubicaciones, crear, eliminar, mover y copiar directorios y archivos, así como modificar sus propiedades. Incluso se puede completar con tabulaciones los nombres de las rutas. Para obtener información detallada, consulte la ayuda de los cmdlets Item (Get-Item, Get-Childitem, New-Item, Remove-Item, Set-Item, Move-Item y Copy-Item).
Desplazarse por el Registro
Es posible desplazarse por el Registro de Windows con las mismas técnicas que se utilizan para desplazarse por la unidad del sistema de archivos. En Windows PowerShell, el subárbol HKEY_LOCAL_MACHINE se asigna a la unidad HKLM:, mientras que el subárbol HKEY_CURRENT_USER se asigna a la unidad HKCU:.
Por ejemplo:
PS C:\> cd hklm:
PS HKLM:\> dir
PS HKLM:\> dir
   Hive: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE
SKC  VC Name                           Property
---  -- ----                           --------
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
En línea:1 carácter:3
+ dir <<<<
 39   2 SOFTWARE                       {flash, (default)}
  8   0 SYSTEM                         {}
PS HKLM:\> cd system\currentcontrolset\control
PS HKLM:\system\currentcontrolset\control> dir

Al desplazarse por el Registro, observará que la salida de dir (Get-Childitem) en las unidades del Registro es distinta a la del sistema de archivos. Dado que el Registro tiene unidades distintas con información diferente, el shell proporciona una vista distinta de los datos. En este caso es importante saber cuántas subclaves y entradas están presentes, de modo que la salida incluya un recuento de subclaves (SKC) y un recuento de entradas de valor (VC), además de los nombres de las subclaves y las entradas.
PS> cd "CurrentControlSet\Control\Session Manager"
PS> dir
    Hive: Registry::HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Session
Manager

SKC  VC ChildName                      Property
---  -- ---------                      --------
  0   1 AppCompatibility               {AppCompatCache}
 15   0 AppPatches                     {}
  0   7 DOS Devices                    {AUX, MAILSLOT, NUL, PIPE, PRN, UNC, f...


No encontrará muchas diferencias al desplazarse hasta llegar a las entradas del Registro. Las entradas de una clave del Registro se consideran propiedades de la clave en la que se encuentran. Por tanto, puede utilizar el cmdlet Get-ItemProperty para recuperarlas.
Por ejemplo, si desea ver el valor de la directiva de ejecución de Windows PowerShell, puede utilizar el cmdlet Get-ExecutionPolicy o desplazarse a la entrada del Registro ExecutionPolicy que almacena el valor en HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.
PS C:\> cd hklm:
PS HKLM:\> cd software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> dir
PS HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> get-itemproperty -path . -name executionpolicy

PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds\Micro
                  soft.PowerShell
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\microsoft\powershell\1\ShellIds
PSChildName     : Microsoft.PowerShell
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry
ExecutionPolicy : RemoteSigned

Desplazarse por el almacén de certificados
También puede desplazarse por el almacén de certificados de firmas digitales del equipo. El almacén de certificados se asigna a la unidad Cert: de Windows PowerShell. En el ejemplo siguiente se muestra cómo se utilizan Set-Location (cd) y Get-Childitem (dir, ls) para desplazarse a la unidad Cert:.
PS C:\> cd cert:
PS cert:\> dir
Location   : CurrentUser
StoreNames : {TrustedPeople, _NMSTR, Trust, REQUEST...}

Location   : LocalMachine
StoreNames : {_NMSTR, Trust, REQUEST, TrustedPeople...}

PS cert:\> cd currentuser
PS cert:\currentuser> dir

Name : TrustedPeople
Name : _NMSTR
Name : Trust
Name : REQUEST
Name : AuthRoot
Name : ACRS
Name : My
Name : addressbook
Name : Disallowed
Name : CA
Name : UserDS
Name : Root
Name : TrustedPublisher

PS cert:\currentuser> cd authroot
PS cert:\currentuser\authroot> dir
    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\authroot
Thumbprint                                Subject
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk
F44095C238AC73FC4F77BF8F98DF70F8F091BC52  CN=Class 3TS Primary CA, O=Certplus, C=FR
EF2DACCBEABB682D32CE4ABD6CB90025236C07BC  O="Colegio Nacional de Correduria Publica Mexicana, A.C.", CN="Autoridad C...
...
PS cert:\currentuser\authroot> get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF
    Directory: Microsoft.PowerShell.Security\Certificate::currentuser\authroot
Thumbprint                                Subject
----------                                -------
F88015D3F98479E1DA553D24FD42BA3F43886AEF  O=C&W HKT SecureNet CA SGC Root, C=hk

PS cert:\currentuser\authroot> get-childitem F88015D3F98479E1DA553D24FD42BA3F43886AEF | format-list -property *


PSPath             : Microsoft.PowerShell.Security\Certificate::currentuser\authroot\F88015D3F98479E1DA553D24FD42BA3F43
                     886AEF
PSParentPath       : Microsoft.PowerShell.Security\Certificate::currentuser\authroot
PSChildName        : F88015D3F98479E1DA553D24FD42BA3F43886AEF
PSDrive            : cert
PSProvider         : Microsoft.PowerShell.Security\Certificate
PSIsContainer      : False
Archived           : False
Extensions         : {}
FriendlyName       : CW HKT SecureNet CA SGC Root
IssuerName         : System.Security.Cryptography.X509Certificates.X500DistinguishedName
NotAfter           : 10/16/2009 2:59:00 AM
NotBefore          : 6/30/1999 3:00:00 AM
HasPrivateKey      : False
PrivateKey         :
PublicKey          : System.Security.Cryptography.X509Certificates.PublicKey
RawData            : {48, 130, 2, 235...}
SerialNumber       : 00
SubjectName        : System.Security.Cryptography.X509Certificates.X500DistinguishedName
SignatureAlgorithm : System.Security.Cryptography.Oid
Thumbprint         : F88015D3F98479E1DA553D24FD42BA3F43886AEF
Version            : 1
Handle             : 1577256
Issuer             : O=C&W HKT SecureNet CA SGC Root, C=hk
Subject            : O=C&W HKT SecureNet CA SGC Root, C=hk

Desplazarse por otras unidades
Además de las unidades del sistema de archivos, el Registro y los certificados, Windows PowerShell cuenta con otras unidades de gran utilidad, como las unidades de alias (Alias:), de proveedor de entorno (Env:), de funciones (Function:) y de variables (Variable:). Utilice las mismas técnicas básicas para desplazarse por estas unidades.
Acerca de las unidades de Windows PowerShell
Las características de desplazamiento ampliadas de Windows PowerShell se basan en las unidades de Windows PowerShell.
Estas unidades de Windows PowerShell se pueden crear en cualquier almacén de datos que esté disponible en Windows PowerShell y pueden tener cualquier nombre válido, como C: o "Mi unidad", seguido de dos puntos (:). Puede desplazarse por estas unidades con los mismos métodos que utilizaría en una unidad del sistema de archivos. Sin embargo, las unidades de Windows PowerShell sólo pueden verse en Windows PowerShell. No pueden verlas ni obtener acceso a ellas a través del Explorador de Windows o Cmd.exe.
Windows PowerShell cuenta con varias unidades de gran utilidad, que son compatibles con los proveedores de Windows PowerShell. Para ver una lista de las unidades de Windows PowerShell, escriba:
get-psdrive

También puede crear sus propias unidades de Windows PowerShell a través del cm
« Última modificación: 06 Agosto 2007, 11:56 por Meta » En línea

Meta Shell, VERSIÓN 1.2.2, Hecho con Visual C# .net Express (Gratuito)
Descargar
Meta

Desconectado Desconectado

Mensajes: 928


Ver Perfil
Re: Power Shell
« Respuesta #1 en: 05 Agosto 2007, 11:29 »

Ahora puede utilizar la unidad MisDoc: del mismo modo que cualquier otra unidad. Puede cambiar la ubicación actual a esta unidad, enumerar su contenido y modificar sus propiedades.
Unidades y proveedores
Las unidades de Windows PowerShell están disponibles en la sesión gracias a los proveedores de Windows PowerShell, que son ensamblados .NET que permiten que los datos de un almacén de datos especializado estén disponibles en Windows PowerShell de forma que puedan verse y administrarse con facilidad. Para obtener información acerca de los proveedores de Windows PowerShell, escriba:
get-help about_psprovider

Para ver una lista de los proveedores de Windows PowerShell, escriba:
get-psprovider

Para ver una lista de los archivos de ayuda de los proveedores, escriba:
get-help -category provider

Para obtener información acerca de un proveedor determinado, escriba:
get-help <provider-name>

Por ejemplo:
get-help registry

Personalizar Windows PowerShell
En esta sección se describen algunos de los métodos mediante los que se puede personalizar Windows PowerShell para adaptarlo al máximo a sus necesidades.
Examinar la directiva de ejecución
La capacidad de usar scripts es una herramienta muy poderosa, aunque puede emplearse con fines malintencionados. Para proteger los datos del usuario y la integridad del sistema operativo, Windows PowerShell dispone de varias características de seguridad, entre las que se encuentra la directiva de ejecución.
La directiva de ejecución de Windows PowerShell determina si se permite la ejecución de scripts y, en caso afirmativo, si deben estar firmados digitalmente. También determina si pueden cargarse los archivos de configuración.
La directiva de ejecución predeterminada, Restricted, es la más segura de las directivas de ejecución. No permite que se ejecuten scripts ni que se cargue ningún archivo de configuración, como un perfil de Windows PowerShell. Pero puede utilizar Windows PowerShell de forma interactiva.
Sin embargo, si desea ejecutar scripts o cargar archivos de configuración, puede cambiar la directiva de ejecución del sistema. Para obtener información y consultar instrucciones, escriba:
get-help about_signing

Para buscar la directiva de ejecución del sistema, escriba:
get-executionpolicy

Para cambiar la directiva de ejecución del sistema, utilice el cmdlet Set-ExecutionPolicy. Por ejemplo, para sustituir la directiva de ejecución por RemoteSigned, escriba:
set-executionpolicy remotesigned

La directiva de ejecución de Windows PowerShell se guarda en el Registro de Windows y se conservará aunque se desinstale y se vuelva a instalar Windows PowerShell.
Perfiles de Windows PowerShell
Cuando agrega alias, funciones y variables a Windows PowerShell, en realidad los está agregando únicamente a la sesión actual de Windows PowerShell. Si cierra la sesión o sale de Windows PowerShell, perderá los cambios.
Para conservar estos cambios, puede crear un perfil de Windows PowerShell y agregarle los alias, funciones y variables. El perfil se carga cada vez que se inicia Windows PowerShell.
Para cargar un perfil, la directiva de ejecución de Windows PowerShell debe permitir que se carguen archivos de configuración. En caso contrario, se producirá un error al intentar cargar el perfil y Windows PowerShell mostrará un mensaje de error.
Descripción de los perfiles
En Windows PowerShell se pueden utilizar cuatro perfiles diferentes. Se muestran en el orden en que se han cargado. Los perfiles más específicos tienen prioridad sobre los menos específicos a la hora de aplicarse.
•   %windir%\system32\WindowsPowerShell\v1.0\profile.ps1
Este perfil se aplica a todos los usuarios y a todos los shells.
•   %windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1
Este perfil se aplica a todos los usuarios, pero sólo al shell Microsoft.PowerShell.
•   %UserProfile%\Mis documentos\WindowsPowerShell\profile.ps1
Este perfil se aplica sólo al usuario actual, pero afecta a todos los shells.
•   %UserProfile%\\Mis documentos\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Este perfil se aplica sólo al usuario actual y al shell Microsoft.PowerShell.
Crear un perfil
Puede crear, compartir y distribuir perfiles para garantizar una vista coherente de Windows PowerShell en una empresa más grande.
Los perfiles no se crean automáticamente. Para crear un perfil, es necesario crear un archivo de texto con el nombre especificado en la ubicación establecida.
Normalmente se utiliza el perfil específico del usuario y el shell, denominado perfil de usuario. La ubicación de este perfil se almacena en la variable $profile.
Para determinar si se ha creado el perfil de usuario, escriba:
test-path $profile

Si el perfil existe, la respuesta será True; en caso contrario, será False.
Para crear un perfil de usuario, escriba:
new-item -path $profile -itemtype file -force

Para abrir un perfil en el Bloc de notas (notepad.exe), escriba:
notepad $profile

Para crear uno de los demás perfiles, como el perfil que se aplica a todos los usuarios y a todos los shells, escriba:
new-item -path C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 -itemtype file -force

No se puede utilizar la notación "%" en las variables de entorno de Windows PowerShell. Para identificar una variable de entorno de Windows, utilice el formato $env:<variable>, como por ejemplo $env:windir:
new-item -path C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 -itemtype file -force

Si crea un perfil en el Bloc de notas y lo guarda, asegúrese de escribir el nombre de archivo entre comillas. Por ejemplo:
"profile.ps1"

Si no lo escribe entre comillas, el Bloc de notas agregará la extensión .txt al archivo y Windows PowerShell no lo reconocerá.
Utilice el perfil para almacenar los alias, funciones y variables que utiliza habitualmente. Hay una función muy útil que le permite abrir el perfil en el editor de textos que desee. Por ejemplo, el siguiente comando crea una función denominada "pro" que abre el perfil del usuario en el Bloc de notas (notepad.exe).
function pro { notepad $profile }

Un perfil bien diseñado puede facilitar la utilización de Windows PowerShell y la administración del sistema.
En línea

Meta Shell, VERSIÓN 1.2.2, Hecho con Visual C# .net Express (Gratuito)
Descargar
Meta

Desconectado Desconectado

Mensajes: 928


Ver Perfil
Re: Power Shell
« Respuesta #2 en: 05 Agosto 2007, 11:34 »

 

Guía básica de Windows PowerShell™
Microsoft Corporation
Publicación: septiembre de 2006
Resumen
Windows PowerShell™ es un 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 utilizar de forma independiente o conjunta.
En este documento se describen los conceptos básicos y las funciones de Windows PowerShell, y se sugieren formas en que se puede usar Windows PowerShell para la administración de sistemas.
 


 
Contenido
Aviso de copyright de la Guía básica de Windows PowerShell™   9
Introducción a Windows PowerShell   10
Público al que se dirige   10
Acerca de Windows PowerShell   10
Aprendizaje sencillo   10
Coherencia   11
Entorno interactivo y de scripting   11
Orientación a objetos   11
Transición sencilla a la creación de scripts   12
Instalar y ejecutar Windows PowerShell   12
Requisitos de instalación   12
Instalar Windows PowerShell   12
Ejecutar Windows PowerShell   13
Conceptos básicos de Windows PowerShell   13
Conceptos importantes de Windows PowerShell   14
Los comandos no están basados en texto   14
El conjunto de comandos es ampliable   15
Windows PowerShell controla la entrada y la presentación de la consola   15
Windows PowerShell utiliza sintaxis del lenguaje C#   16
Aprender los nombres de comandos y parámetros de Windows PowerShell   16
Los cmdlets utilizan nombres con verbo y sustantivo para reducir la memorización de comandos   17
Los cmdlets utilizan parámetros estándar   19
Parámetro Help (?)   19
Parámetros comunes   20
Parámetros recomendados   20
Obtener información resumida de comandos   20
Mostrar los tipos de comandos disponibles   21
Obtener información de ayuda detallada   22
Usar nombres de comandos familiares   23
Interpretación de los alias estándar   24
Crear nuevos alias   25
Completar nombres automáticamente con el tabulador   25
Canalización de objetos   27
Canalización de Windows PowerShell   27
Ver la estructura de objetos  (Get-Member)   29
Usar comandos de formato para cambiar la presentación de los resultados   31
Usar Format-Wide para resultados con un único elemento   32
Controlar la presentación con columnas de Format-Wide   32
Usar Format-List para una vista de lista   32
Obtener información detallada utilizando Format-List con caracteres comodín   33
Usar Format-Table para mostrar resultados con formato de tabla   33
Mejorar el resultado obtenido con Format-Table (AutoSize)   34
Ajustar en columnas el resultado obtenido con Format-Table (Wrap)   35
Organizar los resultados con formato de tabla (-GroupBy)   36
Redirigir datos con los cmdlets Out-*   37
Dividir en páginas el resultado mostrado en la consola (Out-Host)   38
Descartar el resultado (Out-Null)   39
Imprimir datos (Out-Printer)   39
Almacenar datos (Out-File)   39
Desplazamiento por Windows PowerShell   40
Administrar la ubicación actual en Windows PowerShell   41
Obtener la ubicación actual (Get-Location)   41
Establecer la ubicación actual (Set-Location)   42
Almacenar y recuperar ubicaciones recientes  (Push-Location y Pop-Location)   43
Administrar las unidades de Windows PowerShell   45
Agregar nuevas unidades de Windows PowerShell  (New-PSDrive)   47
Eliminar unidades de Windows PowerShell  (Remove-PSDrive)   49
Agregar y eliminar unidades fuera de Windows PowerShell   49
Trabajar con archivos, carpetas y claves del Registro   49
Enumerar archivos, carpetas y claves del Registro  (Get-ChildItem)   50
Crear una lista de todos los elementos contenidos (-Recurse)   50
Filtrar elementos por nombre (-Name)   51
Forzar la presentación de los elementos ocultos (-Force)   51
Usar caracteres comodín para buscar nombres de elementos   51
Excluir elementos (-Exclude)   52
Combinar parámetros de Get-ChildItem   53
Manipular elementos directamente   54
Crear nuevos elementos (New-Item)   54
Por qué los valores del Registro no son elementos   55
Cambiar nombres de elementos existentes (Rename-Item)   56
Desplazar elementos (Move-Item)   56
Copiar elementos (Copy-Item)   57
Eliminar elementos (Remove-Item)   58
Ejecutar elementos (Invoke-Item)   58
Trabajar con objetos   59
Obtener objetos de WMI (Get-WmiObject)   59
Obtener objetos de WMI (Get-WmiObject)   59
Enumerar las clases de WMI   59
Obtener información detallada sobre las clases de WMI   61
Mostrar propiedades no predeterminadas con los cmdlets Format   62
Crear objetos .NET y COM (New-Object)   62
Usar New-Object para el acceso a registros de eventos   63
Usar constructores con New-Object   63
Almacenar objetos en variables   64
Acceso a un registro de eventos remoto con New-Object   64
Borrar un registro de eventos con métodos de objetos   65
Crear objetos COM con New-Object   65
Crear accesos directos de escritorio con WScript.Shell   66
Usar Internet Explorer desde Windows PowerShell   68
Obtener advertencias acerca de objetos COM contenidos en .NET   70
Usar clases y métodos estáticos   70
Obtener datos de entorno con System.Environment   71
Hacer referencia a la clase estática System.Environment   71
Mostrar las propiedades estáticas de System.Environment   72
Operaciones matemáticas con System.Math   73
Eliminar objetos de la canalización (Where-Object)   74
Realizar pruebas sencillas con Where-Object   75
Filtrado basado en propiedades de objetos   76
Repetir una tarea para varios objetos (ForEach-Object)   78
Seleccionar partes de objetos  (Select-Object)   79
Ordenar objetos   80
Usar variables para almacenar objetos   81
Crear una variable   81
Manipular variables   82
Usar variables de Cmd.exe   82
Usar Windows PowerShell para tareas de administración   83
Administrar procesos locales   83
Mostrar la lista de procesos (Get-Process)   84
Detener procesos (Stop-Process)   85
Detener todas las demás sesiones de Windows PowerShell   86
Administrar servicios locales   87
Mostrar la lista de servicios   87
Detener, iniciar, suspender y reiniciar servicios   88
Recopilar información acerca de equipos   89
Mostrar la lista de configuraciones de escritorio   89
Mostrar información del BIOS   90
Mostrar información de procesadores   90
Mostrar el fabricante y el modelo del equipo   90
Mostrar las revisiones instaladas   91
Mostrar información de versión del sistema operativo   92
Mostrar los usuarios y propietarios locales   92
Obtener el espacio en disco disponible   92
Obtener información de sesiones iniciadas   93
Obtener el usuario que ha iniciado una sesión en un equipo   93
Obtener la hora local de un equipo   93
Mostrar el estado de un servicio   94
Trabajar con instalaciones de software   94
Mostrar las aplicaciones instaladas con Windows Installer   95
Mostrar todas las aplicaciones que se pueden desinstalar   96
Instalar aplicaciones   98
Eliminar aplicaciones   99
Actualizar aplicaciones instaladas con Windows Installer   99
Cambiar el estado del equipo: bloquear, cerrar la sesión, apagar y reiniciar   100
Bloquear un equipo   100
Cerrar la sesión actual   100
Apagar o reiniciar un equipo   101
Trabajar con impresoras   101
Crear una lista de conexiones de impresora   101
Agregar una impresora de red   101
Configurar una impresora predeterminada   102
Quitar una conexión de impresora   102
Realizar tareas de red   102
Crear una lista de direcciones IP utilizadas en un equipo   102
Mostrar los datos de configuración de IP   103
Hacer ping en equipos   104
Recuperar propiedades de adaptadores de red   105
Asignar el dominio DNS para un adaptador de red   105
Realizar tareas de configuración de DHCP   106
Determinar los adaptadores con DHCP habilitado   106
Recuperar propiedades de DHCP   106
Habilitar DHCP en cada adaptador   106
Liberar y renovar concesiones DHCP en adaptadores específicos   107
Liberar y renovar concesiones DHCP en todos los adaptadores   107
Crear un recurso compartido de red   108
Eliminar un recurso compartido de red   108
Conectar una unidad de red accesible desde Windows   109
Trabajar con archivos y carpetas   109
Mostrar todos los archivos y carpetas que contiene una carpeta   109
Copiar archivos y carpetas   110
Crear archivos y carpetas   111
Eliminar todos los archivos y carpetas que contiene una carpeta   111
Asignar una carpeta local como una unidad accesible desde Windows   111
Leer un archivo de texto en una matriz   112
Trabajar con claves del Registro   112
Mostrar todas las subclaves de una clave del Registro   113
Copiar claves   114
Crear claves   114
Eliminar claves   115
Eliminar todas las claves contenidas en una clave específica   115
Trabajar con entradas del Registro   115
Mostrar las entradas del Registro   116
Obtener una sola entrada del Registro   117
Crear nuevas entradas del Registro   118
Cambiar el nombre de entradas del Registro   119
Eliminar entradas del Registro   120
Apéndice 1: Alias de compatibilidad   120
Apéndice 2: Crear accesos directos personalizados de PowerShell   121

En línea

Meta Shell, VERSIÓN 1.2.2, Hecho con Visual C# .net Express (Gratuito)
Descargar
Meta

Desconectado Desconectado

Mensajes: 928


Ver Perfil
Re: Power Shell
« Respuesta #3 en: 05 Agosto 2007, 11:35 »

Aviso de copyright de la Guía básica de Windows PowerShell™
La finalidad de este documento es meramente informativa y Microsoft declina toda garantía, implícita o explícita, relativa al mismo. La información que contiene este documento, incluidas las referencias a direcciones URL y otros sitios Web de Internet, está sujeta a cambios sin previo aviso. Cualquier riesgo derivado del uso de este documento o de las consecuencias de su utilización es responsabilidad del usuario. A menos que se indique lo contrario, los nombres de las empresas, organizaciones, productos, dominios, así como las direcciones de correo electrónico, los logotipos, las personas y los acontecimientos que se muestran aquí son ficticios. No existe la intención de establecer ni debe inferirse ninguna asociación con ninguna empresa, organización, producto, nombre de dominio, dirección de correo electrónico, logotipo, persona, lugar o acontecimiento reales. Es responsabilidad del usuario cumplir con todas las leyes de copyright aplicables. Sin limitación de los derechos de copyright, no se permite reproducir, almacenar, introducir en un sistema de recuperación ni transmitir de ninguna forma ni con ningún tipo de medio (electrónico, mecánico, de fotocopiado, grabación, etc.) ninguna parte de este documento, independientemente de la finalidad, sin la autorización explícita por escrito de Microsoft Corporation.
Microsoft puede ser titular de patentes, solicitudes de patentes, marcas, derechos de autor, y otros derechos de propiedad intelectual sobre los contenidos de este documento. Salvo en lo que respecta a lo establecido expresamente en cualquier acuerdo de licencia escrito de Microsoft, la entrega de este documento no le concede ninguna licencia sobre estas patentes, marcas comerciales, derechos de copyright u otros derechos de propiedad intelectual.
© 2006 Microsoft Corporation. Reservados todos los derechos.
Microsoft, MS-DOS, Windows, Windows NT, Windows 2000, Windows XP y Windows Server 2003 son marcas registradas o marcas comerciales de Microsoft Corporation en Estados Unidos y en otros países.
Otros nombres de productos y compañías mencionados aquí pueden ser marcas comerciales de sus respectivos propietarios.
Introducción a Windows PowerShell
Windows PowerShell es un shell de línea de comandos y un entorno de scripting que ofrece la eficacia de .NET Framework a los usuarios de la línea de comandos y a los creadores de scripts. Windows PowerShell presenta diversos conceptos nuevos y eficaces que permiten ampliar los conocimientos adquiridos y los scripts creados en los entornos del símbolo del sistema de Windows y Windows Script Host.
Público al que se dirige
La Guía básica de Windows PowerShell está destinada a los profesionales de tecnologías de la información (TI), programadores y usuarios avanzados que carezcan de conocimientos sobre Windows PowerShell. Aunque los conocimientos sobre creación de scripts y WMI ayudan, no se presuponen ni son necesarios para entender este documento.
Acerca de Windows PowerShell
Windows PowerShell se ha diseñado para mejorar el entorno de línea de comandos y scripting mediante la eliminación de antiguos problemas y la incorporación de nuevas funciones.
Aprendizaje sencillo
Windows PowerShell permite descubrir fácilmente sus funciones. Por ejemplo, para obtener una lista de los cmdlets que permiten ver y cambiar servicios de Windows, escriba:
get-command *-service

Después de descubrir qué cmdlet realiza una tarea, puede obtener más información acerca del cmdlet en cuestión mediante el cmdlet Get-Help. Por ejemplo, para mostrar la Ayuda acerca del cmdlet Get-Service, escriba:
get-help get-service

Para entender totalmente el resultado de este cmdlet, canalice dicho resultado al cmdlet Get-Member. Por ejemplo, el siguiente comando muestra información acerca de los miembros del objeto que da como resultado el cmdlet Get-Service:
get-service | get-member

Coherencia
La administración de sistemas puede ser una tarea compleja, y herramientas con una interfaz común ayudan a controlar esta complejidad inherente. Por desgracia, ni las herramientas de línea de comandos ni los objetos COM que se pueden utilizar en scripts destacan por su coherencia.
La coherencia de Windows PowerShell constituye uno de sus valores principales. Por ejemplo, si aprende a utilizar el cmdlet Sort-Object, podrá usar estos conocimientos para ordenar el resultado de cualquier cmdlet. No es necesario que aprenda las distintas rutinas de ordenación de cada cmdlet.
Además, los programadores de cmdlets no tienen que diseñar funciones de ordenación para sus cmdlets. Windows PowerShell les proporciona un marco de trabajo con las funciones básicas y les obliga a ser coherentes en muchos aspectos de la interfaz. Este marco de trabajo elimina algunas de las opciones que suelen dejarse en manos del programador pero, a cambio, la programación de cmdlets eficaces y fáciles de usar se vuelve una tarea mucho más sencilla.
Entorno interactivo y de scripting
Windows PowerShell combina un entorno interactivo con un entorno de scripting que ofrece acceso a herramientas de línea de comandos y objetos COM, y permite aprovechar la eficacia de la biblioteca de clases de .NET Framework (FCL).
Este entorno combinado mejora el símbolo del sistema de Windows, que proporciona un entorno interactivo con varias herramientas de línea de comandos. También mejora los scripts de Windows Script Host (WSH), que permiten utilizar varias herramientas de línea de comandos y objetos de automatización COM, pero que no proporcionan un entorno interactivo.
Al combinar el acceso a todas estas características, Windows PowerShell amplía la capacidad del usuario interactivo y del creador de scripts, además de facilitar la administración de sistemas.
Orientación a objetos
Aunque la interacción con Windows PowerShell se realiza mediante comandos de texto, Windows PowerShell está basado en objetos, no en texto. El resultado de un comando es un objeto. Puede enviar el objeto de salida como entrada a otro comando. En consecuencia, Windows PowerShell proporciona una interfaz familiar a usuarios con experiencia en otros shells, al tiempo que introduce un nuevo y eficaz paradigma de línea de comandos. Asimismo, extiende el concepto de envío de datos entre comandos al permitir enviar objetos en lugar de texto.
Transición sencilla a la creación de scripts
Windows PowerShell facilita la transición desde escribir comandos de forma interactiva a crear y ejecutar scripts. Puede escribir comandos en el símbolo del sistema de Windows PowerShell para descubrir los comandos que realizan una tarea. A continuación, puede guardar estos comandos en una transcripción o un historial y después copiarlos en un archivo para utilizarlos como un script.
Instalar y ejecutar Windows PowerShell
Requisitos de instalación
Antes de instalar Windows PowerShell, asegúrese de que el sistema dispone de los programas de software que necesita Windows PowerShell. Estos programas son:
•   Windows XP Service Pack 2, Windows 2003 Service Pack 1 o versiones posteriores de Windows
•   Microsoft .NET Framework 2.0
Si ya hay instalada una versión de Windows PowerShell en el equipo, utilice Agregar o quitar programas del Panel de control para desinstalarla antes de instalar una nueva versión.
Instalar Windows PowerShell
Para instalar Windows PowerShell:
1.   Descargue el archivo de instalación de Windows PowerShell. (El nombre del archivo es distinto según la plataforma, el sistema operativo y el paquete de idioma utilizados.)
2.   Para iniciar la instalación, haga clic en Abrir.
3.   Siga las instrucciones que se muestran en las páginas del Asistente para instalación.

También puede guardar los archivos de Windows PowerShell en un recurso compartido de red para realizar la instalación en varios equipos.
Para realizar una instalación silenciosa, escriba:
<nombre-ejecutable-PowerShell> /quiet

Por ejemplo:
PowerShellSetup_x86_fre.exe /quiet


En versiones de 32 bits de Windows, Windows PowerShell se instala, de manera predeterminada, en el directorio %SystemRoot%\System32\WindowsPowerShell\v1.0. En versiones de 64 bits de Windows, se instala una versión de 32 bits de Windows PowerShell en el directorio %SystemRoot%\SystemWow64\WindowsPowerShell\v1.0 y una versión de 64 bits de Windows PowerShell en el directorio %SystemRoot%\System32\WindowsPowerShell\v1.0.
Ejecutar Windows PowerShell
Para iniciar Windows PowerShell desde el menú Inicio, haga clic en Inicio, Todos los programas, Windows PowerShell 1.0 y, a continuación, en el icono Windows PowerShell.
Para iniciar Windows PowerShell desde el cuadro Ejecutar, haga clic en Inicio, Ejecutar, escriba powershell y, a continuación, haga clic en Aceptar.
Para iniciar Windows PowerShell desde una ventana del símbolo del sistema (cmd.exe), escriba powershell. Dado que Windows PowerShell se ejecuta en una sesión de consola, puede emplear esta misma técnica para ejecutarlo en una sesión de SSH o Telnet remota. Para volver a la sesión del símbolo del sistema, escriba exit.
Conceptos básicos de Windows PowerShell
Las interfaces gráficas emplean algunos conceptos básicos que conocen bien la mayoría de los usuarios, y que les ayudan a realizar las tareas. Los sistemas operativos ofrecen a los usuarios una representación gráfica de los elementos que se pueden explorar, normalmente con menús desplegables para el acceso a funciones específicas y menús contextuales para el acceso a funciones que dependen del contexto.
Una interfaz de línea de comandos (CLI), como Windows PowerShell, debe aplicar un enfoque distinto para exponer la información, ya que carece de menús o sistemas gráficos que sirvan de ayuda al usuario. Es necesario que el usuario conozca los nombres de los comandos para poder utilizarlos. Aunque puede escribir comandos complejos equivalentes a las funciones de un entorno GUI, es necesario que se familiarice con los comandos y los parámetros más usados.
La mayoría de las CLI carecen de patrones que puedan ayudar al usuario en el aprendizaje de la interfaz. Dado que las CLI fueron los primeros shells de sistemas operativos, muchos nombres de comandos y de parámetros se seleccionaron de forma arbitraria. Generalmente se eligieron nombres concisos pero poco intuitivos. Aunque la mayoría de las CLI integran los estándares de diseño de comandos y sistemas de Ayuda, normalmente se han diseñado para ser compatibles con los comandos anteriores, por lo que los comandos siguen estando basados en decisiones que se tomaron hace décadas.
Windows PowerShell se ha diseñado para aprovechar los conocimientos históricos sobre CLI de los usuarios. En este capítulo, hablaremos sobre algunas herramientas y conceptos básicos que le ayudarán a aprender a utilizar Windows PowerShell rápidamente. Entre ellos, se incluyen los siguientes:
•   Uso de Get-Command
•   Uso de Cmd.exe y comandos UNIX
•   Uso de comandos externos
•   Completar con tabulaciones
•   Uso de Get-Help
Conceptos importantes de Windows PowerShell
El diseño de Windows PowerShell integra conceptos de muchos entornos distintos. Algunos de ellos son familiares para los usuarios con experiencia en shells o entornos de programación específicos, pero muy pocos los conocen todos. Examinar detenidamente estos conceptos ofrece una útil descripción general del shell.
Los comandos no están basados en texto
A diferencia de los comandos tradicionales de una interfaz de línea de comandos, los cmdlets de Windows PowerShell están diseñados para usar objetos: información estructurada que es más que una simple cadena de caracteres que se muestra en pantalla. El resultado de los comandos contiene siempre información adicional que puede usar si es necesario. Trataremos este tema en profundidad en este documento.
Si en el pasado utilizó herramientas de procesamiento de textos para procesar los datos de línea de comandos e intenta usarlas en Windows PowerShell, observará que se comportan de forma distinta. En la mayoría de los casos, no es necesario utilizar herramientas de procesamiento de textos para extraer información específica. Puede tener acceso directamente a partes de los datos mediante comandos estándar para la manipulación de objetos de Windows PowerShell.
El conjunto de comandos es ampliable
Las interfaces como Cmd.exe no proporcionan al usuario una manera de ampliar directamente el conjunto de comandos integrados. Puede crear herramientas externas de línea de comandos que se ejecuten en Cmd.exe, pero estas herramientas externas carecen de servicios, como la integración de la Ayuda, y Cmd.exe no reconoce automáticamente que son comandos válidos.
Los comandos binarios nativos de Windows PowerShell, denominados cmdlets, se pueden ampliar con cmdlets que cree y que agregue a Windows PowerShell mediante complementos. Los complementos de Windows PowerShell se compilan, al igual que las herramientas binarias de cualquier otra interfaz. Puede utilizarlos para agregar proveedores de Windows PowerShell al shell, así como nuevos cmdlets.
Debido a la naturaleza especial de los comandos internos de Windows PowerShell, los llamaremos cmdlets.
 Nota:
Windows PowerShell puede ejecutar comandos que no sean cmdlets. No los vamos a tratar detenidamente en la Guía básica de Windows PowerShell, pero resulta útil conocerlos como categorías de tipos de comandos. Windows PowerShell admite scripts análogos a los scripts del shell de UNIX y los archivos por lotes de Cmd.exe, pero tienen la extensión de nombre de archivo .ps1. Windows PowerShell también permite crear funciones internas que pueden utilizarse directamente en la interfaz o en scripts.
Windows PowerShell controla la entrada y la presentación de la consola
Cuando se escribe un comando, Windows PowerShell procesa siempre la entrada de la línea de comandos directamente. También aplica formato a los resultados que se muestran en pantalla. Esto es importante, ya que reduce el trabajo necesario de cada cmdlet y asegura que el usuario puede hacer siempre las cosas de la misma manera, independientemente del cmdlet que utilice. Un ejemplo de cómo esto hace la vida más fácil a los programadores de herramientas y a los usuarios es la Ayuda de la línea de comandos.
Las herramientas tradicionales de línea de comandos cuentan con sus propios esquemas para solicitar y mostrar la Ayuda. Algunas herramientas utilizan /? para activar la presentación de la Ayuda, mientras que otras utilizan -?, /H o incluso //. Algunas muestran la Ayuda en una ventana de la GUI y no en la consola. Algunas herramientas complejas, como las de actualización de aplicaciones, descomprimen archivos internos antes de mostrar la Ayuda correspondiente. Si usa un parámetro equivocado, es posible que la herramienta pase por alto lo que ha escrito y comience a realizar una tarea automáticamente.
Cuando escriba un comando en Windows PowerShell, todo lo que escriba lo analizará y preprocesará Windows PowerShell automáticamente. Si usa el parámetro -? con un cmdlet de Windows PowerShell, siempre significará "muéstrame la Ayuda de este comando". Los programadores de cmdlets no tienen que analizar el comando; sólo tienen que proporcionar el texto de la Ayuda.
Es importante entender que las características de Ayuda de Windows PowerShell están disponibles incluso cuando se ejecutan herramientas tradicionales de línea de comandos en Windows PowerShell. Windows PowerShell procesa los parámetros y analiza los resultados para las herramientas externas.
 Nota:
Si ejecuta una aplicación gráfica en Windows PowerShell, se abrirá la ventana de la aplicación. Windows PowerShell interviene únicamente al procesar la entrada de línea de comandos proporcionada o la salida de la aplicación que se devuelve a la ventana de la consola; no interviene en el funcionamiento interno de la aplicación.
Windows PowerShell utiliza sintaxis del lenguaje C#
Windows PowerShell incluye palabras clave y funciones de sintaxis muy parecidas a las que se usan en el lenguaje de programación C#, ya que también se basa en .NET Framework. Aprender a utilizar Windows PowerShell facilita mucho el aprendizaje de C#, si está interesado en este lenguaje.
Si no es un programador de C#, esta similitud no es importante. No obstante, si ya está familiarizado con C#, las similitudes pueden facilitar enormemente el aprendizaje de Windows PowerShell.
En línea

Meta Shell, VERSIÓN 1.2.2, Hecho con Visual C# .net Express (Gratuito)
Descargar
Meta

Desconectado Desconectado

Mensajes: 928


Ver Perfil
Re: Power Shell
« Respuesta #4 en: 05 Agosto 2007, 11:36 »

Aprender los nombres de comandos y parámetros de Windows PowerShell
Para la mayoría de las interfaces de línea de comandos, hay que dedicar mucho tiempo a aprender los nombres de comandos y parámetros. El problema es que hay muy pocos patrones que seguir, por lo que la única manera es memorizar cada comando y cada parámetro que se vaya a utilizar con frecuencia.
Cuando se trabaja con un comando o parámetro nuevo, no se puede usar normalmente lo que ya se sabe; es necesario buscar y aprender un nombre nuevo. Si observa cómo aumentan de tamaño las interfaces, desde un pequeño conjunto de herramientas hasta funciones, con adiciones progresivas, es fácil entender por qué la estructura no está normalizada. En lo que respecta a los nombres de comandos en concreto, esto puede parecer lógico puesto que cada comando es una herramienta independiente, pero hay una manera mejor de tratar los nombres de comandos.
La mayoría de los comandos se crean para administrar elementos del sistema operativo o aplicaciones, como servicios o procesos. Los comandos tienen nombres diversos, que pueden ajustarse o no a un grupo. Por ejemplo, en sistemas Windows, se pueden utilizar los comandos net start y net stop para iniciar o detener un servicio. También hay otra herramienta de control de servicios más generalizada para Windows con un nombre totalmente distinto, sc, que no encaja en el patrón de nomenclatura de los comandos de servicio net. Para la administración de procesos, Windows cuenta con el comando tasklist para enumerar procesos y con el comando taskkill para eliminar procesos.
Los comandos con parámetros tienen especificaciones irregulares para estos últimos. No se puede usar el comando net start para iniciar un servicio en un equipo remoto. El comando sc inicia un servicio en un equipo remoto pero, para especificar este último, es necesario escribir dos barras diagonales inversas como prefijo del nombre. Por ejemplo, para iniciar el servicio de cola de impresión en un equipo remoto llamado DC01, debe escribir sc \\DC01 start spooler. Para obtener una lista de las tareas que se están ejecutando en DC01, deberá utilizar el parámetro /S (de "sistema") y proporcionar el nombre DC01 sin las barras diagonales inversas: tasklist /S DC01.
Aunque hay importantes diferencias técnicas entre un servicio y un proceso, ambos son ejemplos de elementos fáciles de administrar en un equipo con un ciclo de vida bien definido. Quizá desee iniciar o detener un servicio o proceso, u obtener una lista de todos los servicios o procesos en ejecución actualmente. En otras palabras, aunque un servicio y un proceso son cosas distintas, las acciones que realizamos en un servicio o proceso son a menudo las mismas, conceptualmente hablando. Además, las elecciones que realicemos para personalizar una acción mediante parámetros pueden ser también conceptualmente parecidas.
Windows PowerShell aprovecha estas similitudes para reducir el número de nombres distintos que el usuario necesita conocer para entender y usar los cmdlets.
Los cmdlets utilizan nombres con verbo y sustantivo para reducir la memorización de comandos
Windows PowerShell utiliza un sistema de nombres con la estructura "verbo-sustantivo": el nombre de cada cmdlet consta de un verbo estándar y un sustantivo concreto unidos por un guión. Los verbos de Windows PowerShell no siempre están en inglés, pero expresan acciones concretas en Windows PowerShell. Los sustantivos son muy parecidos a los de cualquier idioma, ya que describen tipos de objetos concretos que son importantes para la administración del sistema. Resulta muy fácil entender cómo estos nombres que constan de dos partes reducen el esfuerzo de aprendizaje si observamos varios ejemplos de verbos y sustantivos.
Los sustantivos están menos limitados, pero deben describir siempre a qué se aplica un comando. Windows PowerShell incluye comandos como Get-Process, Stop-Process, Get-Service y Stop-Service.
En el caso de dos sustantivos y dos verbos, la coherencia no simplifica tanto el aprendizaje. No obstante, en el caso de un conjunto estándar de 10 verbos y 10 sustantivos, tendría solamente 20 palabras que aprender, pero éstas se pueden usar para formar 100 nombres de comandos distintos.
A menudo se reconoce la función de un comando con sólo leer su nombre, y suele ser evidente el nombre que debe utilizarse para un comando nuevo. Por ejemplo, un comando que apaga el equipo podría ser Stop-Computer. Un comando que enumera todos los equipos de una red podría ser Get-Computer. El comando que obtiene la fecha del sistema es Get-Date.
Puede obtener una lista de todos los comandos que incluyen un verbo concreto con el parámetro -Verb de Get-Command (trataremos Get-Command en profundidad en la siguiente sección). Por ejemplo, para ver todos los cmdlets que utilizan el verbo Get, escriba:
PS> Get-Command -Verb Get
CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Get-Acl                         Get-Acl [[-Path] <String[]>]...
Cmdlet          Get-Alias                       Get-Alias [[-Name] <String[]...
Cmdlet          Get-AuthenticodeSignature       Get-AuthenticodeSignature [-...
Cmdlet          Get-ChildItem                   Get-ChildItem [[-Path] <Stri...
...

El parámetro -Noun es incluso más útil porque permite ver una familia de comandos que se aplican al mismo tipo de objeto. Por ejemplo, si desea ver qué comandos están disponibles para administrar servicios, escriba el siguiente comando:
PS> Get-Command -Noun Service
CommandType&nbs