Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Ownership of Microsoft· Scripting language designed especially for system administrators.
· Targeted for management and administration systems
· Object Oriented based pipelines
· Perform C #, WMI, XML, Active Directory and. NET
WORK ENVIRONMENT
console
• Lets you run PowerShell cmdlets
http://powershellpt.files.wordpress.com/2013/01/clip_image0044_thumb.jpg?w=244&h=84&h=84
Editors Scripts
· Allow execute PowerShell cmdlets
· Provide intellisense
· They add colors for easier reading of code
· Information about cmdlets available
· Examples: PowerGUI and PowerShell ISE (Native)
http://powershellpt.files.wordpress.com/2013/01/clip_image0064_thumb.jpg?w=244&h=132&h=132
Run external scripts
• The default policy has PowerShell Script Execution strict, not allowing any external script.
• We need to change the execution policy scripts
One. Open the console in administrator mode
2nd. Run the following command:
Set-ExecutionPolicy-ExecutionPolicy Unrestricted
*** ***Different types of policies
Restricted | Do not run any script allows external PowerShell. Default behavior is PowerShell. |
AllSigned | Only run scripts that contains a digital signature, whether internal or from the internet. |
RemoteSigned | Recommended. Scripts from the internet need to contain a digital signature. When not contain, asking if you really want to run the script from that user. |
Unrestricted | Does not require any authorization (digital signature) to run the script. |
Bypass | The responsibility for safety is totally up to the user. |
SYNTAX OF POWERSHELL
variables
Defined with the prefix $
example:
$ var1 = “Rui”
pipelines
• Allow use the output of an invocation in PowerShell (cmdlet, function) as input to another invocation.
• Greatest strength of PowerShell
• Simplify code
• Represented as “|”
• Allow access to the element that is in the pipe through command $ _
http://powershellpt.files.wordpress.com/2013/01/clip_image0094_thumb.png?w=244&h=49&h=49
Cmdlets (command-lets)
• Functions that encapsulate code
• Simple syntax, verb-name (Get-Process, Set-Partition, etc. ..)
• Ability to contain parameters
• Parameters defined prefix “-”, which may be positional ie after a specific position.
example:
http://powershellpt.files.wordpress.com/2013/01/clip_image0124_thumb.png?w=244&h=62&h=62 |
Alias Cmdlet
• Names simplified for faster writing a cmdlet.
• Example:
http://powershellpt.files.wordpress.com/2013/01/clip_image0174_thumb.png?w=244&h=54&h=54
Print to console
• Allows you to print a variable, return a cmdlet or function to the PowerShell console.
http://powershellpt.files.wordpress.com/2013/01/clip_image0194_thumb.jpg?w=244&h=40&h=40http://powershellpt.files.wordpress.com/2013/01/clip_image0214_thumb.jpg?w=244&h=42&h=42
Read console
• Allows you to read a value from the PowerShell console.
http://powershellpt.files.wordpress.com/2013/01/clip_image0234_thumb.jpg?w=244&h=37&h=37
get Help
• Cmdlet which gives help on the commands and their respective parameters.
• Write in the console followed by the Get-Help command
example:
http://powershellpt.files.wordpress.com/2013/01/clip_image0254_thumb.jpg?w=244&h=33&h=33
Comparison operators
Operator | PowerShell |
equals | -eq |
diferent | -ne |
greater than | -gt |
lower than | -lt |
greater than equal | -ge |
less than equaligual | -le |
Compare with wilcards | -like ou -notlike |
compare string withregex | -match ou -notmatch |
If array has value (or string) | -contains |
Logical operators
Operator | PowerShell |
and | -and |
or | -or |
exclusive or | -xor |
not | ! -nor |
http://powershellpt.files.wordpress.com/2013/01/clip_image0274_thumb.jpg?w=188&h=244&h=244 |
Booleans
Arrays e Hashmaps
http://powershellpt.files.wordpress.com/2013/01/image_thumb.png?w=644&h=72&h=72
http://powershellpt.files.wordpress.com/2013/01/clip_image0334_thumb.jpg?w=244&h=79&h=79
|
If-then-else
logical routine that allows you to create a scenario with two possible executions due to the validation of a condition.
example:
http://powershellpt.files.wordpress.com/2013/01/clip_image0364_thumb.jpg?w=244&h=159&h=159
foreach
logical routine that lets you scroll through all objects stored in a variable with one or more dimensions
example:
http://powershellpt.files.wordpress.com/2013/01/clip_image0384_thumb.jpg?w=244&h=92&h=92
foreach a pipeline
logic that allows traverse all objects stored in a variable in one or more dimensions passed into a pipeline
example:
NOTE: This cmdlet has an alias often used “%” ie we can replace the foreach by%http://powershellpt.files.wordpress.com/2013/01/clip_image0404_thumb.jpg?w=244&h=92&h=92
REUSE OF CODE
functions
• encapsulate code
• Create custom cmdlets
• Ability to contain parameters
http://powershellpt.files.wordpress.com/2013/01/clip_image0424_thumb.jpg?w=244&h=63&h=63
Saving a Script
• Easy to edit scripts
�� Enable reuse scripts
• Extension. ps1
• Allow import of scripts for later reuse functions
http://powershellpt.files.wordpress.com/2013/01/clip_image0444_thumb.jpg?w=86&h=80&h=80http://powershellpt.files.wordpress.com/2013/01/clip_image0454_thumb.png?w=68&h=71&h=71http://powershellpt.files.wordpress.com/2013/01/clip_image0474_thumb.jpg?w=244&h=64&h=64
Reuse a script
- Import the script that has the function you want to use
- Use it as any other cmdlet
• Allow you to reuse code
http://powershellpt.files.wordpress.com/2013/01/clip_image0494_thumb.jpg?w=244&h=40&h=40
Chamar função .net
• Add the DLL namespace between square brackets
• At C++ style, just add :: followed by the function you want to call
Example:
http://powershellpt.files.wordpress.com/2013/01/clip_image0514_thumb.jpg?w=244&h=38&h=38http://powershellpt.files.wordpress.com/2013/01/clip_image0534_thumb.jpg?w=244&h=29&h=29
More Info
• http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx
• http://technet.microsoft.com/pt-br/library/bb978526.aspx
• http://technet.microsoft.com/pt-br/library/dd367858(v=WS.10).aspx
• http://www.windowsitpro.com/topics/powershell-scripting/don-jones-on-powershell
See Also
Aboute me
http://powershellpt.files.wordpress.com/2013/01/clip_image0554_thumb.jpg?w=113&h=113&h=113
Rui Pedro Machado
Graduation in Technologies and Information Systems
Post Graduation in Business Intelligence
Software Engineer at DevScope (www.devscope.net)
Blog: http://rpmachado.wordpress.com
Facebook: http://facebook.com/ruimachado89
Linkedin: http://www.linkedin.com/in/rpmachado