Powershell: Difference between revisions
` |
|||
| Line 6: | Line 6: | ||
multi-line comments | multi-line comments | ||
#> | #> | ||
}} | |||
==== Multi-Line Commands ==== | |||
Similar to the {{code|\}} in bash, use the backtick to continue the command on the next line. | |||
{{highlight|lang=powershell|code= | |||
Do-Something ` | |||
-param1 value ` | |||
-param2 value | |||
}} | }} | ||
Revision as of 20:45, 17 April 2017
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