FAQ POWERSHELL EN ESPAÑOL

By | March 8, 2015

translated-spanish-v3


Concepto : Las preguntas más frecuentes sobre Powershell.

Puede utilizar esta lista de diferentes maneras :

  • Para copiar / pegar comandos en un script
  • Para ver rápidamente la sintaxis de un comando específico
  • Para mejorar su conocimiento técnico
  • Para descubrir nuevos comandos
  • Para preparar una entrevista de trabajo

Actualizado
07 de octubre de 2015
Autor powershell-guru.com
Fuente spanish.powershell-guru.com
Categorías
75
Preguntas
610


ACL
Active Directory
Alias
Arrays
Browsers
Certificates
Characters
CIM
Comments
COM Objects
Compare
Computer
Credentials
CSV
Culture
Date
Drives
Environment
Errors
Event Viewer
Files
Folders
Format Operator (-f)
Functions
GPO
GUI
Hardware
Hashtables
Help
History
Jobs
Keyboard
Loops
Math
Memory
Messages
Modules
Microsoft Excel
Microsoft Exchange
Microsoft Outlook
Microsoft SharePoint
Networking
Openfiles
Operators
Parameters
Password
Powershell ISE
Powershell v5
Printers
Processes
PSObject
Quest
Random
RDP
Regedit
Regex
Remote
Restore
Scheduled Tasks
Search
SCCM
Services
SMTP
Snapins
Sounds
Static .NET Methods
Strings
System
Try/Catch
Variables
Symantec Vault
Windows 2012
Windows Azure
Windows Forms
WMI
XML

System

¿Cómo determinar la versión de Powershell de mi equipo ?

¿Cómo ejecutar Powershell en otra versión para tener compatibilidad con versiones anteriores ?
powershell.exe -Version 2.0

¿Cómo requerir una versión mínima de Powershell (3.0 o superior) en un script de Powershell ?
#Requires -Version 3.0

¿Cómo requerir privilegios de administración en un script con Powershell ?

¿Cómo comprobar los parámetros de un script con Powershell ?
help -Name .\Get-ExchangeEnvironmentReport.ps1 -Full

¿Cómo obtener información sobre el usuario actual con Powershell ?
[Security.Principal.WindowsIdentity]::GetCurrent()

¿Cómo crear, editar y volver a cargar un perfil con Powershell ?

¿Cómo hacer una pausa de 5 segundos / minutos en un script con Powershell ?
Start-Sleep -Seconds 5
Start-Sleep -Seconds 300 # 5 minutes

¿Cómo obtener la hora del último inicio del sistema con Powershell ?
(Get-CimInstance -ClassName win32_operatingsystem).LastBootUpTime

¿Cómo obtener los aceleradores de tipo con Powershell ?

¿Cómo listar los programas de inicio con Powershell ?

¿Cómo desinstalar una aplicación con Powershell ?

¿Cómo hacer una captura de pantalla de todo el escritorio o de la ventana activa con Powershell ?
Take-ScreenShot -Screen -File 'C:\scripts\screenshot.png' -Imagetype JPEG
Repository : Take-ScreenShot

¿Cómo obtener el número de mensajes en colas MSMQ con Powershell ?

¿Cómo configurar la directiva de ejecución con Powershell ?

¿Cómo crear un acceso directo con Powershell ?

¿Cómo anclar o desanclar un programa de la barra de tareas con Powershell ?

¿Cómo abrir una ventana del Explorador de Windows con Powershell ?
[Diagnostics.Process]::Start('explorer.exe')
Invoke-Item -Path C:\Windows\explorer.exe

¿Cómo listar los controladores de dispositivo con Powershell ?
Get-WmiObject -Class Win32_PnPSignedDriver
Get-WindowsDriver -Online -All
driverquery.exe

¿Cómo crear un GUID con Powershell ?

¿Cómo obtener la ubicación del directorio temporal para el usuario actual con Powershell ?
[System.IO.Path]::GetTempPath()

¿Cómo combinar una ruta con una ruta secundaria para formar una sola con PowerShell?
Join-Path -Path C:\ -ChildPath \windows

¿Cómo listar todos los cmdlets “Get-*” con Powershell ?
Get-Command -Verb Get

¿Cómo listar las carpetas especiales del sistema con Powershell ?

¿Cómo montar archivos ISO / VHD con Powershell ?
Mount-DiskImage 'D:\ISO\file.iso' # ISO
Mount-DiskImage 'D:\VHD\file.vhd' # VHD

¿Cómo comprobar las versiones instaladas del Framework .NET con Powershell ?

