Presentation is loading. Please wait.

Presentation is loading. Please wait.

Basic.  PS is a command line interpreter/scripting environment  Designed for.Net  Similar to C#  Easy to instantiate.Net classes  Standardized syntax.

Similar presentations


Presentation on theme: "Basic.  PS is a command line interpreter/scripting environment  Designed for.Net  Similar to C#  Easy to instantiate.Net classes  Standardized syntax."— Presentation transcript:

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:

6

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()

14

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

19

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

24

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

30

31

32  get-service  new-service  restart-service  set-service  stop-service  start-service

33


Download ppt "Basic.  PS is a command line interpreter/scripting environment  Designed for.Net  Similar to C#  Easy to instantiate.Net classes  Standardized syntax."

Similar presentations


Ads by Google