Ir atrás

Comandos básicos de powershell para la administración de ficheros, procesos, tareas y usuarios.

luishcr • 29 January, 2023

Portada del artículo
"TnVuY2EgcGFyZXMgZGUgYXByZW5kZXI="

Comandos básicos más usados (abrir Powershell en modo administrador).

  • Los cmdlets (commandlets) en PowerShell son comandos que realizan tareas específicas en el sistema operativo Windows y en otros sistemas. Se se componen de un verbo, que describe la acción que el cmdlet realiza. Por ejemplo, Get, Set, New, etc, y un sustantivo que identifica el objeto con el que se está trabajando. Por ejemplo, Item, Process, Service, etc.. Algunos cmdlets comunes en PowerShell incluyen "Get-ChildItem" para obtener una lista de archivos y carpetas en un directorio específico, "New-Item" para crear un archivo o carpeta, y "Restart-Computer" para reiniciar el equipo.
  • Un cmdlet en PowerShell también puede tener parámetros opcionales y obligatorios que se especifican en la línea de comando. Estos parámetros pueden proporcionar información adicional al cmdlet y permitirle realizar su tarea de manera más efectiva. Los parámetros se especifican utilizando la sintaxis "-NombreDelParametro ValorDelParametro". Por ejemplo, Get-ChildItem -Path C:\Users\NombreDeUsuario. A continuación vemos una lista de los cmdlets más comunes y su función.

 

  • Actualizar ayuda de cmdlets.
Update-Help

 

  • Buscar comando por verbo, nombre o filtrados.
Get-Command -Verb New
Get-Command -Noun LocalUser
Get-Command "*user*"

 

  • Obtener ayuda de un cmdlet con ejemplos.
Get-Help New-LocalUser -Examples

 

  • Imprimir módulos actuales.
Get-Module

 

  • Imprimir comandos de un determinado módulo.
Get-Command -Module Microsoft.PowerShell.Management

 

  • Listar módulos disponibles.
Get-Module -ListAvailable

 

  • Importar módulos.
Import-Module Bitlocker -Verbose

 

  • Quitar módulos.
Remove-Module Bitlocker

 

  • Imprimir adaptadores de red.
Get-NetAdapter

 

  • Imprimir fecha del sistema.
Get-Date

 

  • Borrar historial.
Clear-History

 

  • Imprimir Alias.
Get-Alias

 

  • Limpiar pantalla (cls).
Clear-Host

 

  • Imprimir ubicación actual (pwd).
Get-Location

 

  • Desplazarse (cd).
Set-Location :D\Downloads

 

  • Imprimir contenido (ls).
Get-ChildItem :D\Projects

 

  • Crear fichero (ni/md).
New-Item script.ps1

 

  • Borrar fichero (rm).
Remove-Item script.ps1

 

  • Mover fichero (mv).
Move-Item :D\Projects\scripts.ps1 D:\Scripts

 

  • Renombrar fichero (ren).
Rename-Item script.ps1 reverse_shell.ps1

 

  • Copiar ficheros (cp).
Copy-Item .\script.ps1 D:\lab

 

  • Imprimir contenido de fichero.
Get-Content fichero.txt

Ejecución de Scripts.

  • Mostrar políticas de ejecución de scripts.
Get-ExecutionPolicy -List

 

  • Restricted
Set-ExecutionPolicy Restricted

 

  • AllSigned
Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser

 

  • RemoteSigned
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

 

  • Unrestricted
Set-ExecutionPolicy Unrestricted

 

  • Undefined (remove the execution polocy)
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

 

  • Correr Script sin cambiar la política de ejecución
Unblock-File -Path .\Script.ps1
.\Script.ps1

 

  • Ejecución remota
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-ExecutionPolicy } | Set-ExecutionPolicy

 

Tuberías, filtros, redireccionamiento para visualizar procesos y tareas.

  • Contar el números de usuarios.
Get-LocalUser | Measure-Object

 

  • Listado de ficheros con peso > 10 MB orden descendiente.
Get-ChildItem -Recurse | Where-Object {$_.Length -gt 10Mb} | Sort-Object -Descending -Property Length

 

  • Filtrar conexiones de red establecidas con formato tabla.
Get-NetTCPConnection | Where-Object{$_.State -eq 'Established'} | ft -a

 

  • Redirección a fichero.
Get-NetFirewallProfile > security.txt

 

  • Filtrar procesos por uso de CPU mayor a 50% y listar de forma descendente.
Get-Process | where CPU -GT 50 | Sort-Object -Property CPU -Descending

 

  • Crear una tarea programada para apagar el sistema todos los dias a las 2:00 Horas.
$action = New-ScheduledTaskAction -Execute 'shutdown.exe'
$time = New-ScheduledTaskTrigger -At 2:00 -Daily
Register-ScheduledTask -Action $action -Trigger $time -TaskName "Autoapagado" -Description "Apagado automático diario 2:00 AM"

 

  • Mostrar, modificar y eliminar tareas programdas.
Get-ScheduledTask  
$time = New-ScheduledTaskTrigger -At 12:00 -Once
Set-ScheduledTask -TaskName "Autoapagado" -Trigger $time
Unregister-ScheduledTask -TaskName "Autoapagado" -Confirm:$false

 

Administración de cuentas de usuarios y grupos.

  • Obtener los cmdlets para trabajar con usuarios.
Get-Command –Module Microsoft.PowerShell.LocalAccounts

 

  • Imprimir usuarios locales.
Get-LocalUser 

 

  • Mostrar información detallada de una cuenta.
Get-LocalUser -Name nombreUsuario | fl *
Get-LocalUser | ft –AutoSize –Wrap

 

  • Imprimir grupos locales.
Get-LocalGroup

 

  • Crear nueva cuenta “Developer” sin password.
New-LocalUser -Name Developer -NoPassword

 

  • Crear nueva cuenta “Developer” con password encriptada.
$password = Read-Host -AsSecureString
New-LocalUser -Name Developer -Password $password

 

  • Establecer o modificar una propiedad: La contraseña nunca expira.
Set-LocalUser nombreUsuario -PasswordNeverExpires $true
Set-LocalUser nombreUsuario -Password (ConvertTo-SecureString "qwerty" -AsPlainText –Force)
Set-LocalUser nombreUsuario -FullName "Sr User“

 

  • Renombrar cuenta de usuario.
Rename-LocalUser nombreUsuario -NewName nuevoNombreUsuario

 

  • Activar/Deshabilitar/Eliminar cuentas de usuario.
Disable-LocalUser nombreUsuario
Enable-LocalUser nombreUsuario
Remove-LocalUser –Confirm nombreUsuario

 

  • Obtener información detallada de un grupo.
Get-LocalGroup nombreGrupo | fl *

 

  • Crear un grupo.
New-LocalGroup nombreGrupo

 

  • Establecer/modficar propiedades.
Set-LocalGroup -Description "Personal Oficina 2" nombreGrupo
Rename-LocalGroup nombreGrupo -NewName nuevoNombreGrupo
Remove-LocalGroup –Confirm nombreGrupo 

 

  • Obtener/agregar/modificar miembros de grupo.
Get-LocalGroupMember nombreGrupo 
Add-LocalGroupMember nombreGroup -Member usuario7
Remove-LocalGroupMember nombreGroup -Member usuario7
Ir atrás
Ir arriba