¿Cómo comprobar si la versión 4.5 del Framework .NET está instalada con Powershell ?
(Get-ItemProperty -Path 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4\Full' -EA 0).Version -like '4.5*'

¿Cómo iniciar y detener una transcripción (para crear un registro de la sesión actual de PowerShell) con Powershell ?
Start-Transcript -Path 'C:\scripts\transcript.txt
Stop-Transcript

¿Cómo cambiar el directorio actual a una ubicación específica con Powershell ?
Set-Location -Path 'C:\scripts'

¿Cómo limpiar la pantalla con Powershell ?
Clear-Host
cls # Alias

¿Cómo cambiar la resolución de pantalla con Powershell ?
Set-DisplayResolution -Width 1280 -Height 1024 -Force # Windows 2012

¿Cómo poner la ventana en pantalla completa con Powershell ?
mode.com 300

¿Cómo obtener las dimensiones (ancho y alto) de una imagen con Powershell ?

¿Cómo obtener la clave de producto de Windows con Powershell ?

Perfmon

¿Cómo obtener el “% de Tiempo de Procesador” (promedio) en los últimos 5 segundos (10 muestreos) con Powershell ?
(Get-Counter '\Processor(_total)\% Processor Time' -SampleInterval 5 -MaxSamples 10).CounterSamples.CookedValue

Assemblies

¿Cómo cargar ensamblados con Powershell ?

¿Cómo comprobar los ensamblados .NET cargados actualmente con Powershell ?

¿Cómo encontrar la ruta del GAC (Global Assembly Cache) con Powershell ?

Clipboard

¿Cómo copiar los resultados al portapapeles con Powershell ?

¿Cómo obtener el contenido del portapapeles con Powershell ?
Add-Type -AssemblyName PresentationCore
[Windows.Clipboard]::GetText()

Hotfixes

¿Cómo obtener las revisiones instaladas con Powershell ?
Get-HotFix -ComputerName $computer

¿Cómo obtener las revisiones instaladas antes / después de una fecha específica con Powershell ?
Get-HotFix | Where-Object -FilterScript { $_.InstalledOn -lt ([DateTime]'01/01/2015') } # Before 01/01/2015
Get-HotFix | Where-Object -FilterScript {$_.InstalledOn -gt ([DateTime]'01/01/2015')} # After 01/01/2015

¿Cómo comprobar si una revisión está instalada con Powershell ?
Get-HotFix -Id KB2965142

¿Cómo obtener las revisiones instaladas en un equipo remoto con Powershell ?
Get-HotFix -ComputerName $computer

Pagefile

¿Cómo obtener información sobre el archivo de paginación (Pagefile.sys) con Powershell ?
Get-WmiObject -Class Win32_PageFileusage | Select-Object -Property Name, CurrentUsage, AllocatedBaseSize, PeakUsage, InstallDate

¿Cómo obtener el tamaño recomendado (MB) del archivo de paginación con Powershell ?
[Math]::Truncate(((Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory) / 1MB) * 1.5

¿Cómo crear un archivo de paginación (4096 MB) en la unidad D: con Powershell ?

¿Cómo eliminar un archivo de paginación en la unidad C: con Powershell ?

Maintenance

¿Cómo comprobar la fragmentación de una unidad con Powershell ?

¿Cómo comprobar el espacio en disco de las unidades con Powershell ?

Up


Files

¿Cómo abrir un archivo con Powershell ?
Invoke-Item -Path 'C:\scripts\file.txt'
.'C:\scripts\file.txt'

¿Cómo leer un archivo con Powershell ?
Get-Content -Path 'C:\scripts\file.txt'
gc "C:\scripts\file.txt" # Alias

¿Cómo escribir en un archivo con Powershell ?

¿Cómo obtener el nombre completo del archivo script actual con Powershell ?
$MyInvocation.MyCommand.Path

¿Cómo comprimir archivos con Powershell ?

¿Cómo descomprimir archivos con Powershell ?

¿Cómo ver los archivos que hay en un archivo ZIP con Powershell ?
Add-Type -AssemblyName 'System.IO.Compression.Filesystem'
[System.IO.Compression.ZipFile]::OpenRead($fileZIP)

¿Cómo visualizar el tamaño de un archivo en KB con Powershell ?
(Get-ChildItem -Path .\winsrv.dll).Length /1KB
(Get-ChildItem -Path .\winsrv.dll).Length /1MB
(Get-ChildItem -Path .\winsrv.dll).Length /1GB

¿Cómo encontrar archivos de más o de menos de 1 GB con Powershell ?

¿Cómo visualizar el nombre de un archivo sin su extensión con Powershell ?
[System.IO.Path]::GetFileNameWithoutExtension('C:\Windows\system32\calc.exe') # Return calc

¿Cómo mostrar la extensión de un archivo con Powershell ?
[System.IO.Path]::GetExtension('C:\scripts\file.txt') # Return .txt

¿Cómo obtener la versión de un archivo con Powershell ?

¿Cómo obtener el valor hash de un archivo con Powershell ?
(Get-FileHash $file).Hash

¿Cómo obtener la suma de verificación MD5 / SHA1 de un archivo con Powershell ?
Get-FileHash $file -Algorithm MD5
Get-FileHash $file -Algorithm SHA1

¿Cómo mostrar los archivos ocultos con Powershell ?

¿Cómo comprobar si un archivo tiene extensión con Powershell ?

¿Cómo establecer un archivo como de sólo lectura con Powershell ?
Set-ItemProperty -Path .\file.txt -Name IsReadOnly -Value $true

¿Cómo cambiar el atributo LastWriteTime (última modificación) de un archivo a la semana pasada con Powershell ?
Set-ItemProperty -Path .\file.txt -Name LastWriteTime -Value ((Get-Date).AddDays(-7))
If not working, use Nirsoft tool: BulkFileChanger.

¿Cómo crear un archivo nuevo con Powershell ?
New-Item -ItemType File -Path 'C:\scripts\file.txt' -Value 'FirstLine'

¿Cómo cambiar el nombre de un archivo con Powershell ?
Rename-Item -Path 'C:\scripts\file.txt' -NewName 'C:\scripts\powershellguru2.txt'

¿Cómo renombrar por lotes múltiples archivos con Powershell ?
Get-ChildItem -Path C:\scripts\txt | Rename-Item -NewName { $_.Name -replace ' ', '_' }

¿Cómo eliminar un archivo con Powershell ?
Remove-Item -Path 'C:\scripts\file.txt'

¿Cómo visualizar las 10 últimas líneas de un archivo con Powershell ?
Get-Content -Path 'C:\scripts\log.txt' -Tail 10

¿Cómo desbloquear varios archivos de una carpeta con Powershell ?
Get-ChildItem -Path 'C:\scripts\Modules' | Unblock-File

¿Cómo eliminar las líneas en blanco de un archivo con Powershell ?
(Get-Content -Path file.txt) | Where-Object -FilterScript {$_.Trim() -ne '' } | Set-Content -Path file.txt

¿Cómo comprobar si un archivo existe con Powershell ?

¿Cómo obtener el archivo más reciente / antiguo en una carpeta con Powershell ?

¿Cómo eliminar las líneas duplicadas de un archivo con Powershell ?

¿Cómo obtener los archivos creados hace más / menos de 1 mes en una carpeta con Powershell ?

¿Cómo obtener los archivos creados hace más / menos de 1 año en una carpeta con Powershell ?

¿Cómo exportar el valor de una variable a un archivo con Powershell ?
Set-Content -Path file.txt -Value $variable

¿Cómo encontrar el número de archivos (* .txt) en una carpeta con Powershell ?

¿Cómo buscar una cadena de caracteres dentro de varios archivos con Powershell ?
Select-String -Path 'C:\*.txt' -Pattern 'Test'

¿Cómo visualizar la primera / última línea de un archivo con Powershell ?

¿Cómo visualizar un número de línea específico de un archivo con Powershell ?

¿Cómo enconrar el número total de líneas de un archivo con Powershell ?

¿Cómo contar el número de caracteres y palabras de un archivo con Powershell ?

¿Cómo descargar un archivo con Powershell ?
Invoke-WebRequest -Uri 'http://www.nirsoft.net/utils/searchmyfiles.zip' -OutFile 'C:\tools\searchmyfiles.zip'

¿Cómo mostrar la ruta completa de un archivo con Powershell ?
Resolve-Path -Path .\script.ps1 # Return C:\Scripts\script.ps1

Copy

¿Cómo copiar un archivo a una carpeta con Powershell ?
Copy-Item -Path 'C:\source\file.txt' -Destination 'C:\destination'

¿Cómo copiar un archivo a varias carpetas en Powershell ?

¿Cómo copiar varios archivos a una carpeta en Powershell ?
Get-ChildItem -Path 'C:\source' -Filter *.txt | Copy-Item -Destination 'C:\destination'

Up


Active Directory

Domain & Forest

Computers

Groups

Organizational Unit (OU)

Users

Domain & Forest

¿Cómo encontrar los Servidores de Catálogo Global en Active Directory con Powershell ?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().GlobalCatalogs

¿Cómo encontrar sitios en Active Directory con Powershell ?
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites

¿Cómo encontrar el controlador de dominio actual con Powershell ?

¿Cómo encontrar todos los controladores de dominio dentro de un dominio en Active Directory con Powershell ?

¿Cómo encontrar los errores de replicación de AD con Powershell ?
Get-ADReplicationFailure dc02.domain.com # Windows 8 and 2012

¿Cómo encontrar el tiempo de vida de objeto de desecho para el bosque de Active Directory con Powershell ?

¿Cómo obtener detalles de un bosque / dominio en Active Directory con Powershell ?

¿Cómo obtener la ruta del contenedor de “Objetos Eliminados” de Active Directory con Powershell ?
(Get-ADDomain).DeletedObjectsContainer

¿Cómo habilitar la papelera de reciclaje de Active Directory con Powershell ?

¿Cómo restaurar una cuenta de la papelera de reciclaje de Active Directory con Powershell ?
Get-ADObject -Filter 'samaccountname -eq "powershellguru"' -IncludeDeletedObjects | Restore-ADObject

¿Cómo encontrar los roles FSMO con Powershell ?

¿Cómo conectarse a un controlador de dominio específico con Powershell ?
Get-ADUser -Identity $user -Server 'serverDC01'

¿Cómo obtener el servidor de inicio de sesión actual (logon server) con Powershell ?

¿Cómo ejecutar “gpupdate” en un equipo con Powershell ?
Invoke-GPUpdate -Computer $computer -Force -RandomDelayInMinutes 0 # Windows 2012

Groups

¿Cómo crear un grupo nuevo en Active Directory con Powershell ?

¿Cómo eliminar un grupo en Active Directory con Powershell ?
Remove-ADGroup -Identity 'PowershellGuru'

¿Cómo agregar un usuario a un grupo en Active Directory con Powershell ?
Add-ADGroupMember "Powershell Guru" -Members powershellguru

¿Cómo quitar a un usuario de un grupo en Active Directory con Powershell ?
Remove-ADGroupMember 'Powershell Guru' -Members powershellguru

¿Cómo encontrar grupos vacíos (sin miembros) en Active Directory con Powershell ?
Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}

¿Cómo encontrar el número de grupos vacíos (sin miembros) en Active Directory con Powershell ?
(Get-ADGroup -Filter * -Properties Members | Where-Object -FilterScript {-not $_.Members}).Count

¿Cómo obtener los miembros de un grupo en Active Directory con Powershell ?

¿Cómo obtener los miembros de un grupo con miembros recursivos en Active Directory con Powershell ?

¿Cómo encontrar el número de miembros de un grupo con / sin miembros recursivos en Active Directory con Powershell ?

Users

¿Cómo utilizar caracteres comodines en el filtro de “Get-ADUser” en Active Directory con Powershell ?

¿Cómo mover un usuario a otro Unidad Organizativa en Active Directory con Powershell ?
Move-ADObject -Identity $dn -TargetPath 'OU=myOU,DC=domain,DC=com'

¿Cómo obtener todos los grupos a los que pertenece un usuario (MemberOf anidado) con Powershell ?
Get-ADGroup -LDAPFilter "(member:1.2.840.113556.1.4.1941:=$($dn))"

¿Cómo obtener el atributo MemberOf (nombre corto / truncado) de un usuario con Powershell ?
(Get-ADUser -Identity $user -Properties MemberOf).MemberOf | ForEach-Object -Process {($_ -split ',')[0].Substring(3)} | Sort-Object

¿Cómo cambiar el Nombre (FullName), Nombre Mostrado (DisplayName), Nombre de Pila (GivenName) y Apellido (Surname) de una cuenta de usuario en Active Directory con Powershell ?

¿Cómo cambiar la Descripción, Oficina y (Telé)fono de una cuenta de usuario en Active Directory con Powershell ?
Set-ADUser $samAccountName -Description 'IT Consultant' -Office 'Building B' -OfficePhone '12345'

¿Cómo establecer la fecha de caducidad de una cuenta de usuario a “31/12/2015” o a “Nunca” en Active Directory con Powershell ?

¿Cómo desbloquear una cuenta de usuario en Active Directory con Powershell ?
Unlock-ADAccount $samAccountName

¿Cómo activar / desactivar una cuenta de usuario en Active Directory con Powershell ?

¿Cómo eliminar una cuenta de usuario en Active Directory con Powershell ?
Remove-ADUser $samAccountName

¿Cómo restablecer la contraseña de una cuenta de usuario en Active Directory con Powershell ?

¿Cómo restablecer la contraseña de varias cuentas de usuario (de forma masiva) en Active Directory con Powershell ?

¿Cómo encontrar al propietario de un archivo en Active Directory con Powershell ?

¿Cómo encontrar la UO (Unidad Organizativa) de un usuario en Active Directory con Powershell ?
[regex]::match("$((Get-ADUser -Identity $user -Properties DistinguishedName).DistinguishedName)",'(?=OU=)(.*\n?)').value

¿Cómo encontrar cuentas de usuario desactivadas en Active Directory con Powershell ?

¿Cómo encontrar cuentas de usuario caducadas en Active Directory con Powershell ?
Search-ADAccount -AccountExpired

¿Cómo encontrar cuentas de usuario bloqueadas en Active Directory con Powershell ?
Search-ADAccount -LockedOut

¿Cómo encontrar el SID (Identificador de Seguridad) de una cuenta de usuario en Active Directory con Powershell ?
(Get-ADUser -Identity $user -Properties SID).SID.Value

¿Cómo convertir un nombre de usuario a su correspondiente SID (Identificador de Seguridad) en Active Directory con Powershell ?

¿Cómo convertir un SID (Identificador de Seguridad) a su correspondiente nombre de usuario en Active Directory con Powershell ?

¿Cómo separar en partes (split) el Nombre Distinguido de una cuenta de usuario en Active Directory con Powershell ?

¿Cómo encontrar la fecha de creación / modificación de una cuenta de usuario en Active Directory con Powershell ?
Get-ADUser -Identity $user -Properties whenChanged, whenCreated | Format-List -Property whenChanged, whenCreated

¿Cómo mostrar las propiedades opcionales y obligatorias para la clase “Usuario” en Active Directory con Powershell ?

¿Cómo obtener la ruta LDAP de un usuario en Active Directory con Powershell ?

¿Cómo cambiar el Nombre Canónico (Canonical Name) de un usuario en Active Directory con Powershell ?
Rename-ADObject $((Get-ADUser -Identity $user -Properties DistinguishedName).DistinguishedName) -NewName 'Test Powershell'

¿Cómo obtener la Unidad Organizativa (OU) padre de un usuario en Active Directory con Powershell ?

¿Cómo obtener el propietario de un usuario (quién creó la cuenta) en Active Directory con Powershell ?

¿Cómo convertir el atributo pwdLastSet de un usuario en Active Directory con Powershell ?

Computers

¿Cómo comprobar el canal seguro entre el equipo local y el dominio con Powershell ?
Test-ComputerSecureChannel

¿Cómo reparar el canal seguro entre el equipo local y el dominio con Powershell ?
Test-ComputerSecureChannel -Repair

¿Cómo desactivar una cuenta de equipo en Active Directory con Powershell ?
Disable-ADAccount $computer

¿Cómo encontrar computaores con un Sistema Operativo específico en Active Directory con Powershell ?

Organizational Unit (OU)

¿Cómo crear una unidad organizativa (OU) en Active Directory con Powershell ?
New-ADOrganizationalUnit -Name 'TEST' -Path 'DC=domain,DC=com'

¿Cómo obtener detalles de la unidad organizativa (OU) en Active Directory con Powershell ?
Get-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -Properties *

¿Cómo cambiar la descripción de una unidad organizativa (OU) en Active Directory con Powershell ?
Set-ADOrganizationalUnit 'OU=TEST,DC=domain,DC=com' -Description 'My description'

¿Cómo activar / desactivar la protección contra eliminación accidental de una unidad organizativa (OU) en Active Directory con Powershell ?

¿Cómo habilitar la protección contra eliminación accidental de toda la unidad organizativa (OU) en Active Directory con Powershell ?

¿Cómo eliminar una unidad organizativa (OU) protegida contra eliminación accidental en Active Directory con Powershell ?

¿Cómo convertir el DistinguishedName de una Unidad Organizativa (OU) a CanonicalName en Active Directory con Powershell ?

¿Cómo listar las unidades organizativas (OU) vacías con Powershell ?

¿Cómo obtener el administrador de un grupo con Powershell ?
(Get-ADGroup $dn -Properties Managedby).Managedby

Up


Regex (Regular Expression)

¿Cómo extraer una dirección IP v4 (80.80.228.8) con Expresiones Regulares en Powershell ?
$example = 'The IP address is 80.80.228.8'
$ip = [regex]::match($example,'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b').value

¿Cómo extraer una dirección MAC (C0-D9-62-39-61-2D) con carácter separador “-” con Expresiones Regulares en Powershell ?
$example = 'The MAC address is C0-D9-62-39-61-2D'
$mac = [regex]::match($example,'([0-9A-F]{2}[-]){5}([0-9A-F]{2})').value

¿Cómo extraer una dirección MAC (C0:D9:62:39:61:2D) con carácter separador “:” con Expresiones Regulares en Powershell ?
$example = 'The MAC address is C0:D9:62:39:61:2D'
$mac = [regex]::match($example,'((\d|([a-f]|[A-F])){2}:){5}(\d|([a-f]|[A-F])){2}').value

¿Cómo extraer una fecha (02/10/2015) con Expresiones Regulares en Powershell ?
$example = 'The date is 10/02/2015'
$date = [regex]::match($example,'(\d{2}\/\d{2}\/\d{4})').value

¿Cómo extraer una URL (www.powershell-guru.com) con Expresiones Regulares en Powershell ?
$example = 'The URL is www.powershell-guru.com'
$url = [regex]::match($example,'[a-z]+[:.].*?(?=\s)').value

¿Cómo extraer un correo electrónico (user@domain.com) con Expresiones Regulares en Powershell ?
$example = 'The email is user@domain.com'
$email = [regex]::match($example,'(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b').value

¿Cómo extraer “guru” de la cadena de ejemplo con Expresiones Regulares en Powershell ?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?=.com)').value

