Josh's PowerShell collection
A collection of PowerShell Scripts, Tools, and Modules. Mostly related to some of my projects, my work, or just a blog post of me.
What is here?
The stuff here is mostly related to:
- Active Directory
- Exchange (On Premises)
- Exchange Online (Part of Office 365)
- Office Related (Office Suite)
- Office 365 and Azure AD
- Skype for Business (Client and server stuff)
- Windows Server Update Services (WSUS)
- Misc Tools and Scripts that might come handy
Some, or better most, of the stuff here was a function. This is because I like functions more (my personal preference). I converted most to single files. You can convert them back if you like.
Why so detailed?
I was asked why all my scripts contain so many comments, and why they are so well formatted... I hope you do not just download them and let them run (What is dangerous anyway). They should show you how to build and create your own tooling! That is the main reason why I try to avoid the usage of aliases within my scripts and use splatting to make them more human readable.
Why in general?
Many ask me that question! The answer is simple: "I like to contribute back to the community!" The long answer: "I still try to automate all the things! And I love to show what PowerShell can do... As a result, I started to publish a lot of code. Things I build, things I like, or just things I found interesting to build :-)"
Found a bug or Issue?
If you find something bad (like a bug, error, or any issue), please report it here by open an Issue.
Or even better: Fork the Repository, fix it and submit a pull request, so others can participate too!
See the Contribution Guide for more details!
More then welcome! Please see the Contribution Guide for more details!
I will sign all scripts with a valid certificate soon, again.
In the meantime, I use a test certificate from Ascertia.com for testing everything. Please note: The Ascertia.com might throw error, caused by a missing root certificate trust! This is a known issue, but for mow I need a test certificate!
I sign all files with a time stamp from an official Timestamp Server. A time stamp prevents the script from failing if the certificate expires because users and programs can verify that the certificate was valid at the time of signing.
I sign all scripts, modules, executables, and installers. In addition, all scripts and modules will be available plain (without signature).
I still search for a free code signing certificate for my open-source projects. So, does anyone know a source?
Even if there is no "free" version for my open-source projects, I would also pay for a valid certificate (again). However, most of the sources I found are not cheap! Does anyone know a cheap source for a signing certificate?
In the past, I published a few things with a (signed) MSI installer package. These MSI installers were very basic; I know!
But there is hope: The Advanced Installer Team sponsored a free Advanced Installer Professional license for my open-source work. So things will change soon, and I will provide (much better) installers again in the very near future.
I highly recommend Advanced Installer, because it's they have a great set of features, and it fits perfect to my tooling and existing workflow. I used the free version to build some of my basic installers before. I switched to the Professional version only because it can do a few more things I really needed. Mainly the automated handling of digital signatures and the integration into my existing Continuous Integration chain.
I will transfer this project to my existing TeamCity Continuous Integration (CI) chain soon. As part of that I started to tweak a bit further (under the hood), like creating a few basic pester tests. I will publish all the stuff that I use for it as well.
My goal is to automate the complete Continuous Integration (CI) and Continuous Delivery (CD) process like we did it within my old company. As a result, much better code should land here very soon. But: There is no timeframe planned, at least not yet!
In my opinion: All the stuff here should be free, and the license should be as flexible as possible.
BSD 3-Clause License
Copyright (c) 2018, enabling Technology <http://enatec.io> All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
By using the Software, you agree to the License, Terms and Conditions above!
This is a third-party Software!
The developer(s) of this Software is NOT sponsored by or affiliated with Microsoft Corp (MSFT) or any of its subsidiaries in any way
The Software is not supported by Microsoft Corp (MSFT)!