What follows is mostly command examples to illustrate things. Additional notes will be added sparingly. There is the PowershellISE. Powershell is CaseInsensitive but commonly things are in TitleCase like e.g. `Get-SmbShare` ```powershell Dir; ls; copy; cd; move; ren; mkdir; rmdir; del type # cat contents of file Dir | more dir > file.txt cd hkcu: # gets to HKEY_CURRENT_USER in registry new-psdrive -name flibble -psprovider filesystem -root c:\users new-psdrive -name hexvision -psprovider filesystem -root \\mymachine\myshare\subdir net use # can use external programs as expected $files = Get-ChildItem -Path C:\Windows -Filter "*.exe" $files # will dump variable to terminal $env:Path # environment variables Get-ChildItem # ls Set-Location # cd Move-Item # mv Rename-Item # mv Remove-Item # rm Copy-Item # cp Get-Content # cat New-Item # Mkdir Get-ChildItem -recurse Get-Service Get-Process Get-EventLog New-Service ``` ### Help ```powershell Get-Help Get-ChildItem -Online Get-Help New-SmbShare | More Get-Help *Move* Get-Help Get-EventLogd ``` ### Pipelines Powershell sends **objects** down pipelines whereas [bash](/aw/lang/bash) sends text/binary down pipelines. Both approaches have advantages and disadvantages. ```powershell Get-Process | Export-CSV procs.csv Compare-Object # diff Get-Process | Export-CliXML # diff Get-Process | Export-CliXML reference.xml Diff -reference (Import CliXML) -difference (Get-Process) -property Name Dir | Out-File DirectoryList.txt Dir # is the same as Dir | Out-Default Get-Service | ConvertTo-HTML Get-Service | ConvertTo-HTML | Out-File services.html Get-Process | Stop-Process # DON'T DO THIS Get-Process -name Notepad | Stop-Process # Stop all notepads ```