¿Cómo extraer “guru.com” de la cadena de ejemplo con Expresiones Regulares en Powershell ?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=-)(.*\n?)(?<=.)').value

¿Cómo extraer “powershell-guru.com” de la cadena de ejemplo con Expresiones Regulares en Powershell ?
$example = 'www.powershell-guru.com'
[regex]::match($example,'(?<=www.)(.*\n?)').value

¿Cómo extraer “123” de la cadena de ejemplo con Expresiones Regulares en Powershell ?
$example = 'Powershell123'
[regex]::match($example,'(\d+)').value

¿Cómo extraer “$” (signo de dólar) de la cadena de ejemplo con Expresiones Regulares en Powershell ?
$example = 'Powershell`$123'
[regex]::match($example,'(\$)').value

¿Cómo reemplazar un carácter (* .com) por otro (* .fr) en una cadena con Expresiones Regulares en Powershell ?
$example = 'www.powershell-guru.com'
[regex]::Replace($example, '.com','.fr')

¿Cómo escapar una cadena con Expresiones Regulares en Powershell ?
[regex]::Escape('\\server\share')

Up


Memory

¿Cómo forzar al recolector de basura a hacer una recolección de memoria con Powershell ?
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

¿Cómo obtener el tamaño de la memoria RAM de un equipo con Powershell ?

