Powershell

From Leo's Notes
Revision as of 20:45, 17 April 2017 by Leo (talk | contribs) (`)
This page was last edited on 17 April 2017, at 20:45.

Quick Overview

Syntax

Comments

<#
multi-line comments
#>

Multi-Line Commands

Similar to the \ in bash, use the backtick to continue the command on the next line.

Do-Something `
  -param1 value `
  -param2 value

Data Containers

These are things in powershell that can contain data values or other objects.

Objects
$a = New-Object –TypeNamePSObject
$a

Arrays

$a = @()
$a += "Item"

Hash Tables (aka. a Dictionary)

$a = @{}
$a.Add("Key", "Value");

Parameters

param (
 ??
)

Common Tasks

Filtering

Pipe to Where-Object and provide the matching condition.

Where-Object {$_.RecordData.IPv4Address -like "172.20.1.*" }

Iterating

Use the ForEach statement:

foreach($item in $items) {
  # do things on $item
}

Or if you're dealing with a list of objects, pipe to the ForEach-Object. Pass in any of:

  • -process - Runs for each incoming object
  • -begin - Runs before any object is processed
  • -end - Runs after objects are processed

Eg:

ForEach-Object -process { $_.doSomething() }

Other Stuff

Get machine UIUD

get-wmiobject Win32_ComputerSystemProduct  | Select-Object -ExpandProperty UUID


Troubleshooting

Error: "File cannot be loaded because the execution of scripts is disabled on this system"

To allow untrusted script execution, open a powershell instance (same arch as what you're trying to run the script as. ie: 64bit/32bit) as Administrator and run:

PS> set-executionpolicy unrestricted

You should now be able to see:

PS> get-executionpolicy
Unrestricted