Download
basic n.
Skip this Video
Loading SlideShow in 5 Seconds..
Scripts PowerPoint Presentation

Scripts

146 Views Download Presentation
Download Presentation

Scripts

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Basic Scripts

  2. Basics • Powershell scripts are flat text files that end with “.ps1” (e.g. myscript.ps1) • Similar to other scripting languages, whatever you can do on a command line, you can place in the script.

  3. Invocation Rules • Unlike cmd.exe, the current folder is not automatically searched – it must be in your path or explicitly noted on the command line (eg .\myscript ) • If you double click on a Powershell script from Windows Explorer it will open up the script in notepad.exe by default. • You must explicitly set the execution policy…

  4. Execution Policy • Restricted– Only interactive commands will run at the console. • AllSigned– Scripts must have a certificate issued by a trusted party. • RemoteSigned– Scripts downloaded require a 3rd party certificate. Local scripts will run without a certificate. • Unrestricted - All scripts run without restriction.

  5. Setting Execution Policy • To set the privilege you must have administrator privileges.

  6. Create a Script • In your working folder enter the following command:

  7. Enter this into notepad param([int]$height, [decimal]$shoesize, [int]$weight) "Height: " + $height "Shoe: " + $shoesize "Weight: " + $weight if (($height * $shoesize) -gt $weight) { Write-Host "You are either tall or you have big feet." } else { #try to be politically correct here Write-Host "You have the perfect weight." }

  8. Breaking this down param([int]$height, [decimal]$shoesize, [int]$weight) "Height: " + $height "Shoe: " + $shoesize "Weight: " + $weight if (($height * $shoesize) -gt $weight) { Write-Host "You are either tall or you have big feet." } else { #try to be politically correct here Write-Host "You have the perfect weight." } Named parameter With strong typing Concatenation and Conversion Comment

  9. Processing on the Command Line #PSCount-Lines #Demonstration code begin { $lineCount = 0 } process { $lineCount++ } end { Write-Host "There are " $lineCount " lines." }

  10. Extending it further begin { $lineCount = 0 if ($args[0] -eq "-Double"){ $multiplier = 2 } else { $multiplier = 1 } } process { $lineCount++ } end { Write-Host "There are " ` ($multiplier * $lineCount) " lines." }

  11. Loop and Flow Control • If…. elseif… else… • Switch…… default • ForEach(Foreach-Object) • For • While • Do….. While • Do…..Until • Break & Continue

  12. Comparison Operators

  13. Logical Operators

  14. Code Example $processes = get-process if ($processes.Length -gt 50) { write-host "Processes are high: " + $processes.Length } $pnames = &{foreach ( $i in $processes ) {$i.Name}} if ($pnames -contains "notepad") { Write-host "Notepad is running." }

  15. String Operators

  16. Switch…… default Switch [-regex|-wildcard|-exact][-casesensitive] -file <filename> (< variable >) { < Pattern 1> { code1 } < Pattern 2> { code2 } < Pattern 3> { code3 } … Default { coden } }

  17. Transformation and Output

  18. Try this… function listLastEvent { param ([int] $lastLimit) Get-EventLog-Newest $lastLimit Security Get-EventLog-Newest $lastLimit System Get-EventLog-Newest $lastLimit Application } listLastEvent 3 | ` Select Username, Source, TimeGenerated, Message | ` ConvertTo-Html > /temp/myreport.html Invoke-Item /temp/myreport.html

  19. Return values • Functions can return values • $LastExitCode will capture the exit value of the last executable from the command line • $? – Similar to Unix but it holds either $true or $false to indicate success of the last call • $error – A collection of all the error messages so far ($error[0] is the most recent)

  20. One more snippet param ($filename = "/temp/nemo") dir $filename 2>$null if ($?) { Write-Host "That worked."} else {(Write-Host "Could not find: " $filename) }