powershell
PowerShell is a shell for Windows operating systems, and it was ported to Linux in 2016.
https://github.com/PowerShell/PowerShell/
Profile.ps1
On startup, powershell will run any .ps1 files it finds in the WindowsPowerShell directory under my documents. There is allegedly a Profile.ps1 file in there by default.
$env:Path = "c:\Users\user1\Dropbox\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\"
Examples
Restart a remote computer
Restart-Computer remotehostname -Force
Find a command that matches a substring
get-command *time*
Get help on commands that match a substring
get-help *time*
Show ACLs of the current dir
get-acl | format-list
Show system BIOS information
Get-WmiObject -ComputerName hostname win32_bios
Show object methods
$foo | Get-Member
Browse the registry
Set-Location HKCU:\Software\Microsoft\Windows\
Get-ChildItem
Show top processes
while (1) { ps | sort -desc cpu | select -first 30; sleep -seconds 1; cls }
Browse the Cert store
Set-Location cert:\CurrentUser\
Get-ChildItem
Get a list of stopped services
Get-Service | Where-Object { $_.Status -eq "Stopped" }
Compare two objects
This will only show the lines that are not common:
Compare-Object $(Get-VIPrivilege -role admin) $(Get-VIPrivilege -role member)
Save object to a csv
Get-Process | Export-Csv -Encoding unicode processes.csv
Load object from a csv and parse it
Import-Csv ./processes.csv | Where-Object { $_.Name -like "*systemd*" } | Select-Object -last 10 | Format-Table
Replacement for unix tail
tail filename
Get-Content [filename] | Select-Object -Last 10
tail -f
Get-Content -Path "C:\scripts\test.txt" -Wait
Replacement for unix wc
Get-Content test.csv | Measure-Object -line -word -character
Replacement for unix time
Measure-Command { Sleep 5 }
Replacement for unix grep -B2 -A1
Get-Content test.csv | Select-String "searchstring" -Context 2,1 -CaseSensitive
Install PowerShell in Ubuntu 18.04
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb && \
dpkg -i packages-microsoft-prod.deb && \
apt-get update && \
apt-get install -y powershell
See Also
- http://poshcode.org/: Used to be a great PSH site with example code. Now it looks like it's just a chat network portal, which IMHO seems much less useful.
- https://developer.vmware.com/web/tool/12.5.0/vmware-powercli: PowerCLI: VMware PSH CLI