Up


Date

¿Cómo obtener la fecha actual con Powershell ?
Get-Date
[Datetime]::Now

¿Cómo mostrar la fecha en diferentes formatos con Powershell ?

¿Cómo convertir una fecha (Datetime) a fecha (String) con Powershell ?

¿Cómo convertir una fecha (String) a fecha (Datetime) con Powershell ?

¿Cómo calcular la diferencia (número de días, horas, minutos o segundos) entre dos fechas con Powershell ?
(New-TimeSpan -Start $dateStart -End $dateEnd).Days
(New-TimeSpan -Start $dateStart -End $dateEnd).Hours
(New-TimeSpan -Start $dateStart -End $dateEnd).Minutes
(New-TimeSpan -Start $dateStart -End $dateEnd).Seconds

¿Cómo comparar dos fechas con Powershell ?
(Get-Date 2015-01-01) -lt (Get-Date 2015-01-30) # True
(Get-Date 2015-01-01) -gt (Get-Date 2015-01-30) # False

¿Cómo ordenar un array de fechas como DateTime con Powershell ?
$arrayDate | Sort-Object -Property {$_ -as [Datetime]}

¿Cómo iniciar y detener un cronómetro con Powershell ?
$chrono = [Diagnostics.Stopwatch]::StartNew()
$chrono.Stop()
$chrono

