├── 2017-06-powershell ├── PowerShell2017.pptx ├── WindowsAtWayfair.pptx └── README.md ├── 2017-03-ews └── README.md ├── 2017-07-dba └── README.md ├── 2018-04-pester └── README.md ├── 2017-09-cubes └── README.md ├── 2018-03-plaster └── README.md ├── 2018-02-neo4j └── README.md ├── 2016-08-classes └── README.md ├── 2016-11-dsc-infra └── README.md ├── 2017-02-security └── README.md ├── 2017-08-tdd └── README.md ├── 2016-12-winter-special └── README.md ├── 2016-07-oneget ├── 2-gallery-extras.ps1 ├── 0-gallery.ps1 ├── README.md └── 1-gallery-community.ps1 ├── LICENSE ├── 2017-01-octopus └── README.md ├── 2016-09-oss-xplat-ps └── README.md └── README.md /2017-06-powershell/PowerShell2017.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BosPSUG/PresentationMaterials/HEAD/2017-06-powershell/PowerShell2017.pptx -------------------------------------------------------------------------------- /2017-06-powershell/WindowsAtWayfair.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BosPSUG/PresentationMaterials/HEAD/2017-06-powershell/WindowsAtWayfair.pptx -------------------------------------------------------------------------------- /2017-03-ews/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG March 2017 Meetup 2 | 3 | * **Topic**: Powershell In A Unified Communications World 4 | * **Presenter**: [Steve Parankewich](https://twitter.com/powershellblog) 5 | 6 | ## Materials 7 | 8 | -------------------------------------------------------------------------------- /2017-07-dba/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG July 2017 Meetup 2 | 3 | * **Topic**: PowerShell for the occasional DBA 4 | * **Presenter**: [Warren Estes](https://twitter.com/warren2600) 5 | 6 | ## Materials 7 | 8 | * [Video](https://www.youtube.com/watch?v=Ztn1zsWScuc) -------------------------------------------------------------------------------- /2018-04-pester/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG April 2018 Meetup 2 | 3 | * **Topic**: Pesterize Your Code!! 4 | * **Presenter**: [Jim Arruda](https://twitter.com/JimRockarruda) 5 | 6 | ## Materials 7 | 8 | * [Repo](https://github.com/rockarruda/PesterSummitSession) 9 | * [Recording](https://www.youtube.com/watch?v=WIX0wUZaL0c) (from summit) 10 | -------------------------------------------------------------------------------- /2017-09-cubes/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG September 2017 Meetup 2 | 3 | * **Topic**: PowerShell Cubed: Backing up and Restoring Analysis Services Cubes with PowerShell 4 | * **Presenter**: [Matthew Anderson](https://twitter.com/matholamew) 5 | 6 | ## Materials 7 | 8 | * [SQL Saturday Materials](http://www.sqlsaturday.com/694/Sessions/Details.aspx?sid=68618) -------------------------------------------------------------------------------- /2018-03-plaster/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG March 2018 Meetup 2 | 3 | * **Topic**: Creating PowerShell Projects and more with Plaster 4 | * **Presenter**: [Rob Pleau](https://twitter.com/rjpleau) 5 | 6 | ## Materials 7 | 8 | * [Repo](https://github.com/ephos/PSSummit2018-Plaster) 9 | * [Recording](https://www.youtube.com/watch?v=3cjB9-84Xgw) (from summit) 10 | -------------------------------------------------------------------------------- /2018-02-neo4j/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG February 2018 Meetup 2 | 3 | * **Topic**: Connecting the Dots: Neo4j and PowerShell 4 | * **Presenter**: [Warren Frame](https://twitter.com/psCookieMonster) 5 | 6 | ## Materials 7 | 8 | * [Slides](https://schd.ws/hosted_files/powershelldevopsglobalsummit2018/a8/dots.pptx) 9 | * [PSNeo4j repo](https://github.com/RamblingCookieMonster/PSNeo4j) 10 | * [Dots repo](https://github.com/RamblingCookieMonster/Dots) 11 | * [Recording](https://www.youtube.com/watch?v=5SVRCkUtKJU&t=10s) (from summit) 12 | -------------------------------------------------------------------------------- /2017-06-powershell/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG June 2017 Meetup 2 | 3 | * **Topic**: 4 | * Windows Continuous Deployment Pipelines at Enterprise Scale 5 | * PowerShell: Where we are and where we are going 6 | * Open QA 7 | 8 | * **Presenter**: 9 | * [Jeffrey Snover](https://twitter.com/jsnover) 10 | * Jeff Dillon 11 | 12 | ## Materials 13 | 14 | ### PowerShell: Where we are and where we are going 15 | 16 | * [Recording](https://youtu.be/vRsH-RZoPL4) 17 | * [Jeffrey's Slides](PowerShell2017.pptx) 18 | * [Jeff's Slides](WindowsAtWayfair.pptx) 19 | -------------------------------------------------------------------------------- /2016-08-classes/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG August 2016 Meetup 2 | 3 | * **Topic**: A Class of Wine 4 | * **Presenter**: [June Blender](https://twitter.com/juneb_get_help) 5 | 6 | ## Materials 7 | 8 | * [Sapien 'Classes in PowerShell' Posts](https://www.sapien.com/blog/topics/classes-in-powershell-5-0/) 9 | * [June's Class of Wine GitHub Repo](https://github.com/juneb/ClassOfWine) 10 | * [Class of Wine slides](https://github.com/juneb/ClassOfWine/blob/master/ClassOfWineLab.pptx.zip?raw=true) 11 | * [June's GitHub Account](https://github.com/juneb) 12 | * [A Class of Wine session](https://www.youtube.com/watch?v=gkwyhUc-xRQ) - Somewhat dated compared to material we saw 13 | -------------------------------------------------------------------------------- /2016-11-dsc-infra/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG November 2016 Meetup 2 | 3 | * **Topic**: 4 | * DSC at Wayfair 5 | * Managing the Infrastructure Stack with PowerShell 6 | * **Presenter**: 7 | * Jeff Dillon 8 | * [Josh Atwell](https://twitter.com/Josh_Atwell) 9 | 10 | ## Materials 11 | 12 | ### DSC at Wayfair 13 | 14 | * [Jeff's Slides](https://drive.google.com/open?id=0B1om1PyAB9qrYUNmN0xvRFRHSlJDNXVnMnVmZi0tQk5FbnBR) 15 | 16 | ### Managing the Infrastructure Stack with PowerShell 17 | 18 | * [Josh's Slides](http://www.slideshare.net/JoshAtwell/managing-the-infrastructure-stack-with-powershell) 19 | * [PowerShell Summit recording: Managing the Infrastructure Stack](https://www.youtube.com/watch?v=C_kruZBNnQc) -------------------------------------------------------------------------------- /2017-02-security/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG February 2017 Meetup 2 | 3 | * **Topic**: AD Security Discussion 4 | * **Presenter**: [Sean Metcalf](https://twitter.com/PyroTek3) 5 | 6 | ## Materials 7 | 8 | This was more of a discussion, with a kerberoasting bit in the middle. It's been a while, but I vaguely recall the following coming up: 9 | 10 | * [Detecting Kerberoasting](https://adsecurity.org/?p=3458) (See closing for list of kerberoasting references) 11 | * [Detecting Kerberoasting with honeypot accounts](https://adsecurity.org/?p=3513) 12 | * [Quintessential AD Security bit](https://adsecurity.org/?p=1684) 13 | * [Australian Department of Defense on securing PowerShell](https://www.asd.gov.au/publications/protect/securing-powershell.htm) - great ammo for justifying updating PowerShell 14 | -------------------------------------------------------------------------------- /2017-08-tdd/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG August 2017 Meetup 2 | 3 | * **Topic**: Configuration management with Chef, Kitchen, PowerShell, and DSC 4 | * **Presenter**: [Robb Schiefer](https://twitter.com/chief7) 5 | 6 | ## Materials 7 | 8 | * [BosPSUG Slides](https://docs.google.com/presentation/d/1m5fs8GaZ7WsZb3kI-X8FobYe1H1tnjDlD4kzjc7HacU/edit?usp=sharing) 9 | * [Robb's Slides](https://www.slideshare.net/RobbSchieferJr/tdd-with-chef-dsc-and-pester-2026) 10 | * [Video](http://youtu.be/9RK-QBhzte8) 11 | * Other references on Test-Kitchen that have come in handy: 12 | * [Introduction to Kitchen-DSC](https://gaelcolas.com/2016/07/11/introduction-to-kitchen-dsc/) 13 | * [Getting Local: Working on Community Projects with Test-Kitchen](https://stevenmurawski.com/powershell/2017/05/local-kitchen/) 14 | -------------------------------------------------------------------------------- /2016-12-winter-special/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG December 2016 Meetup 2 | 3 | * **Topic**: 4 | * The Devopsification of Windows Server 2016 5 | * Release Pipelines 6 | * Open QA 7 | 8 | * **Presenter**: 9 | * [Jeffrey Snover](https://twitter.com/jsnover) 10 | * [Michael Greene](https://twitter.com/migreene) 11 | 12 | ## Materials 13 | 14 | ### The Devopsification of Windows Server 2016 15 | 16 | * [Recording](https://www.facebook.com/wayfairatwork/videos/662299163949753/) 17 | * [Slides](https://github.com/mgreenegit/slides/raw/master/UserGroup/BostonPSUserGroup.pptx) 18 | 19 | ### Release Pipelines 20 | 21 | * [Recording](https://www.facebook.com/wayfairatwork/videos/662334277279575/) 22 | * [Slides](https://github.com/mgreenegit/slides/raw/master/TRPM/TheReleasePipelineModel_Ignite.pptx) 23 | * [Demo_CI Repository](https://github.com/powershell/demo_ci) -------------------------------------------------------------------------------- /2016-07-oneget/2-gallery-extras.ps1: -------------------------------------------------------------------------------- 1 | #### Prerequisites not performed here ### 2 | # $key = Get-Content C:\key.txt -raw 3 | 4 | # Bump the version 5 | explorer $ENV:USERPROFILE\Documents\GitHub\PSSlack 6 | 7 | # Publish a module 8 | Publish-Module -Path $ENV:USERPROFILE\Documents\GitHub\PSSlack -NuGetApiKey $Key 9 | 10 | # Auto deploy! 11 | # http://ramblingcookiemonster.github.io/PSDeploy-Inception/ 12 | # Includes dev builds, idea/code borrowed from Microsoft DSC Resources: 13 | Register-PSRepository -Name PSSlackDev -SourceLocation https://ci.appveyor.com/nuget/psslack -InstallationPolicy Trusted 14 | Find-Module -Repository PSSlackDev 15 | & 'C:\Program Files\Internet Explorer\iexplore.exe' 'https://ci.appveyor.com/project/RamblingCookieMonster/psslack/build/artifacts' 16 | 17 | # Publish a script 18 | ise C:\temp\Open-IseFunction.ps1 19 | Publish-Script -Path C:\temp\Open-IseFunction.ps1 -NuGetApiKey $Key 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Boston PowerShell User Group 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /2017-01-octopus/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG January 2017 Meetup 2 | 3 | * **Topic**: Octopus Deploy and PowerShell 4 | * **Presenter**: [Joe Beaudry](https://twitter.com/joebeau93) 5 | 6 | ## Materials 7 | 8 | * [Demo GitHub repository](https://github.com/beaudryj/BosPSUGOctoDemo) 9 | 10 | ## Tools in the demo 11 | 12 | * [Vagrant](https://www.vagrantup.com/docs/why-vagrant/) 13 | * [VirtualBox](https://www.virtualbox.org/wiki/Downloads) - Using Hyper-V? Rather than disable, you can [switch between the two at boot](http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx) 14 | * [Chocolatey](https://chocolatey.org/install) 15 | * [jbeaudry/Octobox](https://atlas.hashicorp.com/jbeaudry/boxes/Octobox) Vagrant box 16 | * [MattHodge/Windows2016StdCore-WMF5-NOCM](https://atlas.hashicorp.com/MattHodge/boxes/Windows2016StdCore-WMF5-NOCM) Vagrant box 17 | * [Packer](https://www.packer.io/intro/). ([Guide](https://hodgkins.io/best-practices-with-packer-and-windows), [Joe's repo](https://github.com/beaudryj/octo-box), [Windows Packer templates](https://github.com/joefitzgerald/packer-windows)). Not demoed per se, but used to create demo boxes. 18 | -------------------------------------------------------------------------------- /2016-07-oneget/0-gallery.ps1: -------------------------------------------------------------------------------- 1 | # Discover and get help 2 | Get-Module -ListAvailable 3 | Get-Module -ListAvailable -Name PowerShellGet, PackageManagement 4 | 5 | Get-Command -Module PackageManagement, PowerShellGet 6 | Get-Command -Module PowerShellGet 7 | 8 | Get-Help Install-Module -Full 9 | Get-Help Install-Module -Online 10 | 11 | #### Quick OneGet/PackageManagement notes #### 12 | #### 13 | 14 | # What types of things can I install/query/etc? PackageProviders: 15 | Get-PackageProvider 16 | 17 | # Find more 18 | Find-PackageProvider 19 | 20 | # Okay, what targets can these providers hit?: 21 | Get-PackageSource 22 | # I Don't have Chocolatey! 23 | 24 | # Set things up for chocolatey 25 | Set-PackageSource -Name chocolatey -ProviderName chocolatey 26 | 27 | # Search... and install! 28 | Find-Package | 29 | Select -First 50 | 30 | Out-GridView -PassThru | 31 | Install-Package 32 | 33 | # What's on my system? 34 | Get-Package -ProviderName chocolatey 35 | 36 | # Cleanup 37 | Uninstall-Package 7zip 38 | 39 | # Wouldn't it be fun to see other package sources? 40 | 41 | # Windows updates... 42 | # Microsoft downloads... 43 | # Hotfixes... 44 | 45 | #### PowerShellGet #### 46 | #### 47 | 48 | # Interface to PowerShellGallery.com 49 | # Compatible with similar internal systems 50 | # Work with scripts and modules. Focus is on modules. 51 | # Wraps PackageManagement 52 | 53 | # Find a module - or just use powershellgallery.com 54 | Find-Module -Tag Slack, Excel 55 | 56 | # Want to read the code first? 57 | mkdir C:\temp 58 | Save-Module PSDiskPart -Path C:\temp 59 | dir C:\temp\PSDiskPart -Recurse 60 | 61 | # Install a module 62 | Install-Module PoshRSJob, Posh-SSH, ImportExcel 63 | 64 | # Just for me, admin not needed 65 | Install-Module PSSlack -Scope CurrentUser -Force 66 | 67 | # Have an issue? Many of these are open source: 68 | $Mod = Find-Module ImportExcel 69 | $Mod | Select -Property * 70 | & 'C:\Program Files\Internet Explorer\iexplore.exe' $Mod.ProjectUri 71 | 72 | ## Scripts! ## 73 | 74 | # Find a script, install it 75 | Find-Script | Select -First 5 76 | Install-Script Open-IseFunction 77 | 78 | # Look at scripts we have installed. 79 | Get-InstalledScript 80 | Get-InstalledScript | Select * 81 | 82 | # Run every script we have installed 83 | # In this case, the script contains a function... 84 | # Note that I could tab complete Open-IseFunction.ps1 to load this as well... 85 | Get-InstalledScript | ForEach-Object { 86 | $Name = $_.Name 87 | $Path = $_.InstalledLocation 88 | $ScriptPath = Join-Path $Path "$Name.ps1" 89 | . $ScriptPath 90 | } 91 | 92 | # Use this script to open view Install-Module 93 | Open-IseFunction Install-Module 94 | 95 | # Save a script, open it to review, run it 96 | Save-Script -Name Show-Tree -Path C:\Temp 97 | ise C:\temp\Show-Tree.ps1 98 | C:\temp\Show-Tree.ps1 -Path C:\users\ -MaxDepth 2 99 | 100 | #### Questions! #### -------------------------------------------------------------------------------- /2016-07-oneget/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG July 2016 Meetup 2 | 3 | * **Topic**: OneGet, PowerShell Gallery, and Community Project Highlights 4 | * **Presenter**: [Warren Frame](https://twitter.com/psCookieMonster) 5 | 6 | ## Materials 7 | 8 | * [Youtube recording](https://www.youtube.com/watch?v=_O27n1flJ4k) - skip 49:11 through 53:26, where we took a short break (read: I needed to reset a token I streamed to the Internet) 9 | * [Slides](https://docs.google.com/presentation/d/1_KDmP9H4avBaFcHi2KsNRVQfnBTis-3tXn4S3Kn0UkA/edit?usp=sharing) 10 | * [PackageManagement and PowerShellGet code](0-gallery.ps1) 11 | * [Community projects code](1-gallery-community.ps1) 12 | * [Publish to the gallery](2-gallery-extras.ps1) 13 | 14 | ## References 15 | 16 | * [Google Hangout on Air](https://plus.google.com/events/cqj91mlthb6rtro52n1lcbgddao) 17 | * Presenter details: 18 | * [Twitter: @pscookiemonster](https://twitter.com/psCookieMonster) 19 | * [Blog](http://ramblingcookiemonster.github.io/) 20 | * [GitHub](https://github.com/RamblingCookieMonster) 21 | * [LinkedIn](https://www.linkedin.com/in/wframe) 22 | * [PowerShell Gallery](https://www.powershellgallery.com/) 23 | * [PowerShell 5 justification](http://www.asd.gov.au/publications/protect/securing-powershell.htm): "Organisations should install PowerShell version 5.0 where possible due to the superior logging capabilities provided over earlier versions." Also, [comprehensive list of resources](https://blogs.technet.microsoft.com/ashleymcglone/2016/06/29/whos-afraid-of-powershell-security/) from Microsoftee @GoateePFE 24 | * [WMF 5 compatibility](https://msdn.microsoft.com/en-us/powershell/wmf/5.0/productincompat) 25 | * Community Projects: 26 | * [ImportExcel](https://github.com/dfinke/ImportExcel) (and [gifcam](http://blog.bahraniapps.com/gifcam/)) 27 | * [PoshRSJob](https://github.com/proxb/PoshRSJob) 28 | * [Posh-SSH](https://github.com/darkoperator/Posh-SSH) 29 | * [Win32-OpenSSH](https://github.com/PowerShell/Win32-OpenSSH) 30 | * [PSSlack](https://github.com/RamblingCookieMonster/PSSlack) 31 | * [Grab a token](https://api.slack.com/docs/oauth-test-tokens), or reset one you streamed live 32 | * Publishing on PowerShell Gallery 33 | * [Benefits of Open Source](http://www.themacro.com/articles/2016/05/why-the-best-give-away/), and [webinar for legal teams](https://www.chef.io/blog/event/webinar-open-source-licensing-by-lawyers-for-lawyers/). 34 | * [PowerShell Gallery API Key](https://www.powershellgallery.com/account) 35 | * [Tips on writing a module](http://ramblingcookiemonster.github.io/Building-A-PowerShell-Module/) 36 | * [Automatically publish via GitHub + AppVeyor](http://ramblingcookiemonster.github.io/PSDeploy-Inception/) 37 | * Internal Repositories 38 | * [PSPrivateGallery](https://github.com/PowerShell/PSPrivateGallery) and [WIP walk through](https://michaeltlombardi.github.io/PSPrivateGalleryWalkthrough/) 39 | * [ProGet](http://inedo.com/proget/pricing/features-by-edition) 40 | * [Artifactory](https://www.jfrog.com/confluence/display/RTF/Artifactory+Comparison+Matrix) 41 | * Questions 42 | * On the Deploy to Azure Automation button in the PowerShell Gallery - this adds the module to your Automation account, pulls out activities from the module: 43 | * [Gallery Getting Started page](https://www.powershellgallery.com/GettingStarted), ctrl+f Azure Automation 44 | * [Runbook and module galleries for Azure Automation](https://azure.microsoft.com/en-us/documentation/articles/automation-runbook-gallery/) 45 | * On signing PowerShell modules: 46 | * Note: Execution policy is not a security boundary. If you want to sign code, do it to enable application whitelisting solutions like AppLocker, where you can then say 'only allow scripts signed with this certificate to run.' [Sean Metcalf's reference on PowerShell security](https://adsecurity.org/?p=2604) is a great overview of your options from a security perspective. 47 | * [Reference](http://www.darkoperator.com/blog/2013/3/5/powershell-basics-execution-policy-part-1.html) from Carlos Perez (who wrote the Posh-SSH module) 48 | -------------------------------------------------------------------------------- /2016-09-oss-xplat-ps/README.md: -------------------------------------------------------------------------------- 1 | # BPSUG August 2016 Meetup 2 | 3 | * **Topic**: On an Open Source PowerShell 4 | * **Presenter**: [Nicholas Getchell](https://twitter.com/getch3028), [Warren Frame](https://twitter.com/psCookieMonster) 5 | 6 | ## Materials 7 | 8 | * [Demo GitHub Repo](https://github.com/ngetchell/BPSUGDemoRepo) 9 | * [Slides](https://docs.google.com/presentation/d/1bf-b1PfPiPO7drq6PhHbGM49IjPJPvzjLHdfIUzWtC4/edit?usp=sharing) 10 | 11 | ## References 12 | 13 | This is a disorganized list of references that might come in handy 14 | 15 | ### PowerShell 16 | 17 | Announcement and team links 18 | 19 | * Announcement ([link 1](https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/), [link 2](https://blogs.msdn.microsoft.com/powershell/2016/08/18/powershell-on-linux-and-open-source-2/)) 20 | * [Powerscripting Podcast](https://www.youtube.com/watch?v=UVz_1ACRnpU) 21 | * Channel 9 videos ([link 1](https://channel9.msdn.com/Blogs/hybrid-it-management/PowerShell-on-Linux-and-Open-Source), [link 2](https://channel9.msdn.com/series/PowerShell-Open-Source-Project?sort=rating#tab_sortBy_rating)) 22 | * [PowerShell team reddit AMA](https://www.reddit.com/r/PowerShell/comments/4z3pfg/powershell_team_ama_on_tuesday_823_2p_est/) 23 | 24 | PowerShell repository links 25 | 26 | * [PowerShell Repo](https://github.com/PowerShell/PowerShell/) 27 | * [Known issues on non-Windows platforms](https://github.com/PowerShell/PowerShell/blob/master/docs/KNOWNISSUES.md) 28 | * [PowerShell Repo FAQ](https://github.com/PowerShell/PowerShell/blob/master/docs/FAQ.md) 29 | * [PowerShell Repo Issues](https://github.com/PowerShell/PowerShell/issues) 30 | * [(nix*) Paths](https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md#paths) 31 | * [Using VS Code](https://github.com/PowerShell/PowerShell/blob/master/docs/learning-powershell/using-vscode.md) 32 | * [Contributing](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md) 33 | * [Governance](https://github.com/PowerShell/PowerShell/blob/master/docs/community/governance.md) 34 | 35 | Related repositories 36 | 37 | * [PowerShell Request For Comments Repo](https://github.com/PowerShell/PowerShell-RFC) 38 | * [PowerShell MSDN Documentation Source Repo](https://github.com/PowerShell/PowerShell-Docs) 39 | * [Win32-OpenSSH Repo](https://github.com/PowerShell/Win32-OpenSSH) and [wiki](https://github.com/PowerShell/Win32-OpenSSH/wiki) 40 | * [PowerShell Editor Services](https://github.com/PowerShell/PowerShellEditorServices) 41 | 42 | Chat 43 | 44 | * [Gitter Chat](https://gitter.im/PowerShell/PowerShell) 45 | * [#ps-core Channel in PowerShell Slack](slack.poshcode.org) - Link is to an invite 46 | 47 | Community 48 | 49 | * [PowerShell Magazine](http://www.powershellmagazine.com/2016/08/18/open-source-powershell-on-windows-linux-and-osx/) 50 | * [VMware PowerCLI for Mac OS X, Linux & More? Yes, please!](http://www.virtuallyghetto.com/2016/09/vmware-powercli-for-mac-os-x-linux-more-yes-please.html) - will add link to PowerCLI bits when they arrives. 51 | * [FAQ: PowerShell on Linux/Mac](https://powershell.org/2016/08/18/faq-powershell-on-linuxmac/) 52 | * [ISESteroids PowerShell on Linux](http://www.powertheshell.com/powershellonlinux/) 53 | * [PSScriptAnalyzer Rules Issue](https://github.com/PowerShell/PSScriptAnalyzer/issues/605) 54 | * [PowerShell Decompiled: Ho do loops work](http://csharpening.net/?p=1844)- Folks are starting to read and discuss the code behind PowerShell - might start seeing insightful, digestible details from this. 55 | 56 | Issues and Pull Requests 57 | 58 | * [Example Issue: PowerShell Scripts require .ps1 extension](https://github.com/PowerShell/PowerShell/issues/1103) 59 | * [Example Issue: PSVersionTable should have entry for OS](https://github.com/PowerShell/PowerShell/issues/1635) 60 | * [Example Issue: Including open source libraries to support YAML cmdlets](https://github.com/PowerShell/PowerShell/issues/2109) 61 | * [wharrgarbl](https://github.com/PowerShell/PowerShell/pull/1901) 62 | 63 | Misc 64 | 65 | * [.NET Core Platform Support](https://github.com/dotnet/core/blob/master/roadmap.md#technology-roadmaps) - PowerShell team is aiming for parity with this. 66 | 67 | ### Docker 68 | 69 | * [Docker Installation](https://docs.docker.com/engine/installation/) 70 | * [ramblingcookiemonster/pspydemo](https://hub.docker.com/r/ramblingcookiemonster/pspydemo/) - Docker image used for the demo 71 | 72 | Interesting and/or optimized Docker images: 73 | 74 | * [davidobrien/centos_ansible_powershell](https://hub.docker.com/r/davidobrien/centos_ansible_powershell/~/dockerfile/) 75 | * [trevorsullivan/powershell](https://hub.docker.com/r/trevorsullivan/powershell/) 76 | * [manojlds/powershell](https://hub.docker.com/r/manojlds/powershell/) 77 | -------------------------------------------------------------------------------- /2016-07-oneget/1-gallery-community.ps1: -------------------------------------------------------------------------------- 1 | #### Prerequisites not performed here ### 2 | # Posh-SSH example: 3 | # Set-Content C:\redacted.txt "phrases|to|redact" 4 | # Set-Content C:\Computers.txt "A list of computers" 5 | # PSSlack example: 6 | # Set-Content C:\token.txt "My Slack Token" 7 | 8 | #### PoshRSJob - Do things fast! 9 | #### 10 | 11 | # PS Jobs: Expensive, slow 12 | # Workflows: Quirks, using InlineScript limits performance 13 | # Remoting: Distributed, parallel, but not always available... someday... 14 | # Runspaces: Fast, seem complicated until you try PoshRSJob 15 | 16 | Install-Module PoshRSJob -Force 17 | Import-Module PoshRSJob 18 | 19 | # Similar to *-Job, but faster and uses fewer resources 20 | Get-Command -Module PoshRSJob 21 | 22 | # Simulate querying 100 good computers, 5 bad 23 | $ResponseTimes = @() 24 | $ResponseTimes += foreach($response in 1..100) 25 | { 26 | Get-Random -Minimum 1 -Maximum 1000 # less than 1000 milliseconds 27 | } 28 | $Responsetimes += foreach($response in 1..5) 29 | { 30 | Get-Random -Minimum 10000 -Maximum 20000 # 10 - 20 seconds 31 | } 32 | $ResponseTimes = $ResponseTimes | Sort-Object {Get-Random} 33 | 34 | # How fast? 35 | Measure-Command { 36 | $Output = $ResponseTimes | Start-RSJob -Name {"$_-test"} ` 37 | -Throttle 100 ` 38 | -ScriptBlock { 39 | 40 | Start-Sleep -Milliseconds $_ 41 | 42 | [pscustomobject]@{ 43 | ComputerName = "node-$_" 44 | MetricA = $_ / 2 45 | MetricB = 'OK','WARN','ERROR' | Get-Random 46 | } 47 | 48 | } | 49 | Wait-RSJob | 50 | Receive-RSJob 51 | } 52 | 53 | # Give it a try! 54 | # Query information from hundreds/thousands of systems 55 | # Spin things up quickly (be wary of load!) 56 | # Exhaust your RAM 57 | 58 | #### Posh-SSH #### 59 | #### 60 | 61 | # OpenSSH is being ported by Microsoft but... 62 | # Still need abstraction! Paramiko, Spur, etc. 63 | 64 | Install-Module Posh-SSH -Force 65 | Import-Module Posh-SSH 66 | 67 | # SSH, SFTP, SCP 68 | Get-Command -Module Posh-SSH 69 | 70 | # Pull some sanitization data and node names 71 | $Redacted = Get-Content C:\redacted.txt # phrases|to|redact 72 | $ComputerName = Get-Content C:\Computers.txt 73 | 74 | # Nodes we'll work with: 75 | $ComputerName -replace $Redacted, '*' 76 | 77 | # Calculated Property (hash table) to redact hostnames 78 | $hostname = @{ 79 | label = "Host" 80 | expression = {$_.Host -replace $Redacted, '*'} 81 | } 82 | 83 | # Start some sessions! 84 | $Cred = Get-Credential 85 | $sessions = New-SSHSession -ComputerName $ComputerName ` 86 | -Credential $Cred ` 87 | -AcceptKey #What could go wrong 88 | 89 | # View sessions... redact hostnames with calculated property... 90 | $Sessions | Select SessionID, 91 | Connected, 92 | $hostname 93 | 94 | # Run a simple command, select redacted hostname, os type 95 | Invoke-SSHCommand -SSHSession $sessions -command "uname" | 96 | Select $hostname, 97 | @{ label = "OSType"; expression = {$_.Output[0]} } 98 | 99 | # Remove our session: 100 | Get-SSHSession | Remove-SSHSession 101 | 102 | #### ImportExcel #### 103 | #### 104 | 105 | Install-Module ImportExcel -Force 106 | Import-Module ImportExcel 107 | 108 | # Similar to *-Job, but faster and uses fewer resources 109 | Get-Command -Module ImportExcel 110 | 111 | # We got random data from the PoshRSJob example: 112 | $Output 113 | 114 | # Send it to Excel! 115 | $Output | 116 | Export-Excel -Path C:\Plain.xlsx ` 117 | -AutoSize ` 118 | -FreezeTopRowFirstColumn ` 119 | -TableName Hmm 120 | 121 | # Read it back from Excel 122 | Import-Excel -Path C:\Plain.xlsx 123 | 124 | #### PSSlack #### 125 | #### 126 | 127 | Install-Module PSSlack -Force 128 | Import-Module PSSlack 129 | 130 | # Similar to *-Job, but faster and uses fewer resources 131 | Get-Command -Module PSSlack 132 | 133 | # Set my token (URL in notes) 134 | Set-PSSlackConfig -Token $(Get-Content C:\token.txt) 135 | Get-PSSlackConfig # will it show the whole token? 136 | 137 | # Send an alert! 138 | if($Output.MetricB -Contains 'ERROR') 139 | { 140 | # Only one in this example... 141 | $NodeDetail = $Output | 142 | Where {$_.MetricB -eq 'ERROR'} | 143 | Select -First 1 144 | 145 | # Make a list with details 146 | $Name = $NodeDetail.ComputerName 147 | $NodeText = $NodeDetail | 148 | Format-List | 149 | Out-String 150 | 151 | $Splat = @{ 152 | AuthorName = 'SCOM Bot' 153 | AuthorIcon = 'http://ramblingcookiemonster.github.io/images/tools/wrench.png' 154 | Title = "Error 125: $Name" 155 | TitleLink = 'https://www.youtube.com/watch?v=TmpRs7xN06Q' 156 | Pretext = "Everything is broken" 157 | Text = "Found error 1 2 5 with the following details:`n``````$($NodeText.trim())``````" 158 | Color = [System.Drawing.Color]::Red 159 | MarkDownFields = 'text' 160 | Fallback = 'Your client is bad' 161 | } 162 | 163 | # Send the message! 164 | New-SlackMessageAttachment @splat | 165 | New-SlackMessage -Channel 'boston' ` 166 | -IconEmoji :bomb: | 167 | Send-SlackMessage 168 | } 169 | 170 | # Before sending other alerts you might check for recent duplicates... 171 | Get-SlackChannel -Name boston | 172 | Get-SlackHistory -After (Get-Date).AddMinutes(-5) | 173 | Where {$_.Attachments.Text -match "^Found error 1 2 5" } | 174 | Select -ExpandProperty Attachments 175 | 176 | 177 | # How to find community modules 178 | # Follow folks on Github 179 | # Follow folks on Twitter 180 | # Browse around the PowerShell gallery 181 | # Browse around Github 182 | # Google for your specific need 183 | 184 | # Pester OSS contributors or vendors if their module isn't in the gallery 185 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Boston PowerShell User Group Session Materials 2 | 3 | ## Presentations 4 | 5 | | Date | Presenter(s) | Materials | Meetup link | 6 | |---|---|---|---| 7 | | May 2016 | [Matt Nelson](https://twitter.com/enigma0x3), [Will Schroeder](https://twitter.com/harmj0y) | See Meetup Comments | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/230856302/) | 8 | | June 2016 | [Kevin Sullivan](https://twitter.com/conFigure_ITout) | | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/231618629/) | 9 | | July 2016 | [Warren Frame](https://twitter.com/psCookieMonster) | [Readme](2016-07-oneget) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/232470149/) | 10 | | August 2016 | [June Blender](https://twitter.com/juneb_get_help) | [Readme](2016-08-classes) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/232471605/) | 11 | | September 2016 | [Nicholas Getchell](https://twitter.com/getch3028), [Warren Frame](https://twitter.com/psCookieMonster) | [Readme](2016-09-oss-xplat-ps) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/233502018/) | 12 | | October 2016 | [Dan Stolts](https://twitter.com/ITProGuru) | [Powerpoint](http://itproguru.com/wp-content/uploads/2016/10/PowerShell-and-DSC-Enables-DSCDevOps-1.pptx) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/233284962/) | 13 | | November 2016 | Jeff Dillon, [Josh Atwell](https://twitter.com/Josh_Atwell) | [Readme](2016-11-dsc-infra) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/234844704) | 14 | | December 2016 | [Jeffrey Snover](https://twitter.com/jsnover), [Michael Greene](https://twitter.com/migreene) | [Readme](2016-12-winter-special) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/235888380/) | 15 | | January 2017 | [Joe Beaudry](https://twitter.com/joebeau93) | [Readme](2017-01-octopus) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/236347993/) | 16 | | February 2017 | [Sean Metcalf](https://twitter.com/PyroTek3) | [Readme](2017-02-security) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/237665859/) | 17 | | March 2017 | [Steve Parankewich](https://twitter.com/powershellblog) | [Readme](2017-03-ews) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/238382136/) | 18 | | June 2017 | Jeff Dillon, [Jeffrey Snover](https://twitter.com/jsnover) | [Readme](2017-06-powershell) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/239704767/) | 19 | | July 2017 | [Warren Estes](https://twitter.com/warren2600) | [Readme](2017-07-dba) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/241381825/) | 20 | | August 2017 | [Robb Schiefer](https://twitter.com/chief7) | [Readme](2017-08-tdd) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/242223110/) | 21 | | September 2017 | [Matthew Anderson](https://twitter.com/matholamew) | [Readme](2017-09-cubes) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/243330591/) | 22 | | October 2017 | [Gene Laisne](https://twitter.com/glaisne) | Readme | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/244261075/) | 23 | | December 2017 | [Joshua Stenhouse](https://twitter.com/joshuastenhouse) | Readme | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/245144753/) | 24 | | January 2018 | [Bill Wilder](https://twitter.com/codingoutloud) | Readme | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/246736419/) | 25 | | February 2018 | [Warren Frame](https://twitter.com/psCookieMonster) | [Readme](2018-02-neo4j) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/247637551/) | 26 | | March 2018 | [Rob Pleau ](https://twitter.com/rjpleau) | [Readme](2018-03-plaster) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/248715959/) | 27 | | April 2018 | [Jim Arruda](https://twitter.com/JimRockarruda) | [Readme](2018-04-pester) | [Meetup](https://www.meetup.com/Boston-PowerShell-User-Group/events/249909886/) | 28 | 29 | ## Presenters 30 | 31 | | Name, Twitter | Website | GitHub | 32 | |---|---|---| 33 | | [Bill Wilder](https://twitter.com/codingoutloud) | [Blog](https://blog.codingoutloud.com/) | [codingoutloud](https://github.com/codingoutloud) | 34 | | [Dan Stolts](https://twitter.com/ITProGuru) | [Blog](http://itproguru.com/) | [dstolts](https://github.com/dstolts) | 35 | | [Gene Laisne](https://twitter.com/glaisne) | [Blog](http://www.genelaisne.com/) | [glaisne](https://github.com/glaisne) | 36 | | Jeff Dillon | | | 37 | | [Jeffrey Snover](https://twitter.com/jsnover) | [Blog](http://www.jsnover.com/blog/) | [jpsnover](https://github.com/jpsnover) | 38 | | [Jim Arruda](https://twitter.com/JimRockarruda) | | [rockarruda](https://github.com/rockarruda) | 39 | | [Joe Beaudry](https://twitter.com/joebeau93) | [Blog](http://beaudry.io/) | [beaudryj](https://github.com/beaudryj) | 40 | | [Josh Atwell](https://twitter.com/Josh_Atwell) | [Blog](http://www.vtesseract.com/) | [joshatwell](https://github.com/joshatwell) | 41 | | [Joshua Stenhouse](https://twitter.com/joshuastenhouse) | [Blog](https://virtuallysober.com/) | | 42 | | [June Blender](https://twitter.com/juneb_get_help) | [Blog](https://www.sapien.com/blog/) | [JuneB](https://github.com/juneb) | 43 | | [Kevin Sullivan](https://twitter.com/conFigure_ITout) | [Blog](http://configureitout.blogspot.com/) | | 44 | | [Matt Nelson](https://twitter.com/enigma0x3) | [Blog](https://enigma0x3.net/) | [enigma0x3](https://github.com/enigma0x3) | 45 | | [Matthew Anderson](https://twitter.com/matholamew) | | | 46 | | [Michael Greene](https://twitter.com/migreene) | [Blog](http://aka.ms/bcb) | [mgreenegit](https://github.com/mgreenegit) | 47 | | [Nicholas Getchell](https://twitter.com/getch3028) | [Blog](https://powershell.getchell.org/) | [ngetchell](https://github.com/ngetchell) | 48 | | [Rob Pleau](https://twitter.com/rjpleau) | [Blog](https://ephos.github.io/) | [ephos](https://github.com/ephos) | 49 | | [Robb Schiefer](https://twitter.com/chief7) | [Blog](https://t.co/58MH9vh596) | [rschiefer](https://github.com/rschiefer) | 50 | | [Sean Metcalf](https://twitter.com/PyroTek3) | [Blog](https://adsecurity.org/) | [PyroTek3](https://github.com/PyroTek3) | 51 | | [Steve Parankewich](https://twitter.com/powershellblog) | [Blog](http://powershellblogger.com/) | | 52 | | [Will Schroeder](https://twitter.com/harmj0y) | [Blog](http://www.harmj0y.net/blog/) | [HarmJ0y](https://github.com/HarmJ0y) | 53 | | [Warren Estes](https://twitter.com/warren2600) | [Blog](https://www.warrenestes.com/) | | 54 | | [Warren Frame](https://twitter.com/pscookiemonster) | [Blog](http://ramblingcookiemonster.github.io/) | [RamblingCookieMonster](https://github.com/ramblingcookiemonster) | 55 | 56 | ## Contributing 57 | 58 | If you're up for sharing your session materials: 59 | 60 | * Fork this repo 61 | * Make your changes 62 | * Add a *Month Year - Topic Synopsis* Folder with your material 63 | * Submit a pull request 64 | 65 | If you're up for presenting, get in touch and we'll work out a schedule! 66 | 67 | ## Contact Us 68 | 69 | * [Steve Parankewich](https://twitter.com/powershellblog) 70 | * [Warren Frame](https://twitter.com/pscookiemonster) 71 | * [BosPSUG](https://twitter.com/BosPSUG) (Twitter) 72 | * E-mail: boston.powershell.user.group@gmail.com 73 | * [Meetup Page](https://www.meetup.com/Boston-PowerShell-User-Group/events/233284962/) --------------------------------------------------------------------------------