28-09-2016, 04:06 PM
0
Seguimos con otra entrada de la Powershell enfocada a Windows Server 2012, esta vez con 25 comandos y ejemplos de donde podrían usarse cubriendo desde lo básico a ejemplos más avanzados.
Entradas comunes PowerShell
1. Navegar registro de Windows como si fuera un directorio de archivos
Es una función que no muchos saben de serie y es que puedes navegar por los registros de Windows usando la PS.
- PS C:\Users\jcarrillo> cd hkcu:
- PS HKCU:\> ls
- Hive: HKEY_CURRENT_USER
-
-
- SKC VC Name Property
- --- -- ---- --------
- 2 0 AppEvents {}
- 0 36 Console {ColorTable00, ColorTable01, ColorTab...
- 13 0 Control Panel {}
- 0 2 Environment {TEMP, TMP}
- 4 0 EUDC {}
- 1 6 Identities {Identity Ordinal, Migrated7, Last Us...
- 3 0 Keyboard Layout {}
- 2 0 Layout {}
- 0 0 Network {}
- 3 0 Printers {}
- 37 0 Software {}
- 1 0 System {}
- 1 8 Volatile Environment {LOGONSERVER, USERDOMAIN, USERNAME, U...
2. Buscar entre archivos incluyendo sub-carpetas
Podremos realizar una búsqueda en powershell y que se aplica a todos los sub-directorios que existan por y si buscamos en la raíz buscara en toda la partición.
- dir –r | select string "quebuscar"
3. TOP 5 Procesos con más consumo
Podemos ver cuáles son los procesos que consumen más memoria en el sistema.
- -- ps | sort –p ws | select –last 5
4. Reiniciar Servicio
Podemos hacer que un servicio se detenga y luego vuelva a iniciar muy útil.
- -- Restart-Service DHCP
6. Buscar en varios sitios a la vez
Buscamos en una seria de directorios o carpetas:
- -- Get-ChildItem –Force c:\directory –Recurse
7. Remover / Eliminar Archivos PowerShell
Elminar todos los archivos con la Powershell en un directorio sin pedir confirmación en cada uno de ellos.
- Remove-Item C:\tobedeleted –Recurse
8. Reiniciar la Maquina
Comando para riniciar la maquina con Powershell directamente.
- (Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)
Ahora nos pasamos a la recolección de información del sistema con la PowerShell.
Recolectando Información del Sistema con PowerShell
9. Información del hardware
Obtiene la información del sistema en uso.
- Get-WmiObject -Class Win32_ComputerSystem
10. Información de la BIOS
Lista el tipo de BIOS del sistema en uso con el siguiente comando:
- Get-WmiObject -Class Win32_BIOS -ComputerName
11 Actualizaciones Del Sistema
Lista todas las actualizaciones de Windows instaladas en el sistema se incluyen QFES o archivos de Windows Update.
- Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .
12. Usuario en linea
Muestra el usuario que está conectado en el sistema.
- Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName
13. Aplicaciones Instaladas
Muestra una lista con todas las aplicaciones instaladas con solo nombre sin descripción:
- Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1
14. Mostrar IP
Muestra todas las IP asociadas a la maquina físicas o virtuales.
- Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress
15. Mayor información de la red
Obtenemos mayor información como la interfaz asociada y los DNS.
- Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS*
16. NIC con DHCP
Muestra las interfaces de red configuradas en DHCP que estén habilitadas.
- Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" –ComputerName
17. Habilitar interfaces en DHCP
Habilita las interfaces que estén en DHCP en el Sistema con Powershell.
- Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process {$_.EnableDHCP()}
Nos vamos ahora a la administración de aplicaciones, tema muy interesante y demandado.
Administración de aplicaciones con PowerShell
18. Instalar paquetes de manera Remota
Instalar un paquete MSI en una computadora remota.
- (Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\MACHINEWHEREMSIRESIDES\path\package.msi)
19. Actualizar un paquete de manera Remota
Actualizamos un paquete MSI en un computador remoto.
- (Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='name_of_app_to_be_upgraded'").Upgrade(\\MACHINEWHEREMSIRESIDES\path\upgrade_package.msi)
20. Eliminar un paquete MSI
Removemos / Eliminamos un paquete con extensión MSI de la maquina en uso.
- (Get-WmiObject -Class Win32_Product -Filter "Name='product_to_remove'" -ComputerName . ).Uninstall()
21. Apagar Remotamente
Podemos incluso apagar una máquina remota usando este comando:
- Start-Sleep 60; Restart-Computer –Force –ComputerName TARGETMACHINE
22. Añadir Impresoras
Añadir una impresora a nuestro equipo pero antes debe ser reconocida instalando los drivers necesarios.
- (New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\printerserver\hplaser3")
23. Eliminar Impresora con PowerShell
Eliminar / Remover una impresora de nuestro equipo es importante saber que no desinstala los controladores.
- Remove a printer -- (New-Object -ComObject WScript.Network).RemovePrinterConnection("\\printerserver\hplaser3 ")
24. Entrar a una PowerShell Remota
Podemos ingresar a una PowerShell de una maquina remota pero antes debemos tener habilitado el remote management.
- enter-pssession TARGETMACHINE
25. Correr Script en Remoto
Para finalizar podemos invocar un script en un equipo en remoto y es uno de los mas interesantes.
- [url=http://www.solvetic.com/tutoriales/article/2077-25-comandos-de-powershell-que-todo-administrador-debe-saber/#]
- invoke-command -computername machine1, machine2 -filepath c:\Script\script.ps1
Ya están los 25 comandos.
Conclusiones
Se han listado comandos que pueden facilitar muchas tareas como administrador desde tareas como explorar en un directorio a un poco mas complicadas como habilitar una NIC con DHCP, es importante destacar que muchos de estos comandos solo funcionarán bajo la PowerShell de Windows Server 2008-2012 y R2 que ofrecen una mayor variedad de cmdlets. No es una lista de los mejores comandos solo son algunos que pueden usarse en tareas en general si tienes alguna sugerencia u otro comando interesante no dudes en dejarlo en los comentarios.