Los Comandos mas Útiles en PowerShell – I

¿Como determinar mi versión de PowerShell?

host

 

¿Como hacer una pausa en un script?

Start-Sleep -Seconds 300 # Pausa de 5 minutos

Obtener la hora desde el ultimo inicio del computador

(Get-CimInstance -ClassName win32_operatingsystem).LastBootUpTime

Mostrar todos los programas que se cargan en el inicio de Windows

Get-WmiObject -Class Win32_StartupCommand | Sort-Object -Property Caption | Format-Table -Property Caption, Command, User -AutoSize

Como editar las políticas de ejecución de PowerShell

# Restricted - No se pueden ejecutar Scripts - PowerShell solo puede ser usado en modo interactivo.
Set-ExecutionPolicy -ExecutionPolicy Restricted

# AllSigned - Solo scripts firmados pueden ser ejecutados.
Set-ExecutionPolicy -ExecutionPolicy AllSigned

# RemoteSigned - Scritps descargados deben ser firmados por entidad certificada.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

# Unrestricted - Sin Restricciones - Todos los scripts pueden ejecutarse sin restricciones.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Crear accesos directos con Powershell

Vamos a crear un acceso directo al Notepad en el Escritorio de nuestro PC

$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.Createshortcut("$HOME\Desktop\Notepad.lnk")
$shortcut.TargetPath = 'c:\windows\notepad.exe'
$shortcut.Save()

Abrir el Explorador de Windows (Existen diversos métodos)

[Diagnostics.Process]::Start('explorer.exe')
Invoke-Item -Path C:\Windows\explorer.exe
ii c:\windows #Puedes indicar la ruta que quieres mostrar

Obtener la ruta del directorio temporal del usuario actual

[System.IO.Path]::GetTempPath()

Como montar un archivo ISO

Mount-DiskImage 'D:\ISO\file.iso' # ISO

Como cambiar el directorio actual a uno especifico

Set-Location -Path 'C:\nuevodirectorio'

Como limpiar la consola

Clear-Host
# Y también podemos usar un alias "cls"
cls

¿Como conocer la clave de Producto de Windows en PowerShell?

Debes utilizar PowerShell ISE introducir esta función

function Get-WindowsKey 
{
    ## function to retrieve the Windows Product Key from any PC
    ## by Jakob Bindslet ([email protected])
    param ($targets = '.')
    $hklm = 2147483650
    $regPath = 'Software\Microsoft\Windows NT\CurrentVersion'
    $regValue = 'DigitalProductId'
    Foreach ($target in $targets) 
    {
        $productKey = $null
        $win32os = $null
        $wmi = [WMIClass]"\\$target\root\default:stdRegProv"
        $data = $wmi.GetBinaryValue($hklm,$regPath,$regValue)
        $binArray = ($data.uValue)[52..66]
        $charsArray = 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9'
        ## decrypt base24 encoded binary data
        For ($i = 24; $i -ge 0; $i--) 
        {
            $k = 0
            For ($j = 14; $j -ge 0; $j--) 
            {
                $k = $k * 256 -bxor $binArray[$j]
                $binArray[$j] = [math]::truncate($k / 24)
                $k = $k % 24
            }
            $productKey = $charsArray[$k] + $productKey
            If (($i % 5 -eq 0) -and ($i -ne 0)) 
            {
                $productKey = '-' + $productKey
            }
        }
        $win32os = Get-WmiObject -Class Win32_OperatingSystem -ComputerName $target
        $obj = New-Object -TypeName Object
        $obj | Add-Member -MemberType Noteproperty -Name Computer -Value $target
        $obj | Add-Member -MemberType Noteproperty -Name Caption -Value $win32os.Caption
        $obj | Add-Member -MemberType Noteproperty -Name CSDVersion -Value $win32os.CSDVersion
        $obj | Add-Member -MemberType Noteproperty -Name OSArch -Value $win32os.OSArchitecture
        $obj | Add-Member -MemberType Noteproperty -Name BuildNumber -Value $win32os.BuildNumber
        $obj | Add-Member -MemberType Noteproperty -Name RegisteredTo -Value $win32os.RegisteredUser
        $obj | Add-Member -MemberType Noteproperty -Name ProductID -Value $win32os.SerialNumber
        $obj | Add-Member -MemberType Noteproperty -Name ProductKey -Value $productKey
        $obj
    }
}

Y dentro del mismo Script debes llamar la función

Get-WindowsKey

Comprobar el espacio en disco de las unidades

Get-WmiObject -Class Win32_logicaldisk | Format-Table -Property @{
    Name       = 'Unidad'
    Expression = {$_.DeviceID}
}, @{
    Name       = 'Tamaño Total (GB)'
    Expression = {[decimal]('{0:N0}' -f($_.Size/1gb))}
}, @{
    Name       = 'Disponible (GB)'
    Expression = {[decimal]('{0:N0}'-f($_.Freespace/1gb))}
}, @{
    Name       = 'Disponible (%)'
    Expression = {'{0,6:P0}' -f(($_.Freespace/1gb) / ($_.size/1gb))}
} -AutoSize

¿Como abrir un archivo en PowerShell?

Invoke-Item -Path 'C:\ruta\file.txt'
# Como método adicional puedes usar
.'C:\ruta\file.txt'

Encontrar todos los ficheros con determinado tamaño

# Archivos mayores a 1 GB
Get-ChildItem -Path C:\ -Recurse -ErrorVariable $errorsSearch | Where-Object -FilterScript {$_.Length -gt 1GB}

# Archivos inferiores a 1 GB
Get-ChildItem -Path C:\ -Recurse -ErrorVariable $errorsSearch | Where-Object -FilterScript {$_.Length -lt 1GB}

Como obtener el valor Hash de un archivo y los valores MD5 – SHA1

$file = 'C:\Windows\notepad.exe'
(Get-FileHash $file).Hash
Get-FileHash $file -Algorithm MD5
Get-FileHash $file -Algorithm SHA1

Crear un fichero nuevo con PowerShell

New-Item -ItemType File -Path 'C:\ruta\file.txt' -Value 'FirstLine'

Cambiar el nombre de un fichero en PowerShell

Rename-Item -Path 'C:\ruta\fichero.txt' -NewName 'C:\ruta\nuevonombre.txt'

Eliminar fichero con PowerShell

Remove-Item -Path 'C:\ruta\file.txt'

Como probar si un fichero en especifico existe

Test-Path -Path 'C:\Windows\notepad.exe' # Muestra True o False

Como obtener el archivo mas reciente/antiguo en una carpeta

Get-ChildItem | Sort-Object -Property CreationTime | Select-Object -Last 1 # Mas reciente
Get-ChildItem | Sort-Object -Property CreationTime | Select-Object -First 1 # Mas antiguo

Descargar ficheros con PowerShell

Invoke-WebRequest -Uri 'http://sitioweb.net/file.zip' -OutFile 'C:\ruta\file.zip

Copiar ficheros con PowerShell

Copy-Item -Path 'C:\ruta\file.txt' -Destination 'C:\destino'

Como obtener la fecha actual del sistema

Get-Date

Y en nuestra próxima publicación vamos a enseñarte mas comandos utiles en PowerShell recuerda que todos estos comandos aparte de utilizarlos directamente en la consola te sirven para crear tus scripts.

Deja tus Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ayúdanos compartiendo este post

No queremos interrumpir tu experiencia en nuestro site pero compartir es una buena forma de colaborar con el autor.
Cerrar
This window will automatically close in 60 seconds

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, haz clic en el enlace para mayor información.

ACEPTAR
Aviso de cookies