Download presentation
Presentation is loading. Please wait.
1
Basic
2
PS is a command line interpreter/scripting environment Designed for.Net Similar to C# Easy to instantiate.Net classes Standardized syntax PS is object based – not text based This includes pipeline processing Reduces need for reading process to parse data V1.0 does not naturally support remote execution.
3
Start->Programs->Windows Powershell->Windows Powershell
4
Expressions Cmdlet PowerShell Functions PowerShell Scripts Native Windows Commands - Also - Supports direct interpolation
5
Let’s start by looking at the environment PS Drives give you access to resources in a consistent manner – similar to Unix’s approach to files and devices PS Drives provide access to folders/files, the registry, existing functions and variables etc Enter the following at the command line:
7
Enter the following lines at the command prompt and observe the behavior: #Key in this line and the rest below 54 (54 * 3 ) – 2 "Patrick is " + 54 Get-Date
8
() {} - Grouping ++, -- Increment, decrement, respectively +, - Unary operator * or *= Multiplication. / or /= Division. % or %= Modulus + or += Addition. - or -= Subtraction. = Assigns a value to a variable Standard rules of precedence apply.
9
In.Net everything is an object.
10
TypeDescription [int]32-bit signed integer [long]64-bit signed integer [string]Fixed-length string of Unicode characters [char]A Unicode 16-bit character [byte]An 8-bit unsigned character [bool]Boolean True/False value [decimal]An 128-bit decimal value [single]Single-precision 32-bit floating point number [double]Double-precision 64-bit floating point number [xml]Xml object [array]An array of values [hashtable]Hashtable object
11
129 + "1" "1" + 129 [int]"0129" + 1 [datetime]"10/20/2009" "We are meeting on " + get-date "We are meeting on " + (get-date)
12
Let’s explore this by entering the following (120).GetType() "Patrick Bailey".GetType() "Patrick Bailey".ToUpper() “Pat has " + "Pat".Length + " letters." (Get-Date).AddYears(-5)
13
$a = 123.45 $a.GetType() $b = "Patrick" $b.GetType()
15
$a = 1,2,3,4,7,"How do you do", 9,(Get-Date) $a $a[2] $a[3..6] $a[-1]
16
$list = @{"St Paul" = [datetime]"10/20/2009"; ` "Minneapolis" = [datetime]"11/17/2009"} $list $list["St Paul"] Line continuation
17
Cmdlets are instances of.NET Framework classes; they are not stand-alone executables. Cmdlets do not generally do their own parsing, error presentation, or output formatting. Parsing, error presentation, and output formatting are handled by the Windows PowerShell runtime. Cmdlets process input objects from the pipeline rather than from streams of text, and cmdlets typically deliver objects as output to the pipeline. Cmdlets are record-oriented because they process a single object at a time. http://msdn.microsoft.com/en-us/library/ms714395%28VS.85%29.aspx
18
131 Cmdlets in v1.0, 237+ in V2.0 verb-noun naming (e.g. get-childitem) Elements of a command : command -parameter1 -parameter2 arg1 arg2 Command Name Switch Parameter Parameter with argument Positional Argument Ref: http://technet.microsoft.com/en-us/library/dd315315.aspxhttp://technet.microsoft.com/en-us/library/dd315315.aspx
20
Enter each of these and observe Get-Command Get-Command -Verb Set notepad Get-Process Get-Process notepad Get-Service -Name *sql* Ref: http://technet.microsoft.com/en-us/library/dd315315.aspxhttp://technet.microsoft.com/en-us/library/dd315315.aspx
21
-ErrorAction Behavior when an error occurs. Values include SilentlyContinue, Continue (defualt), Stop -Confirm Before execution the command will ask user for continuation option. Mostly available with commands that alter resources. -ErrorVariable Variable to assign error object to. -WhatIf Describes the action that would be taken – does not execute command
22
Set-Content demofile.txt "Hello`nThis is the second line." –Confirm Get-Content demofile.txt -OutVariable txtContent $txtContent Remove-Item demofile.txt –WhatIf Remove-Item demofile.txt Remove-Item demofile.txt #yes this repeats it Remove-Item demofile.txt -ErrorAction SilentlyContinue
23
Most cmdlets, as you have seen, produce objects for their output. Literal values do the same. Get-Member provides a listing of the public members of those objects By default it displays public instance members
25
Similar to traditional scripting languages BUT it “pipes” objects – specifically.Net objects Access to data is through methods and properties – not string parsing* *Of course, any property of type string has the expected set of methods for returning modifications of the string.
26
"Pat winks" | Get-Member Get-Process | Get-Member [Int32] | Get-Member [Int32] | Get-Member –Static [Int32]::MaxValue
27
“It’s not rude to point” notepad;notepad $plist = Get-Process notepad $p1 = $plist[0] $p1 | Get-Member $p1.HasExited Stop-Process -Id $p1.Id $p1.HasExited
28
notepad;notepad;notepad Get-Process | Where-Object { $_.Name -eq "notepad" } Get-Process | Select-Object Handles, Id, ProcessName Get-Process -Name notepad | ForEach-Object { Stop-Process $_.Id }
29
Script blocks – think of them as anonymous methods or short inline scripts $_ is similar to Perl’s use as the current value in process
32
get-service new-service restart-service set-service stop-service start-service
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.