Windows PowerShell es un shell de línea de comandos de Windows especialmente diseñado para administradores de sistemas. Incluye una ventana de línea de comandos interactiva de estilo DOS y un entorno de secuencias de comandos, y se puede utilizar de forma independiente o conjunta. A diferencia de la mayoría de los shells que reciben y envían mensajes de texto, Windows PowerShell se basa en .NET Common Language Runtime y .NET Framework para recibir y responder a objetos .NET. Estas características proporcionan nuevas herramientas y métodos para la administración y configuración de Windows.
PowerShell
Un concepto importante en Windows PowerShell es el "cmdlet", una herramienta de línea de comandos simple y de función única integrada en Shell. Los usuarios pueden utilizar los comandos de forma independiente, pero sus efectos dependen de las tareas y el entorno de la aplicación. Windows PowerShell contiene más de 100 líneas de comando básicas y los usuarios pueden escribir sus propias líneas de comando y compartirlas con otros usuarios.
Como la mayoría de los shells, Windows PowerShell le brinda acceso al sistema de archivos de su computadora. Además, Windows PowerShell le permite acceder a otros datos almacenados, como el registro y los certificados de firma digital, tan fácilmente como acceder al sistema de archivos.
PowerShell en Windows Server 2008 R2 se actualizó a 2.0, lo que introdujo muchas características nuevas, como administración remota, un entorno de secuencias de comandos completo, herramientas de depuración, etc. Echemos un vistazo más de cerca a las nuevas características de ISE y las funciones remotas mejoradas en PowerShell V2. .
1. Entorno de script integrado ISE (entorno de script integrado)
Un requisito básico para PowerShell es poder escribir y depurar fácilmente scripts de PowerShell. PowerShell v2 viene con un entorno de script integrado ISE (Integrated Script Environment), que facilita la escritura de scripts de PowerShell. ISE incluye un panel de script, un panel de salida y. Un panel de línea de comando.
panel ISE
El panel de línea de comandos de ISE es muy similar al panel de línea de comandos de PowerShell. Los usuarios pueden escribir comandos en él y presionar Enter para ejecutar el comando. Los resultados de la ejecución del comando se mostrarán en el panel de salida y se podrán rastrear claramente los resultados de todas las ejecuciones de comandos anteriores. El panel de secuencias de comandos en la parte superior se puede utilizar para escribir y depurar secuencias de comandos. El panel de secuencias de comandos admite múltiples secuencias de comandos para operar juntas, lo que facilita su operación.
Para ayudar a los usuarios a depurar scripts, ISE les permite establecer puntos de interrupción de depuración de diversas formas. Se pueden configurar de forma manual o automática bajo ciertas condiciones especiales. Este último proporciona una mejor experiencia operativa. En el comando para establecer un punto de interrupción, el usuario debe especificar el nombre y las coordenadas del script de depuración.
Set-PSBreakpoint .[Script-File-Name].ps1 -line X
Si desea establecer varios puntos de interrupción, debe separarlos con comas al especificar las coordenadas, como
Set-PSBreakpoint .[Script-File-Name].ps1 -línea X,Y,Z
Si desea establecer un punto de interrupción al llamar a una función específica, debe usar el comando Set-PSBreakpoint, el parámetro -Command y el nombre de la función:
Set-PSBreakPoint -Command [Nombre de función]
El depurador ISE también puede establecer un punto de interrupción al leer o escribir una variable específica. El siguiente es el comando para establecer un punto de interrupción al leer o escribir una variable:
Set-PSBreakpoint -Variable [Nombre-Variable] -modo lectura
Set-PSBreakpoint -Variable [Nombre-Variable] -modo escritura
Una vez establecido un punto de interrupción, tiene un identificador único. Puede eliminar el punto de interrupción eliminando el identificador mediante el comando Disable-PSBreakpoint:
Desactivar-PSBreakpointX
2. Mejora de la función remota de PowerShell v2
Otra característica importante de PowerShell v2 es la mejora de las capacidades de operación remota (PowerSell remotating), agregando una nueva línea de comando Invoke-Command. Cabe señalar que la comunicación remota de PowerSell actualmente solo admite computadoras que ejecutan Vista SP1, Windows Server 2008 y Windows 7, y es necesario instalar la versión correspondiente de la herramienta de administración remota WinRM. Esto significa que los usuarios solo pueden conectar computadoras con Vista SP1/Win 2008 con PowerShell v2 y WinRM instalados a través de la comunicación remota con PowerShell. Las computadoras con Vista (solo se puede instalar PowerShell) y los sistemas WinXP no son compatibles.
Requisitos y mejoras del sistema PowerShell v2
En la versión preliminar de CTP de PowerShell 2.0, el comando Invoke-Expression se utiliza para conectarse a la computadora remota:
Invocar-Expresión –computerName atl-fs-001 –comando Obtener-Proceso
Si el usuario desea ejecutar el comando Get-Process en la computadora remota atl-fs-001, se puede usar el nuevo comando Invoke-Command:
Invocar comando –computerName atl-fs-001 –scriptblock
Se puede ver que los parámetros básicos en los dos comandos son los mismos. El equipo de PowerShell reemplazó el comando Invoke-Expression con Invoke-Command y reemplazó el comando con el parámetro –scriptblock. Aunque no hay muchos cambios en el comando. , ha mejorado la estabilidad operativa, la seguridad y el rendimiento.
Por supuesto, este comando también puede admitir varias computadoras remotas. Si necesita obtener información del proceso de las computadoras remotas atl-fs-001, atl-fs-002 y atl-fs-003, puede usar el comando:
Invocar comando –computerName atl-fs-001, atl-fs-002, atl-fs-003 –scriptblock
Admite múltiples computadoras remotas
Al igual que el comando Invoke-Expression, Invoke-Command puede conectarse a la computadora remota y ejecutar el comando, pero la conexión se perderá inmediatamente. Si necesita una conexión persistente a la computadora remota, puede crear una sesión de PowerShell con el comando:
$objRunspace = Nuevo espacio de ejecución atl-fs-001, atl-fs-002, atl-fs-003
Si necesita más información sobre el comando Invoke-Command, puede obtener instrucciones y ejemplos a través del siguiente comando:
Obtener ayuda Invocar comando –completo más |