10 Comandos PowerShell cualquier administrador debería saber.
Yo entiendo que powershell tiene dos variantes, una la dedicada a gestión en la cual solicitamos información o interactuamos con el sistema y otra mas compleja en la que creamos scripts muy elaborados para realizar también operaciones complecas.
A continuación muestro una serie de comandos de uso habitual por cualquier administrador que intente entrar en este mundillo del powershell y que forman parte de esa variante sencilla de powershell.
1: Get-Help
El primer comando PowerShell cmdlet que cualquier administrador debería conocer es el encargado de pedir ayuda Get-Help. Es como el "man" en linux y se utiliza del mismo modo para solicitar ayuda sobre un comando. Por ejemplo si quieres conocer como se utiliza o para que sirve el cmdlet "Get-Process" pondríamos lo siguiente:Get-Help -Name Get-Process
y windows nos mostrará la sintaxis completa.
TIP: En lugar de usar "Get-help" tabien puedes usar únicamente "help", rápido y sencillo.
También puedes utilizar "Get-Help" con nombres o verbos individuales. Por ejemplo para encontrar ayuda sobre todos los comandos que empiezan por "Get" utilizaríamos este comando:
Get-Help -Name Get-*
2: Set-ExecutionPolicy
Crear scripts básico en PowerShell para realizar ciertas operaciones, pero por defecto Microsoft tiene deshabilitada la ejecución de los mismos para evitar un mal uso o la ejecución de software malicioso. . Existe un comando que regula el uso y ejecución de scripts y es "Set-ExecutionPolicy", el cual nos permite establecer el nivel de seguridad en la ejecución de scripts. Existen cuatro niveles de ejecución disponibles:- Restricted -- Es la opción por defecto si consultamos el estado con "Get-ExecutionPolicy" y que solamente nos permite ejecución de comandos de forma interactiva y no permite la ejecución de Scripts.
- All Signed -- Con esta opción, se podrán ejecutar scripts pero únicamente si están firmados por una entidad de confianza. (un poco rollo por que cada ps1 que quieres utilizar ha de ser firmado previamente para que se pueda ejecutar).
- Remote Signed -- Con esta política (muy cómoda) cualquier script PowerShell creado localmente podrá ser ejecutado. Los scripts creados remotamente o en otro equipo, solo podran ser ejecutados si son firmados por una entidad de confianza.
- Unrestricted -- barra libre, o lo que es lo mismo cualquiera... no te cuento lo peligroso que esto puede ser.....It is up to you!!.
Set-ExecutionPolicy Unrestricted
3: Get-ExecutionPolicy
Creo que esto ya lo he explicado no? LOL pues eso, en realidad esto tendria que ser el punto 2.4: Get-Service
Una de los comandos que mas he lanzado en el GUI de windows es "services.msc". Con "Get-Service" obtenemos el mismo resultado, mostrándonos todos los servicios y su estado. Si quieres saber el estado de un servicio concreto puedes añadir "-name"5: ConvertTo-HTML
En ocasiones puede que necesites enviar una salida de comando a algún jefe o compañero. PowerShell permite realizar esta acción mediante el comando "ConvertTo-HTML".Para usar este comando, simpremete hay que usar el pipe "|" en la salida de un comando de PowerShell. Es necesario utilizar el modificador "-Property"para controlar que propiedades de la salida queremos "imprimir" a html.
Vamos a utilizar el comando "Get-Service" para ver el funcionamiento de este cmdlet:
Get-Service | ConvertTo-HTML -Property Name, Status > C:\services.htm
6: Export-CSV
Además de poder exportar a HTML utilizando PowerShell, también se puede exportar a CSV para luego ser tratado en Microsoft Excel. El modo de funcionamiento es similar a la que hemos visto previamente en HTML. Como mínimo has de proporcionar el fichero de salida y su ruta. Aquí tenemos el mismo ejemplo de antes con CSV:Get-Service | Export-CSV c:\service.csv
7: Select-Object
Si utilizas el comando anterior, sabes que hay varias propiedades incluidas en el fichero CSV. Es habitual que solo se incluyan las propiedades que realmente se necesitan o en las que el administrador está interesado. Para esto utilizamos el comando "Select-Object". El comando "Select-Object" permite especificar que opciones de la salida del comando queremos utilizar . Por ejemplo, para crear un fichero CSV con el nombre de los servicio y status, eructaríamos lo siguiente:Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv
8: Get-EventLog
Antes he dicho que lo que mas uso es "services.msc" pero otra cosa que también utilizo muy amenudo es el Event log de Windows. Se puede obtener el mismo resultado usando PowerShell.Lo primero que tenemos que hacer es ver que logs podremos visualizar:
Get-Evenlog -list
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
20.480 0 OverwriteAsNeeded 12.003 Application
20.480 0 OverwriteAsNeeded 0 HardwareEvents
512 7 OverwriteOlder 0 Internet Explorer
20.480 0 OverwriteAsNeeded 0 Key Management Service
8.192 0 OverwriteAsNeeded 0 Media Center
128 0 OverwriteAsNeeded 224 OAlerts
20.480 0 OverwriteAsNeeded 37.655 Security
20.480 0 OverwriteAsNeeded 43.372 System
15.360 0 OverwriteAsNeeded 186 Windows PowerShell
Este comando no permitirá seleccionar el log que queremos visualizar
Get-EventLog -Log "Application"
Pero si has lanzado el comando has visto la locura que sale ;-)
Para facilitar un poco la vida hay comandos que podremos lanzar como por ejemplo mostrar los últimos tres eventos y mostrarlos en formato listado o filtra los eventos con ID 403
Get-EventLog system -newest 3 | Format-List
Get-EventLog "Windows PowerShell" | Where-Object {$_.EventID -eq 403}
Microsoft tiene un documento muuu bueno para esto:
http://technet.microsoft.com/en-us/library/ee176846.aspx
9 -10 : Get-Process & Stop-process
Igual que puedes ver los servicio operativos y su estado, también se puede obtener informacion de los processo (como lo hacemos en entorno grafico con ctrl+alt+supr). Tan solo hay que usar "Get-Service". La verdades que solo con esto hacemos mas bien poco... lo siguiente que te apetece hacer matar algo no?Stop-Process 3512
Stop-Process -processname notepad
No hay comentarios:
Publicar un comentario