Your SlideShare is downloading. ×
  • Like
PowerShell crashcourse for Sharepoint admins
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

PowerShell crashcourse for Sharepoint admins

  • 545 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
545
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
12
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Windows PowerShellCrash Course forSharePoint Administrators
    Don JonesConcentrated Technology, LLChttp://concentratedtech.com
  • 2. This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like.
    For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site, www.ConcentratedTech.com.
    For links to newly-posted decks, follow us on Twitter:@concentrateddon or @concentratdgreg
    This work is copyright ©Concentrated Technology, LLC
  • 3. CAUTION: DEMOS AHEAD
    This is a demonstration-intensive session (very few slides)
    I will capture a shell transcript and save all of my scripts
    You can download these (in a week or so) from ConcentratedTech.com (there’s a “Conference Materials” link in the menu)
  • 4. Welcome to the Shell
    Why did Microsoft write PowerShell?
    Is this a replacement for Cmd.exe or VBScript?
    How much “scripting” do I need to learn?
    How long will PowerShell be around?
    What versions of Windows does it work with?
    What MS products are PowerShell-ed?
  • 5. Command Quiz
    Change directories
    Make a directory
    Get a list of files and folders
    Display contents of a text file
    Move a file
    Copy a file
    Delete a file
  • 6. Running Commands
    Run all the commands you’re used to, with almost exactly the same syntax (Ping, Ipconfig, etc)
    New “cmdlets” have a more consistent naming convention and more consistent parameters… but they’re just commands
    Use Help to read more; add –full or –examples for even more help; use wildcards to discover more commands and help topics
  • 7. One Set of Commands
    The file system is a hierarchical data store
    What other data stores does Windows use?
    Why not treat them as “disk drives” so that you can use the same set of commands?
  • 8. Extending the Shell
    PSSnapins (the old way)
    Get-PSSnapin –registered
    Add-PSSnapinname
    Get-Command –pssnapinname
    Modules (the new way)
    Get-Module –listavailable
    Import-Module name
    Get-Command –module name
    There’s only one shell – the “pre-made shells” are just pre-loading a snap-in or module for you
  • 9. Piping
    Just like Dir | More
    Export-, Out-, Format-, ConvertTo- are all useful verbs for piping
    Tip: Format- cmdlets go at the end of the pipeline. What they produce is only useful to Out-File, Out-Printer, Out-Host.
  • 10. Output
    Run Get-Process
    See the resulting table?
    The real table, in memory, is much bigger – PowerShell just doesn’t show it
    Pipe the table to Get-Member to see other available columns
    Or pipe it to Format-List * (since a list can hold more data than a table)
    You don’t have to pipe stuff to a file and then grep it; you can simply refer to columns by name
  • 11. More Piping
    Sorting: Sort-Object (or “Sort”)
    Filtering: Where-Object (or “Where”)
    Grouping: Group-Object (or “Group”)
    Measuring: Measure-Object (or “Measure”)
    Use Format- cmdlets to specify the columns (called “properties”) that you’d prefer to see
  • 12. Phys Ed
    Let’s see the pipeline work in real life.
    Volunteers needed. You may win a prize.
  • 13. How Pipeline input works
    Get-Service generates what type of table (ok, these are really “objects” and not a “table in memory,” but it’s all just words)
    Get-Service | Get-Member
    So when you runGet-Service | Stop-Servicehow does Stop-Service know what to do with what you piped in?
  • 14. Pipeline Input ByValue
    Look at the parameters of Stop-Service
    Do any of them accept pipeline input ByValue and accept the type of data being produced by Stop-Service?
  • 15. Now Consider This
    “BITS”,”w32time” | Stop-Service
    Those are strings“BITS” | Get-Member
    Does Stop-Service accept anything of the type String ByValue from the pipeline?
    This would work too:Get-Content names.txt | Stop-Service
    World this work?Get-Process | Stop-ServiceHmmm…
  • 16. Pipeline Input ByPropertyName
    If nothing will work ByValue, then the shell tries to match up input columns with parameter names ByPropertyName
    Let’s look atGet-Process | Get-Member
    Do any of those column names match up with parameter names of Stop-Service?
    Do the matching parameter names accept input from the pipeline ByPropertyName?
  • 17. Debugging Pipeline Input
    Trace-Command-Name PipelineBinding-PSHost-expression { Get-Process | Stop-Service }
  • 18. Fun trick!
    Import user info from a CSV and make new users out of them
  • 19. Workarounds
    What about when pipelining won’t work?
    Get-WmiObject-class Win32_BIOS-computername (type names.txt)
    Get-WmiObject-class Win32_BIOS-computername ( Get-ADComputer –filter * | Select –expand Name)
  • 20. Remote Control
    Requires PSH v2
    Run Enable-PSRemoting to enable(or via GPO) on machines that will accept incoming connections
    Communicates over HTTP(s); authenticates with Kerberos
    Help about_remote* for more help
  • 21. 1:1, 1:n Remoting
    Enter-PSSession –computernamexExit-PSSession
    Invoke-Command-scriptblock { command(s) }-computernamex,x,x,x
    Notes:
    PSComputerName property
    FilePath switch to do a whole script
  • 22. More Options
    -credential
    -port
    -useSSL
    Etc
    Or create a persistent session using New-PSSession.
    Get the sessions with Get-PSSessionInvoke-Command –scr { whatever }-session (Get-PSSession)
  • 23. Implicit Remoting
    Start a session (maybe save it in a $variable for ease of referring to it)
    Import a module in the remote session
    Import the remote session into the local shell – just the commands from that module, and add a noun prefix
    Execute remote commands as if they were local!
  • 24. WMI
    Get-WmiObject-class whatever (e.g., “Win32_XXX”)-computername x,y,z-EA SilentlyContinue (why?)-Filter ”something” (why?)
    Let’s play with that…
  • 25. Awesome Advanced Trick
    Format-Table can accept a special item called a hashtable or dictionary as a property in a property list
    The dictionary must contain two items
    N: The name of the column you want to create
    E: The value to go into the columnThis can even be an entirely new command!Use $_ to refer to whatever table row (object) is current
    Use to combine WMI info from two classes into a single output! Crazy syntax, but crazy useful!
  • 26. NOW… let’s do some Q&A
    I’ve got more demos to show you, but want to make sure I address your questions
    Ask ‘em now!
    The remainder of the session will be additional demos
    Remember: Transcript will be downloadable; no need to copy down the syntax
    Ask for a “reminder card” if you want to download this stuff next week.
  • 27. Final Notes…
    Please be sure to submit a session evaluation form!
    Download slides & materials from www.ConcentratedTech.com within one week!
    Blog, URLs, and other information is also available at www.ConcentratedTech.com for your reference
    More resources at www.ShellHub.com
    Thank you very much!
  • 28. Your Feedback is Important
    Please fill out a session evaluation form.
    Thank you!
  • 29. This slide deck was used in one of our many conference presentations. We hope you enjoy it, and invite you to use it within your own organization however you like.
    For more information on our company, including information on private classes and upcoming conference appearances, please visit our Web site, www.ConcentratedTech.com.
    For links to newly-posted decks, follow us on Twitter:@concentrateddon or @concentratdgreg
    This work is copyright ©Concentrated Technology, LLC