Tag: PowerShell

Video: Create Dynamic Reusable Tools in PowerShell with Advanced Functions

Last Thursday I presented a session for the Central Texas PowerShell Users Group on “DRY: Create Dynamic Reusable Tools in PowerShell with Advanced Functions”. The video from that presentation is now available:

The presentation materials including the code and a PDF copy of the slide deck can be downloaded from here.


Central Texas PowerShell User Group Meeting Tonight!

This evening at 6pm central time, I'll be presenting a session on "DRY: Create Dynamic Reusable Tools in PowerShell with Advanced Functions" for the Central Texas PowerShell User Group. You can signup and find out more details about this presentation here. Here's what to expect from the session: "Bad habits never die. Writing the same PowerShell code over and over again with static values is no different than pointing and clicking in the GUI performing the same task over and over again. It’s Read more [...]

Installing Visual Studio Code and the PowerShell Extension

Last week Microsoft released a new version of Visual Studio Code along with an extension for writing PowerShell in it. Visit code.visualstudio.com to download Visual Studio Code. There's also an update link on that page if you happen to have a version prior to "0.10.1". The PowerShell extension for Visual Studio Code only works with PowerShell version 5. Either Windows 8.1 with the WMF 5 Production Preview installed or Windows 10 is sufficient. The GUI installation of Visual Studio Code is a Read more [...]

Using PSScriptAnalyzer to check your PowerShell code for best practices

Are you interested in learning if your PowerShell code follows what the community considers to be best practices? Well, you're in luck because Microsoft has a new open source PowerShell module named PSScriptAnalyzer that does just that. According to the GitHub page for PSScriptAnalyzer, it's a static code checker for PowerShell modules and scripts that checks the quality of PowerShell code by running a set of rules that are based on best practices identified by the PowerShell team and community. Read more [...]

Using Pester and the Operation Validation Framework to Verify a System is Working

If you haven't seen the Operation Validation Framework on GitHub, it's definitely something worth taking a look at. This framework allows you to write Pester tests to perform end-to-end validation that a system is operating properly. Pester is typically used to perform test driven development or unit testing on your PowerShell code, but in this scenario it's used for operational testing. You need to have Pester installed, but if you're running Windows 10 then you already have Pester. Download Read more [...]

Solving DSC Problems on Windows 10 & Writing PowerShell Code that writes PowerShell Code for you

I recently ran into a problem with DSC on Windows 10 when trying to create MOF files with DSC configurations that work on other operating systems. An error is generated when the friendly name for a DSC resource contains a dash and that friendly name is specified as a dependency for another resource. I know that only certain characters are allowed in the name that's specified for DependsOn and I've run into similar problems with things such as IP addresses due to the dot or period, but the dash works Read more [...]

Video & Presentation Materials: October Omaha PowerShell User Group Meeting

This past Tuesday, I presented a session on "Using PowerShell Desired State Configuration in your On-Premises Datacenter" for the Omaha PowerShell User Group. During that presentation I demonstrated a number of the tips and tricks that I've learned while implementing systems in multiple data-centers using DSC. The meeting was recorded and the video from it is now available:   You can download a PDF copy of the slide deck along with both of the scripts used during the presentation Read more [...]

Using Pester to Test PowerShell Code with Other Cultures

I recently published a blog article on unexpected case sensitivity in PowerShell. An example in that blog article uses the contains method which is indeed case sensitive. One of the workarounds that I demonstrated was to convert whatever the user entered to upper case using the ToUpper() method. One of the reasons I like blogging is that many times there are things that I may not have considered and sometimes things that I wasn't even aware of so in addition to sharing my knowledge with others, Read more [...]

Some Cases of Unexpected Case Sensitivity in PowerShell

I'm sure that you've all heard that PowerShell is case insensitive, right? Most things in PowerShell are indeed case insensitive and what is case sensitive is normally expected behavior, but I've come across a number of things in PowerShell that are case sensitive that don't work as I would expect them to which are listed in this blog article. One of the first things that I discovered in PowerShell that is case sensitive that you wouldn't have thought would be is the Region keyword that was introduced Read more [...]

Announcing the Winner of the PowerShell TFM Book Contest

Two weeks ago, I started a PowerShell contest which required the participants to convert a string of text to title case. I didn't specifically say title case but I explained that the first letter of each word should be converted to upper case and all remaining letters in each word should be converted to lower case. This was because a search on how to convert to title case with PowerShell gave away a good portion of the answer. There were a total of 22 entries in the contest and all of them were Read more [...]

Code and Slides from my sessions at SQL Saturday 439

Today I presented two wildly successful sessions at SQL Saturday #439 in Columbus, GA. The code and slides from my "How do I Get-Started with PowerShell?" session can be downloaded here and the code and slides from my "PS C:\> Get-Started -With PowerShell Desired State Configuration" session can be downloaded here. The custom functions that are referenced in the code from the DSC session can be downloaded as part of my MrDSC module from GitHub. µ Read more [...]

PowerShell: Filter by User when Querying the Security Event Log with Get-WinEvent and the FilterHashTable Parameter

I recently ran across something interesting that I thought I would share. The help for the FilterHashTable parameter of Get-WinEvent says that you can filter by UserID using an Active Directory user account's SID or domain account name: Notice that the help also says the data key can be used for unnamed fields in classic event logs. I often hear the question wanting to know what the valid key pairs are for the hash table. As you can see, they're listed in the Read more [...]

Windows PowerShell TFM Book Contest and Giveaway

Today is the first day of Autumn also known as fall here in North America and it's my favorite time of the year. If nothing else, you've got to love the cooler weather and the changing of tree leaf colors. Last fall, a new version of the Windows PowerShell TFM book that I co-authored along with Jason Helmick was published and strangely enough, its design is remarkably similar to the colors that are associated with Autumn. SAPIEN Technologies who is the publisher of the book is providing one Read more [...]

Working around UAC (User Access Control) without running PowerShell elevated

We've all heard it and experienced the problem where you can't perform tasks such as stopping a service on the local machine with PowerShell unless your running PowerShell elevated. If the title bar doesn't say "Administrator" then you'll end up with these types of error messages: If PowerShell remoting is enabled on the local machine, you can simply remote back into it to perform the task without having to run PowerShell elevated: This Read more [...]

Video & Presentation Materials: September 2015 PowerShell.org Advanced Functions TechSession Webinar

Last week I presented a session titled "The Top 10 Considerations When Writing PowerShell Advanced Functions" for the September 2015 PowerShell.org TechSession Webinar. The video from that presentation is now available: The presentation materials including the code and slides can be downloaded from here. I received a question during the presentation about how to determine what the type accelerators are and the answer to that question can be found in this Hey, Scripting Guy! Blog article Read more [...]