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