¿Cómo obtener el día de la semana actual con Powershell ?
(Get-Date).DayOfWeek #Sunday

¿Cómo obtener la fecha de ayer con Powershell ?
(Get-Date).AddDays(-1)

¿Cómo obtener el número de días de un mes (en febrero de 2015) con Powershell ?
[DateTime]::DaysInMonth(2015, 2)

¿Cómo saber si un año es bisiesto con Powershell ?
[DateTime]::IsLeapYear(2015)

¿Cómo listar zonas horarias con Powershell ?
[System.TimeZoneInfo]::GetSystemTimeZones()

Up


Networking

¿Cómo codificar (a formato ASCII) y decodificar una URL con Powershell ?

¿Cuáles son los comandos equivalentes a los comandos de red nativos en Powershell ?

¿Cómo obtener las direcciones IP con Powershell ?
Get-NetIPAddress # Windows 8.1 & Windows 2012
Get-NetIPConfiguration # Windows 8.1 & Windows 2012

¿Cómo deshabilitar las direcciones IP v6 (IPv6) con Powershell ?

¿Cómo validar una dirección IP v4 (IPv4) con Powershell ?
if([ipaddress]'10.0.0.1'){'validated'}

¿Cómo encontrar la dirección IP externa con Powershell ?

¿Cómo encontrar el nombre de host a partir de una dirección IP con Powershell ?
([System.Net.Dns]::GetHostEntry($IP)).Hostname

¿Cómo encontrar la dirección IP a partir de un nombre de host con Powershell ?
([System.Net.Dns]::GetHostAddresses($computer)).IPAddressToString

¿Cómo encontrar el nombre de dominio totalmente calificado (FQDN) a partir de un nombre de host con Powershell ?
[System.Net.Dns]::GetHostByName($computer).HostName

¿Cómo encontrar la configuración de red (IP, Subred, Puerta de Enlace y DNS) con Powershell ?

