Powershell: Difference between revisions

From Leo's Notes
This page was last edited on 17 April 2017, at 20:41.
No edit summary
Line 44: Line 44:
}}
}}


==== Iterating ====
Use the {{code|ForEach}} statement:


{{highlight|lang=powershell|code=
foreach($item in $items) {
  # do things on $item
}
}}
Or if you're dealing with a list of objects, pipe to the {{code|ForEach-Object}}. Pass in any of:
* {{code|-process}} - Runs for each incoming object
* {{code|-begin}} - Runs before any object is processed
* {{code|-end}} - Runs after objects are processed
Eg:
{{highlight|lang=powershell|code=
ForEach-Object -process { $_.doSomething() }
}}


== Other Stuff ==
== Other Stuff ==

Revision as of 20:41, 17 April 2017

Quick Overview

Syntax

Comments

<#
multi-line comments
#>

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