Category: PowerShell

Determine Hardware Type – 2012 PowerShell Scripting Games Beginner Event #8

The details of the event scenario and the design points for Beginner Event #8 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. Write a script to determine if a computer is a laptop or a desktop from a hardware prospective and display the output on the console. If this requires admin rights, you should detect if it is running as an admin or standard user. Extra points for writing a simple function that returns a boolean. I kind of figured this was going Read more [...]

Enabled Logs with Data – 2012 PowerShell Scripting Games Beginner Event #7

The details of the event scenario and the design points for Beginner Event #7 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. Display a list of enabled logs that contain data. Do not display errors. Include hidden logs. Display the complete log name and number of entries. Sort by the logs with the most entries in them. My research on this one lead me to the "Use PowerShell to Query All Event Logs for Recent Events" blog article on the Hey, Scripting Read more [...]

Working with WMI – 2012 PowerShell Scripting Games Beginner Event #6

The details of the event scenario and the design points for Beginner Event #6 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. Write a PowerShell script to determine the uptime of servers by using the WMI class WMI32_OperatingSystem. The script should display the server name, how many days, hours, and minutes the server has been up. As usual, I started out by running Get-Help Get-WMIObject to determine what the available parameters were for this Read more [...]

Finding Application Errors – 2012 PowerShell Scripting Games Beginner Event 5

The details of the event scenario and the design points for Beginner Event #5 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. Your manager has task you with producing a report of applications that are causing errors on your servers. This report should display the source and number of errors from the application log. How can I find out what PowerShell cmdlets are available to query the application event log? I could certainly use Get-Help, but I Read more [...]

Just Passing Thru – 2012 PowerShell Scripting Games Beginner Event 4

The details of the event scenario and the design points for Beginner Event #4 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. The key to this one is figuring out how to format the output as shown in the screen shot in the event scenario which is similar to the one in the image below: The PowerShell Down Under guys posted some great prep videos leading up to the beginning of the scripting games and one of them titled "Scripting Games 2012 - Working Read more [...]

Toughest Event Yet – 2012 PowerShell Scripting Games Beginner Event #3

The details of the event scenario and the design points for Beginner Event #3 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. This was the toughest event out of the first three for me. I spent a lot of time researching how to check permissions because part of the first design point stated: "If you do not have permission off the root, create the nested folders where you have permissions". This was clarified in the comments section later during the day Read more [...]

Get-Method | My-Madness | 2012 PowerShell Scripting Games Beginner Event #2

The details of the event scenario and the design points for Beginner Event #2 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. Listed below are my notes about the requirements and design points: Find all services that are running and can be stopped. The command must work against remote computers. Use the simplest command that will work. You do not need to write a script. Return the results to the screen, not to a file. You may use aliases. I started Read more [...]

My Approach to the 2012 PowerShell Scripting Games Beginner Event #1

The details of the event scenario and the design points for Beginner Event #1 of the 2012 PowerShell Scripting Games can be found on the “Hey, Scripting Guys! Blog”. Listed below are my notes about the requirements and design points: Computers run Windows 7 and servers run Windows 2008 R2. They’re all in one domain. PowerShell remoting is enabled on all computers (both servers and desktops). Use PowerShell to retrieve the top ten processes based on the memory working set. There’s no Read more [...]

Importing PowerShell Modules and Locating Added Cmdlets

Want to add a feature to a Windows Server 2008 R2 machine using PowerShell? That functionality is part of the ServerManager PowerShell Module that's install by default on 2008 R2. The module has to be imported for it's cmdlets to be made available since it's not loaded by default when you launch PowerShell. To view the Modules that are available to be imported, run Get-Module -ListAvailable The ServerManager module has to be imported so that it's commands are made available to PowerShell. Read more [...]

Game On! The 2012 PowerShell Scripting Games

Since this is my first year entering the PowerShell Scripting Games, I’m only submitting scripts for the beginner events but I’m also taking a look at the advanced ones to get an idea of what kind of knowledge is needed for them. It’s not too late to join in on the fun. Make sure you read the requirements of each event carefully, create your script, test it, and think about it for a while before submitting it. I had four stars on the first Beginner Event: Another judge must have given me Read more [...]

How Do I Get-Started With PowerShell?

Commands in PowerShell are called cmdlets (pronounced "command lets") and they are in the form of singular verb-noun commands like Get-Alias (not Get-Aliases). In my opinion, there are three cmdlets that are the key to figuring out how to use PowerShell and finding help when you need it. These cmdlets are: Get-Help (help) Get-Command (gcm) Get-Member (gm) Get-Help or Help for short. Help isn't actually an alias, but it works exactly the same way if your using the PowerShell ISE. I've Read more [...]

Using PowerShell to Ace the Scripting & Regular Expression Interview Question

Last week I saw a tweet that referenced a couple of interesting articles on interview questions for programmers. I'm no programmer, but one of them (Steve Yegge's The Five Essential Phone-Screen Questions) had an interesting question about identifying which of 50,000 web pages had phone numbers in them. You have to identify all of the web pages with phone numbers hard coded in them. All of the web pages are HTML files in a directory tree under a folder named website. The phone numbers are in the Read more [...]

Confusion on PowerShell Parameterized Functions

I've run into an issue with PowerShell functions that I don't understand. I guess my confusion is most of the examples I've found online and in books don't work the way the authors explained (at least not for me). The problem is when I define a parameter inside a function, that parameter is not accessible when running the script. When I move the parameter outside of the function, it's accessible and it works without issue. I'm guessing this is because of Read more [...]

Where Do I Find This Thing Called PowerShell?

If you’re running Windows 7, you already have PowerShell 2.0 installed. It’s located under “All Programs > Accessories > Windows PowerShell”. I’m running a 64bit version of Windows 7 so I have both 64bit and 32bit (x86) links in my start menu. I prefer the PowerShell ISE (Integrated Scripting Environment) as apposed to the PowerShell Console. I use the 64bit version and have never run into an issue where I needed to use the 32bit (x86) versions. According to the Microsoft Support Read more [...]

Get-WmiObject : The RPC Server is Unavailable. (Exception from HRESULT: 0x800706BA)

This week while working with some PowerShell scripts that retrieve WMI information from remote servers, I ran into an issue where I was able to return results from Windows 2008 R2 servers without issue but was unable to return results from Windows 2008 (non-R2) servers even though they had PowerShell 2.0 installed and as far as I could tell they were configured exactly the same as the Windows 2008 R2 servers. Here's the error I received: Get-WmiObject : The RPC server is unavailable. (Exception Read more [...]