¿Cómo encontrar la dirección MAC con Powershell ?
Get-CimInstance win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress
Get-WmiObject -Class win32_networkadapterconfiguration | Select-Object -Property Description, Macaddress

¿Cómo hacer ping a un equipo con Powershell ?

¿Cómo comprobar si un equipo está conectado a Internet con Powershell ?

¿Cómo buscar un sitio web a través de whois con PowerShell?
$whois = New-WebServiceProxy 'http://www.webservicex.net/whois.asmx?WSDL'
$whois.GetWhoIs('powershell-guru.com')

¿Cómo obtener detalles de IP pública (Geolocalización) con Powershell ?

¿Cómo comprobar si un puerto está abierto / cerrado con Powershell ?
New-Object -TypeName Net.Sockets.TcpClient -ArgumentList $computer, 135

¿Cómo realizar tracert con Powershell ?
Test-NetConnection www.google.com -TraceRoute

¿Cómo corregir el perfil de conexión de red hogar con Powershell ?
Get-NetAdapter | Format-Table -Property Name, InterfaceDescription, ifIndex -AutoSize # Windows 8.1
Set-NetConnectionProfile -InterfaceIndex 6 -NetworkCategory Private

¿Cómo mostrar las conexiones de puerto TCP con Powershell ?
netstat.exe -ano
Get-NetTCPConnection #Windows 8 and 2012

¿Cómo transformar una URL larga a una corta (tiny URL) con Powershell ?
$url = 'www.powershell-guru.com'
$tiny = Invoke-RestMethod -Uri "http://tinyurl.com/api-create.php?url=$url"

¿Cómo obtener los ajustes de proxy con Powershell ?
Get-ItemProperty -Path HKCU:"Software\Microsoft\Windows\CurrentVersion\Internet Settings"

DNS

¿Cómo comprobar la caché DNS en el equipo local con Powershell ?
ipconfig.exe /displaydns
Get-DnsClientCache #Windows 8 and 2012

¿Cómo borrar la caché DNS en el equipo local con Powershell ?
ipconfig.exe /flushdns
Start-Process -FilePath ipconfig -ArgumentList /flushdns -WindowStyle Hidden
Clear-DnsClientCache #Windows 8 and 2012

¿Cómo borrar la caché DNS en equipos remotos con Powershell ?
Invoke-Command -ScriptBlock {Clear-DnsClientCache} -ComputerName computer01, computer02

¿Cómo leer el archivo de Hosts con Powershell ?
Get-Content -Path 'C:\Windows\system32\drivers\etc\hosts'

Up


Password

¿Cómo generar una contraseña aleatoria con Powershell ?
[Reflection.Assembly]::LoadWithPartialName('System.Web')
[System.Web.Security.Membership]::GeneratePassword(30,2)

¿Cómo cambiar la contraseña de administrador local de un servidor remoto con Powershell ?
$admin = [ADSI]('WinNT://server01/administrator,user')
$admin.SetPassword($password)
$admin.SetInfo()

¿Cómo encontrar la fecha de expiración de la contraseña de una cuenta en Active Directory con Powershell ?

Up


Printers

¿Cómo listar todas las impresoras de un servidor específico con Powershell ?
Get-WmiObject -Query 'Select * From Win32_Printer' -ComputerName $computer

¿Cómo listar todos los puertos de un servidor específico con Powershell ?
Get-WmiObject -Class Win32_TCPIPPrinterPort -Namespace 'root\CIMV2' -ComputerName $computer

¿Cómo cambiar el comentario / la ubicación de una impresora con Powershell ?

¿Cómo cancelar (purgar) todos los trabajos de impresión de una impresora con Powershell ?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.CancelAllJobs()

¿Cómo imprimir una página de prueba en una impresora con Powershell ?
$printer = Get-WmiObject -Class win32_printer -Filter "Name='HP Deskjet 2540 series'"
$printer.PrintTestPage()

¿Cómo obtener las colas de impresión de las impresoras con Powershell ?

Up


Regedit

Read

¿Cómo listar subárboles del registro con Powershell ?
Get-ChildItem -Path Registry::

¿Cómo obtener valores de registro y sus tipos de valor con Powershell ?

¿Cómo listar subclaves de una clave de registro con Powershell ?

¿Cómo listar subclaves de una clave de registro de manera recursiva con Powershell ?
Get-ChildItem -Path 'HKLM:\SYSTEM' -Recurse -ErrorAction SilentlyContinue

¿Cómo encontrar subclaves con un nombre específico con Powershell ?
Get-ChildItem -Path 'HKLM:\SOFTWARE' -Include *Plugin* -Recurse -ErrorAction SilentlyContinue

¿Cómo obtener sólo el nombre de las subclaves del registro con Powershell ?
(Get-ChildItem -Path 'HKLM:\SYSTEM').Name # Return HKEY_LOCAL_MACHINE\SYSTEM\ControlSet
Get-ChildItem -Path 'HKLM:\SYSTEM' -Name # Return ControlSet

¿Cómo listar valores del registro con Powershell ?
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'

¿Cómo leer un valor específico del registro con Powershell ?
(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ProductName

¿Cómo leer un valor específico del registro en un equipo remoto con Powershell ?

Write

¿Cómo crear una nueva clave del registro con Powershell ?
New-Item -Path 'HKCU:\Software\MyApplication'

¿Cómo crear un valor del registro con Powershell ?
New-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '1.0'

¿Cómo modificar un valor del registro existente con Powershell ?
Set-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version' -Value '2.0'

Delete

¿Cómo eliminar un valor del registro con Powershell ?
Remove-ItemProperty -Path 'HKCU:\Software\MyApplication' -Name 'Version'

¿Cómo eliminar un clave del registro con Powershell ?
Remove-Item -Path 'HKCU:\Software\MyApplication' -Force

Test

¿Cómo comprobar si existe una clave del registro con Powershell ?
Test-Path -Path 'HKCU:\Software\MyApplication'

¿Cómo comprobar si existe un valor del registro con Powershell ?
(Get-Item -Path 'HKCU:\Software\MyApplication').GetValueNames() -contains 'Version'

Up


Strings

¿Cómo eliminar caracteres de espacio en blanco al principio de una cadena de caracteres con Powershell ?
$string = ' PowershellGuru'
$string = $string.TrimStart()

¿Cómo eliminar caracteres de espacio en blanco al final de una cadena de caracteres con Powershell ?
$string = 'PowershellGuru '
$string = $string.TrimEnd()

¿Cómo eliminar caracteres de un espacio en blanco (al principio y al final) de una cadena de caracteres con Powershell ?
$string = ' PowershellGuru '
$string = $string.Trim()

¿Cómo convertir una cadena de caracteres a mayúsculas con Powershell ?
$string = 'powershellguru'
$string = $string.ToUpper()

¿Cómo convertir una cadena de caracteres a minúsculas con Powershell ?
$string = 'POWERSHELLGURU'
$string = $string.ToLower()

¿Cómo seleccionar la subcadena “Powershell” de la cadena “PowershellGuru” con Powershell ?
$string.Substring(0,10)

¿Cómo seleccionar la subcadena “Guru” de la cadena “PowershellGuru” con Powershell ?
$string.Substring(10)

¿Cómo seleccionar el número “123” de “Powershell123Guru” con Powershell ?
$string = 'Powershell123Guru'
[regex]::match($string,'(\d+)').value

¿Cómo obtener el índice de base cero de “Gurú” en la cadena “PowershellGuru” con Powershell ?
$string.IndexOf('Guru') # 10

¿Cómo comprobar si una cadena es nula o vacía con Powershell ?
$string = $null
$string = ''
[string]::IsNullOrEmpty($string)

¿Cómo comprobar si una cadena es nula, vacía, o contiene solamente caracteres de espacio en blanco con Powershell ?
$string = $null
$string = ''
$string = ' '
[string]::IsNullOrWhiteSpace($string)

¿Cómo comprobar si una cadena contiene una letra específica con Powershell ?
$string = 'PowershellGuru'
$string.Contains('s')
[regex]::match($string,'s').Success

¿Cómo obtener la longitud de una cadena de caracteres con Powershell ?
$string.Length

¿Cómo concatenar dos cadenas de caracteres con Powershell ?

¿Cómo hacer coincidir uno o varios corchetes “[ ]” en una cadena con Powershell ?
$string = '[PowershellGuru]'
$string -match '\[' # Only 1
$string -match '\[(.*)\]' # Several

¿Cómo hacer coincidir uno o varios paréntesis “( )” en una cadena con Powershell ?
$string = '(PowershellGuru)'
$string -match '\(' # Only 1
$string -match '\((.*)\)' # Several

¿Cómo hacer coincidir una o varias llaves “{ }” en una cadena con Powershell ?
$string = '{PowershellGuru}'
$string -match '\{' # Only 1
$string -match '\{(.*)\}' # Several

¿Cómo hacer coincidir uno o varios paréntesis angulares “< >” en una cadena con Powershell ?
$string = ''
$string -match '\<' # Only 1
$string -match "\<(.*)\>" # Several

¿Cómo hacer coincidir cualquier letra minúscula (abc) en una cadena con Powershell ?
$string = 'POWERSHELLGURU'
$string -cmatch "^[a-z]*$" #False

¿Cómo hacer coincidir cualquier letra mayúscula (ABC) en una cadena con Powershell ?
$string = 'powershellguru'
$string -cmatch "^[A-Z]*$" #False

¿Cómo hacer coincidir “[p” (p minúscula) en una cadena con Powershell ?
$string = '[powershellGuru]'
$string -cmatch '\[[a-z]\w+' #True

¿Cómo hacer coincidir “[P” (P mayúscula) en una cadena con Powershell ?
$string = '[PowershellGuru]'
$string -cmatch '\[[A-Z]\w+' #True

¿Cómo reemplazar una línea por otra con Powershell ?
$a = 'Line A'
$b = 'Line B'
$a = $a -replace $a, $b

¿Cómo convertir una operación de división a una cadena (Porcentaje) con Powershell ?
(1/2).ToString('P')

¿Cómo ordenar cadenas que contienen números con Powershell ?

¿Cómo seleccionar la última palabra de una frase con Powershell ?
$sentence = 'My name is Test Powershell'
$sentence.Split(' ')[-1] # Returns Powershell

¿Cómo obtener la palabra más larga de una frase con Powershell ?
$sentence = 'My name is Test Powershell'
$sentence.Split(' ') | Sort-Object -Property Length | Select-Object -Last 1 # Returns Powershell

¿Cómo encontrar el número de veces que una cadena está presente dentro de una frase con Powershell ?
$sentence = 'test test test Powershell'
[regex]::Matches($sentence, 'test').Count # Returns 3

¿Cómo copiar cada carácter de una cadena a un array de caracteres con Powershell ?

¿Cómo convertir la primera letra de una cadena en mayúsculas con Powershell ?

¿Cómo rellenar una cadena (a izquierda o derecha) con un carácter Powershell ?

¿Cómo codificar y decodificar una cadena de / a Base64 con Powershell ?

¿Cómo convertir un número a y desde binario con Powershell ?

¿Cómo obtener sólo la última carpeta padre de una ruta con Powershell ?

¿Cómo obtener sólo el último elemento de una ruta con Powershell ?

Up


Math

¿Cómo listar los métodos de la clase System.Math con Powershell ?
[System.Math] | Get-Member -Static -MemberType Method

¿Cómo obtener el valor absoluto con Powershell ?
[Math]::Abs(-12) #Returns 12
[Math]::Abs(-12.5) # Returns 12.5

¿Cómo obtener el ángulo cuyo seno es el número especificado con Powershell ?
[Math]::ASin(1) #Returns 1,5707963267949

¿Cómo redondear un número hacia arriba con Powershell ?
[Math]::Ceiling(1.4) #Returns 2
[Math]::Ceiling(1.9) #Returns 2

¿Cómo redondear un número hacia abajo con Powershell ?
[Math]::Floor(1.4) #Returns 1
[Math]::Floor(1.9) #Returns 1

¿Cómo obtener el logaritmo natural (base e) de un número específico con Powershell ?
[Math]::Log(4) #Returns 1,38629436111989

¿Cómo obtener el logaritmo en base 10 de un número específico con Powershell ?
[Math]::Log10(4) #Returns 0,602059991327962

¿Cómo obtener el máximo de dos valores con Powershell ?
[Math]::Max(2,4) #Returns 4
[Math]::Max(-2,-4) #Returns -2

¿Cómo obtener el mínimo de dos valores con Powershell ?
[Math]::Min(2,4) #Returns 2
[Math]::Max(-2,-4) #Returns -4

¿Cómo obtener un número elevado a la potencia especificada con Powershell ?
[Math]::Pow(2,4) #Returns 16

¿Cómo obtener un número decimal redondeado al entero más cercano con Powershell ?
[Math]::Round(3.111,2) #Returns 3,11
[Math]::Round(3.999,2) #Returns 4

¿Cómo obtener la parte entera de un número decimal especificado con Powershell ?
[Math]::Truncate(3.111) #Returns 3
[Math]::Truncate(3.999) #Returns 3

¿Cómo obtener la raíz cuadrada de un número especificado con Powershell ?
[Math]::Sqrt(16) #Returns 4

¿Cómo obtener la constante PI con Powershell ?
[Math]::Pi #Returns 3,14159265358979

¿Cómo obtener la base del logaritmo natural (constante e) con Powershell ?
[Math]::E #Returns 2,71828182845905

¿Cómo comprobar si un número es par o impar con Powershell ?
[bool]($number%2)

Up


Hashtables

¿Cómo crear una tabla hash vacía con Powershell ?
$hashtable = @{}
$hashtable = New-Object -TypeName System.Collections.Hashtable

¿Cómo crear una tabla hash con elementos con Powershell ?

¿Cómo crear una tabla hash ordenada por clave/nombre (diccionario ordenado) con elementos con Powershell ?

¿Cómo agregar elementos (par clave-valor) a una tabla hash con Powershell ?
$hashtable.Add('Key4', 'Value4')

¿Cómo obtener un valor específico de una tabla hash con Powershell ?

¿Cómo obtener el valor mínimo de una tabla hash con Powershell ?

¿Cómo obtener el valor máximo de una tabla hash con Powershell ?

¿Cómo modificar los elementos de una tabla hash con Powershell ?
$hashtable.Set_Item('Key1', 'Value1Updated')

¿Cómo eliminar elementos de una tabla hash con Powershell ?
$hashtable.Remove('Key1')

¿Cómo eliminar todos los elementos de una tabla hash con Powershell ?
$hashtable.Clear()

¿Cómo comprobar si una tabla hash contiene una clave o valor específico con Powershell ?
$hashtable.ContainsKey('Key3')
$hashtable.ContainsValue('Value3')

¿Cómo ordenar una tabla hash por clave / valor con Powershell ?
$hashtable.GetEnumerator() | Sort-Object -Property Name
$hashtable.GetEnumerator() | Sort-Object -Property Value -Descending

Up


Arrays

¿Cómo crear un array vacío con Powershell ?
$array = @()
$array = [System.Collections.ArrayList]@()

¿Cómo crear un array con elementos con Powershell ?
$array = @('A', 'B', 'C')
$array = 'A', 'B', 'C'
$array = 'a,b,c'.Split(',')
$array = .{$args} a b c
$array = echo a b c

¿Cómo agregar elementos a un array con Powershell ?
$array += 'D'
[void]$array.Add('D')

¿Cómo modificar un elemento de un array con Powershell ?
$array[0] = 'Z' # 1st item[0]

¿Cómo comprobar el tamaño de un array con Powershell ?
$array = 'A', 'B', 'C'
$array.Length # Returns 3

¿Cómo obtener uno, varios o todos los elementos de un array con Powershell ?
$array = @('A', 'B', 'C')
$array[0] # One item (A)
$array[0] + $array[2] # Several items (A,C)
$array # All items (A,B,C)

¿Cómo eliminar los elementos vacíos en un array con Powershell ?
$array = @('A', 'B', 'C', '')
$array = $array.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) | Sort-Object # A,B,C

¿Cómo comprobar si un elemento está presente en un array con Powershell ?
$array = @('A', 'B', 'C')
'A' | ForEach-Object -Process {$array.Contains($_)} # Returns True
'D' | ForEach-Object -Process {$array.Contains($_)} # Returns False

¿Cómo encontrar el índice de un elemento de un array con Powershell ?
$array = @('A', 'B', 'C')
[array]::IndexOf($array,'A') # Returns 0

¿Cómo invertir el orden de los elementos de un array con Powershell ?
$array = @('A', 'B', 'C')
[array]::Reverse($array) # C,B,A

¿Cómo generar un elemento aleatorio a partir de un array con Powershell ?
$array | Get-Random

¿Cómo ordenar un array por orden ascendente / descendente con Powershell ?
$array = @('A', 'B', 'C')
$array | Sort-Object # A,B,C
$array | Sort-Object -Descending