PowerShell Code Repository -
After connecting to your VI server, we get a list of virtual switches on the datacenter and from that we pull out the VHostID that matches the server we passed in at the command-line. Using the VHostID we return a list of networks objects on that server.http://poshcode.org/2716

PowerShell Code Repository -
Here’s several functions for working with VHD’s in Windows 7. I’ve been working with PowerShell for about a year and this is my first go at a module. I’m a sysadmin and not a developer so some of my solutions are in that mode of thinking. There’s probably .NET ways to accomplish what I did and I’m certainly open to learning if there’s a better way. I’ve found these functions useful and hopefully someone else out there will too. Enjoy.http://poshcode.org/1448

PowerShell Code Repository -
Scan the System Event log for all GPRS online activity – PCMCIA, USB, mobile phone, etc. A Balloon Tip will also be issued when the SIM card is about to expire (Needs an icon file to be named ‘exclamation.ico’ for this feature to work). http://poshcode.org/1415

PowerShell Code Repository -
The Easy Migration script enables you to manually VMotion and SVMotion virtual machines very quickly and easily. You don’t have to specify the resource pools and it reduces the amount of mouse clicks required. There is also an Undo feature.http://poshcode.org/2285

PowerShell Code Repository -
This extends the functionality of the SharePoint Search Administration page, producing dashboard-like analysis of your farm’s search crawls. I do not intend to use this script in production, but instead will use it as a starting point to help me build out search crawl health monitoring functionality.http://poshcode.org/1255

PowerShell Code Repository -
This extends the functionality of the SharePoint Search Administration page, producing dashboard-like analysis of your farm’s search crawls. I do not intend to use this script in production, but instead will use it as a starting point to help me build out search crawl health monitoring functionality.http://poshcode.org/1256

PowerShell Code Repository -
This extends the functionality of the SharePoint Search Administration page, producing dashboard-like analysis of your farm’s search crawls. I do not intend to use this script in production, but instead will use it as a starting point to help me build out search crawl health monitoring functionality.http://poshcode.org/1257

PowerShell Code Repository -
This function should be included in the PowerShell ISE profile.ps1 and it will display the start and end times of any scripts started clicking ‘Run Script’ (or ALT+R) in the Add-ons Menu; additionally they will be logged to the Scripts Event Log (which needs creating first) and also to a text log file. This defaults to that created by the Windows Script Monitor Service (available from www.SeaStarDevelopment.Bravehost.com) which normally indicates the full command line used to start each script.http://poshcode.org/3083

PowerShell Code Repository -
This script will recursively enumerate your entire “server” objects, if they all reside under an OU and get the service tag via WMI for each one of them excluding the VMWare guest servers. This is good if you have a lot of servers and don’t want to spend the time having to go to each one of them to manually get the information.http://poshcode.org/1122

PowerShell Code Repository -
This scripts compares the agents that are installed in two zones and gives the agents that are not common.Pretty useful when you have moved agents from one zone to another and now want to verify if all of them have moved.http://poshcode.org/2357

PowerShell Code Repository - 2nd Line Support
A script to ping servers (gets the servers from a text file) & report whether they are online or offline, to check free disks space on all servers and to report on any services which are set to automatic startup but are in a stopped state. It puts all this on a nicely formatted excel sheet, then saves a copy as H:\dailychecks\checks_todaysdate.xls (so if I’m not in I can review it later). It also launches my web browser (my home page is set to my company’s site) so that I can check the site is up, and it imports the exchange modules as I intend eventually to add another sheet to check Exchange services, when I can figure out how to do it. http://poshcode.org/3069

PowerShell Code Repository - 86.88.239.115
This script runs a variety of checks on server hardware to get status or basic information. It can check memory, perc events, firmware versions, gets service tags, shows summary hardware status, retrieves ESM log, and can auto load the omsa webpage. This is a basic overview of some dell WMI related namespace operations which can be easily extended as needed. To run the script, provide the name of the function you want to call and the remote machine name to check. Note: WMI namespace for Dell is installed with dell openmanage software, v4 and higher.http://poshcode.org/1815

PowerShell Code Repository - AddTo-HostsFile
Add entries to the Windows hosts file. The function checks first to see if the entry exists in the file. If the entry does not exist, the function adds the entry and verifies it was added. Please feel free to add improvements. The function Utility.Time-Stamp is another helper function I use to denote the current Time. It can be found here: http://poshcode.org/2795.http://poshcode.org/2817

PowerShell Code Repository - after
The Get-Computer cmdlet retrieves basic information such as computer name, domain or workgroup name, and whether or not the computer is on a workgroup or a domain for the local computer without using WMI. It uses Netapi32.dll to get the domain/workgroup name and .Net for the computername.http://poshcode.org/1636

PowerShell Code Repository - Appscanner v0.10
File Access scanner for ACL and Applocker policy. Scan a particular file/folder for write/execute access for ACL and Applocker based on the rights of a supplied user. Can be used to test the success of an applocker policy. Or to simulate what access a particular user would have. Scripts will also show direct membership and inherited membership for a user. Output is a table formatted in html. The following user types can be used; domain,local and domain cached. The domain cached can only be used when you are logged in as the cached user. Access Denied Exception errors may be produced when attempting to scan a folder that the particular user doesnt have access to( Errors are not fatal and will not effect the script outcome).http://poshcode.org/3102

PowerShell Code Repository - Audit iPhone Users
This script is intended to use IIS logs to audit OWA logs for syncing of mail from an iPhone. In our environment this is an unauthorized device and needs to be audited. This script is not perfect, nor the prettiest thing in the world but it works. IIS logging must be on for this to work. email the results to yourself in $To varible. Have Fun! http://poshcode.org/1280

PowerShell Code Repository - Audit iPhone/Palm Users
This script is intended to use IIS logs to audit OWA/Activesync logs for syncing of mail from an iPhone or a palm device. This script is not perfect, nor the prettiest thing in the world but it works. It could be further added to parse for windows mobile devices. If it was really slick it would grab all the unique values in the DeviceType= portion and then automatically include all mobile types. You can email the results to yourself in $To varible. http://poshcode.org/1685

PowerShell Code Repository - Audit Script
Audit script by Alan Renouf, Usage: Audit.ps1 ‘path’ path needs to be in single quotes. The file needs to be a plain text list of computers to be audited one on each line. Output will be a htm file for each server with detailed system information. Any comments please contact me.http://poshcode.org/639

PowerShell Code Repository - Auto ISE Preferences
You can just copy paste this entire script to your PowerShell ISE profile script. This script will take care of saving your ISE preferences such as color schemes, font styles, etc. You can change any of these values and this script will take care of storing and re-storing those preferences everytime you open ISE.http://poshcode.org/2230

PowerShell Code Repository - Ayth
Script which reads in a csv containing the Identity parameter of a group of Public Folders, and if they are not mail enabled it will mail enable them. Thanks to Shay and Karl for helping get around confirmation on each action. http://poshcode.org/589

PowerShell Code Repository - Ayth
Script which reads in a csv containing the Identity parameter of a group of Public Folders, and if they are not mail enabled it will mail enable them. Thanks to Shay and Karl for helping get around confirmation on each action. http://poshcode.org/590

PowerShell Code Repository - Binary Clock
This is a binary clock written in PowerShell that works just like you would expect from a binary clock. Complete with options to show the date, “human readable” time and an option to show binary values. See my blog post for more information. http://learn-powershell.net/2011/07/05/building-a-binary-clock-with-powershell/http://poshcode.org/2770

PowerShell Code Repository - BufferBox 3.6
This is a collection of functions I use when I want to draw boxes on the console. There are two demo functions (both with the verb Test), and in this release I’ve added a useful Show-ConsoleMenu (which is also usable outside the buffer box) which I’ve now made work properly with more than 10 items (and with string input) and even enhanced it to support custom formatting, multiple selection, and prompt text.http://poshcode.org/2899

PowerShell Code Repository - CD.psm1
Very simple module that’s add ‘cd -’ functionality. It basically keeps track of folders you have visited (using prompt function) and make those available in Set-PrevLocation function. Alias cd- make it (almost) feel like original. You can add argument [int] that will limit list’s length. If you have other modules that modify prompt: keep in mind that it will restore prompt function on removal but will use state that existed when it was imported… So any changes done in between will be probably lost. http://poshcode.org/2489

PowerShell Code Repository - Chassis Type
Ever wonder what kind of chassis your computer thinks it’s running on? Have a need to know if you’re RDP’d into a physical or virtual system? This script can probably answer the question for you. This script was adapted to PowerShell from a VBScript I’ve had for a while. It uses WMI to determine the Chassis type and translates the reported numerical code into decipherable text.http://poshcode.org/2941

PowerShell Code Repository - Chassis Type
Ever wonder what kind of chassis your computer thinks it’s running on? Have a need to know if you’re RDP’d into a physical or virtual system? This script can probably answer the question for you. This script was adapted to PowerShell from a VBScript I’ve had for a while. It uses WMI to determine the Chassis type and translates the reported numerical code into decipherable text. – Thought i would rewrite this code using the switch function rather than elseif. Easier to read and less code to write.http://poshcode.org/2996

PowerShell Code Repository - Check latest BIOS Rev
This script is pretty simple, it connects to a remote computer and grabs the BIOS class. It then connects to the Dell support page for the remote computer’s ServiceTag. If the computer is a Dell, it grabs the BIOS revision listed on the page. The inspiration came from reading the Scripting Guy blog about comments. (http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/16/add-excellent-comments-to-your-powershell-script.aspx)http://poshcode.org/2677

PowerShell Code Repository - Check latest BIOS Rev
This script is pretty simple, it connects to a remote computer and grabs the BIOS class. It then connects to the Dell support page for the remote computer’s ServiceTag. If the computer is a Dell, it grabs the BIOS revision listed on the page. The inspiration came from reading the Scripting Guy blog about comments. (http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/16/add-excellent-comments-to-your-powershell-script.aspx)http://poshcode.org/2678

PowerShell Code Repository - Check latest BIOS Rev
This script is pretty simple, it connects to a remote computer and grabs the BIOS class. It then connects to the Dell support page for the remote computer’s ServiceTag. If the computer is a Dell, it grabs the BIOS revision listed on the page. The inspiration came from reading the Scripting Guy blog about comments. (http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/16/add-excellent-comments-to-your-powershell-script.aspx)http://poshcode.org/2679

PowerShell Code Repository - chkhash.ps1
ChkHash.ps1 will compute SHA512 hashes of specified files and save them in the specified .xml database, subsequently chkhash.ps1 will check if the SHA512 hash of the file has changed. chkhash.ps1 has the ability to add to it’s xml databases, so you can run it against your d:\ drive, add files to d:\data, then only add d:\data files to the xml database without having to re-add your whole drive’s files. Use “chkhash.ps1 -h” for help and usage.http://poshcode.org/2824

PowerShell Code Repository - Cisco-Inventory.ps1
As written it will poll Cisco routers and switches and if the snmp OID’s match it will pull out model, serial, and IOS version. The resulting spreadsheet contains IP, host name, serial, model, IOS version, and rack location. The script is heavily documented internally. See the script for more info.http://poshcode.org/2550

PowerShell Code Repository - Citrix License Info
This is a script I wrote to pull information from the Citrix License Web console by dumpingthe contents and searching for the area needed. A better way of doing this is by using the BSonPoSH WMI script but unfortunatly there is an issue with the WMI classes on some installations as described on my blog here….http://teckinfo.blogspot.com/http://poshcode.org/631

PowerShell Code Repository - Compare Reg Keys
Two functions Get-AllRegkey and Compare-AllRegKey which will recursivly retrieve a key’s properties and subkeys, and their properties and subkeys, as an array of objects, across multiple computers. The Compare-AllRegKey function uses Compare-Object to compare the arrays returned from each computer to an array returned from a specified reference computer.http://poshcode.org/2850

PowerShell Code Repository - Compare-DellUpdates
This script will compare the bios/firmware/driver/OMSA versions of a remote server against the Dell SUU update package. To use it, get a copy of the latest Dell SUU. Inside the SUU file structure, look for catalog.xml in the repository. This file will be read to determine the latest versions, and compare it to the currently installed versions on the remote machine (reporting any differences). The output can be used to easily push updates as well, since the update file name is returned in the results.http://poshcode.org/3200

PowerShell Code Repository - Compare-DellUpdates
This script will compare the bios/firmware/driver/OMSA versions of a remote server against the Dell SUU update package. To use it, get a copy of the latest Dell SUU. Inside the SUU file structure, look for catalog.xml in the repository. This file will be read to determine the latest versions, and compare it to the currently installed versions on the remote machine (reporting any differences). The output can be used to easily push updates as well, since the update file name is returned in the results.http://poshcode.org/3214

PowerShell Code Repository - Compare-TwitterNames.ps1
This script will compare the names of the people you follow on Twitter and the people following you. It returns a comparison object consisting of the Twitter name of a subject and a side indicator – “<=” means that you are following a subject who is not following you, “=>” means that you are followed by someone who you are not following.http://poshcode.org/499

PowerShell Code Repository - Compare-TwitterNames.ps1
This script will compare the names of the people you follow on Twitter and the people following you. It returns a comparison object consisting of the Twitter name of a subject and a side indicator – “<=” means that you are following a subject who is not following you, “=>” means that you are followed by someone who you are not following.http://poshcode.org/500

PowerShell Code Repository - Compare-TwitterNames.ps1
This script will compare the names of the people you follow on Twitter and the people following you. It returns a comparison object consisting of the Twitter name of a subject and a side indicator – “<=” means that you are following a subject who is not following you, “=>” means that you are followed by someone who you are not following.http://poshcode.org/871

PowerShell Code Repository - connect-domain
We have multiple domains. I added this function to my profile for each of our domains to easily connect to them using Quest ActiveRoles Management Shell for Active Directory. The function kicks you into a nested prompt to work in the domain that you connect to and lets you exit back out. It also modifies your foregroundcolor so you remember that you’re in a nested prompt.http://poshcode.org/622

PowerShell Code Repository - convert CSV/s to Excel
This script allows you to convert one or more CSVs into an Excel file with each CSV being a new worksheet in excel. The worksheet name will be the name of the file with the exception of the extension. So a file called test.csv will be named ‘test’. CSVs can be piped into the function or you can use the -inputfile parameter to accomplish this.http://poshcode.org/2123

PowerShell Code Repository - Convert File Encoding
R.Vantrease ver 1.0 – The source control I use does not understand the default encoding that PowerShell_ISE saves scripts in (Unicode Big Endian), so I wanted a way to quickly convert my scripts to a friendlier encoding. I wrote the following little ditty to convert all the PowerShell scripts and module files to ASCII encoding.http://poshcode.org/2999

PowerShell Code Repository - ConvertHelpTo-Html
ConvertTo-DekiContent is an improvement on New-HtmlHelp, with a specific focus on output suitable for DekiWiki. I commented out the html and body tags, etc. because the HTML markup is destined for the DekiWiki. It’s an improvement over the original because we cleaned up the parameter and example code, and broke apart the syntax, so it’s easier to read.http://poshcode.org/670

PowerShell Code Repository - ConvertTo-ASCII
Here is a quick script I created to convert files to ASCII character set. This came about because I found Out-File was creating files as Unicode and Add-Content was writing ASCII (Even though the help says it defaults to Unicode). So writing to the files with Add-Content would use the wrong encoding and add garbage to the log files. I changed all my code to include the -Encoding ASCII parameter, but had thousands of files encoded as Unicode. (Note: To see what format it is, open in Notepad and select Save As… it will be listed at the bottom). It replaces the file with a new ASCII encoded file so I also added some logic to capture and set the original file timestamps. This is my first draft so I’m sure there is room for improvements. Such as error handling and adjustments so the input parameters don’t have to be so exact, but it works and thought I would share. -=Levonhttp://poshcode.org/2612

PowerShell Code Repository - ConvertTo-ASCII
Here is a quick script I created to convert files to ASCII character set. This came about because I found Out-File was creating files as Unicode and Add-Content was writing ASCII (Even though the help says it defaults to Unicode). So writing to the files with Add-Content would use the wrong encoding and add garbage to the log files. I changed all my code to include the -Encoding ASCII parameter, but had thousands of files encoded as Unicode. (Note: To see what format it is, open in Notepad and select Save As… it will be listed at the bottom). It replaces the file with a new ASCII encoded file so I also added some logic to capture and set the original file timestamps. This is my first draft so I’m sure there is room for improvements. Such as error handling and adjustments so the input parameters don’t have to be so exact, but it works and thought I would share. -=Levonhttp://poshcode.org/2613

PowerShell Code Repository - ConvertTo-ASCII
Here is a quick script I created to convert files to ASCII character set. This came about because I found Out-File was creating files as Unicode and Add-Content was writing ASCII (Even though the help says it defaults to Unicode). So writing to the files with Add-Content would use the wrong encoding and add garbage to the log files. I changed all my code to include the -Encoding ASCII parameter, but had thousands of files encoded as Unicode. (Note: To see what format it is, open in Notepad and select Save As… it will be listed at the bottom). It replaces the file with a new ASCII encoded file so I also added some logic to capture and set the original file timestamps. This is my first draft so I’m sure there is room for improvements. Such as error handling and adjustments so the input parameters don’t have to be so exact, but it works and thought I would share. -=Levonhttp://poshcode.org/2614

PowerShell Code Repository - ConvertTo-Function
This script takes a path to a script (full or relative), a fileinfo object, or either as pipeline input. It converts the script’s content to a function of the same name as the file. For example, ./ConvertTo-Function Get-Server.ps1 would create a function called Get-Server. If the function already exists, it will replace it with the new script.http://poshcode.org/849

PowerShell Code Repository - Custom Object Factory Te
four lines that will read a function’s parameters, and create a PSObject having Properties by those names, with the function’s arguments (including default arguments and ParamterSetName,as the values of those Properties. Saves quite a bit of typeing if you need to create custom objects and want a “factory” that makes the PSobject for you. http://poshcode.org/2772

PowerShell Code Repository - Delete AD Users
This script will delete all Active Directory User accounts that have not logged in within the number of days specified in the $NumDays variable. The script only deletes the Active Directory user accounts, not any associated Exchange mailboxes. The script also includes the Delete-ADUser function, which can be used separately from this script. All accounts that are deleted are logged in the “Removed-User-Accounts.log” file found in the local directory. The format of the log file is very basic, but effective.http://poshcode.org/2938

PowerShell Code Repository - Dell hardware checker
This script runs a variety of checks on server hardware to get status or basic information. It can check memory, perc events, firmware versions, gets service tags, shows summary hardware status, retrieves ESM log, and can auto load the omsa webpage. This is a basic overview of some dell WMI related namespace operations which can be easily extended as needed. To run the script, provide the name of the function you want to call and the remote machine name to check. Note: WMI namespace for Dell is installed with dell openmanage software, v4 and higher.http://poshcode.org/1812

PowerShell Code Repository - Deploy Multiple VMs v1
Use this script to deploy multiple vmware VMs using template(s). It uses a CSV to gather all the configuration info. Only thing left is to add any required data/application vdisks. In my environment, I use several custom attributes to track VMs, so you will need to comment out or adjust the lines as needed. The VM will be moved to a VMs/Templates Blue folder. http://poshcode.org/2883

PowerShell Code Repository - Deploy Multiple VMs v1.1
Use this script to deploy multiple vmware VMs using template(s). It uses a CSV to gather all the configuration info. Only thing left is to add any required data/application vdisks. In my environment, I use several custom attributes to track VMs, so you will need to comment out or adjust the lines as needed. The VM will be moved to a VMs/Templates Blue folder specified in the csv. http://poshcode.org/2884

PowerShell Code Repository - Disable AD Users
This script will disable all Active Directory User accounts that have not logged in within the number of days specified by the $NumDays variable. All accounts that are disabled are logged in the “Disabled-User-Accounts.log” file created in the local directory. The formatting of the log file is very basic, but effective.http://poshcode.org/2937

PowerShell Code Repository - Email attachments
All descriptions on the web which show how to do this so far have left the email attachment open which means if the script is continuing after the email and you wish to use the file you have attached you will not be able to as it will show as locked, use this example to close the attached file correctly using .Dispose()http://poshcode.org/1820

PowerShell Code Repository - Email attachments
All descriptions on the web which show how to do this so far have left the email attachment open which means if the script is continuing after the email and you wish to use the file you have attached you will not be able to as it will show as locked, use this example to close the attached file correctly using .Dispose()http://poshcode.org/1697

PowerShell Code Repository - exclude properties?
This script runs a variety of checks on server hardware to get status or basic information. It can check memory, perc events, firmware versions, gets service tags, shows summary hardware status, retrieves ESM log, and can auto load the omsa webpage. This is a basic overview of some dell WMI related namespace operations which can be easily extended as needed. To run the script, provide the name of the function you want to call and the remote machine name to check. Note: WMI namespace for Dell is installed with dell openmanage software, v4 and higher.http://poshcode.org/1813

PowerShell Code Repository - exclude properties?
This script runs a variety of checks on server hardware to get status or basic information. It can check memory, perc events, firmware versions, gets service tags, shows summary hardware status, retrieves ESM log, and can auto load the omsa webpage. This is a basic overview of some dell WMI related namespace operations which can be easily extended as needed. To run the script, provide the name of the function you want to call and the remote machine name to check. Note: WMI namespace for Dell is installed with dell openmanage software, v4 and higher.http://poshcode.org/1814

PowerShell Code Repository - Find-DuplicateSMTP
This script will query your AD for all users, groups and contacts. It will then process through each of the SMTP addresses for all objects and count the number of occurances of each address. The scope expanded as I kept thinking of other interesting questions regarding the SMTP addresses that were in my domain. Once the script has finished gathering interesting data regarding the SMTP addresses in your domain, it will dump that information out to a spreadsheet (requires Excel), then send the spreadsheet as an email to you. http://poshcode.org/1631

PowerShell Code Repository - FixInvalidVMs.ps1
This script cycle through an entire VMware Virtual Center instance and identify any virtual machines that are “invald” or “inaccessible”. This typically occurs as a result of a host crash. Running VMs are left with lock files in place making them unusable. The script is internally documented and has lots of status available. Use at your own riskhttp://poshcode.org/2549

PowerShell Code Repository - Function Run-Script
This function should be included in the PowerShell ISE profile.ps1 and it will display the start and end times of any scripts started clicking ‘Run Script’ (or ALT+R) in the Add-ons Menu; additionally they will be logged to the Scripts Event Log (which needs creating first) and also to a text log file. This defaults to that created by the Windows Script Monitor Service (available from www.SeaStarDevelopment.Bravehost.com) which normally indicates the full command line used to start each script.http://poshcode.org/3103

PowerShell Code Repository - Function Run-Script
This function should be included in the PowerShell ISE profile.ps1 and it will display the start and end times of any scripts started clicking ‘Run Script’ (or ALT+R) in the Add-ons Menu; additionally they will be logged to the Scripts Event Log (which needs creating first) and also to a text log file. This defaults to that created by the Windows Script Monitor Service (available from www.SeaStarDevelopment.Bravehost.com) which normally indicates the full command line used to start each script.http://poshcode.org/3093

PowerShell Code Repository - Function Run-Script
This function should be included in the PowerShell ISE profile.ps1 and it will display the start and end times of any scripts started clicking ‘Run Script’ (or ALT+R) in the Add-ons Menu; additionally they will be logged to the Scripts Event Log (which needs creating first) and also to a text log file. This defaults to that created by the Windows Script Monitor Service (available from www.SeaStarDevelopment.Bravehost.com) which normally indicates the full command line used to start each script.http://poshcode.org/3094

PowerShell Code Repository - Function Run-Script
This function should be included in the PowerShell ISE profile.ps1 and it will display the start and end times of any scripts started clicking ‘Run Script’ (or ALT+R) in the Add-ons Menu; additionally they will be logged to the Scripts Event Log (which needs creating first) and also to a text log file. This defaults to that created by the Windows Script Monitor Service (available from www.SeaStarDevelopment.Bravehost.com) which normally indicates the full command line used to start each script.http://poshcode.org/3084

PowerShell Code Repository - Function Run-Script
This function should be included in the PowerShell ISE profile.ps1 and it will display the start and end times of any scripts started clicking ‘Run Script’ (or F2) in the Add-ons Menu; additionally they will be logged to the Scripts Event Log (which needs creating first) and also to a text log file. This defaults to that created by the Windows Script Monitor Service (available from www.SeaStarDevelopment.Bravehost.com) which normally indicates the full command line used to start each script.http://poshcode.org/3104

PowerShell Code Repository - Get Virtual ESXi IP Addr
This code determines the IP address of a virtual ESXi VM in what might just be the dumbest way possible, namely by taking a screenshot of it, OCRing the results and extracting the IP. For educational purposes only. Unfortunately it’s pretty slow due to some cmdlet slowness. Requires PowerCLI 4.0 U1, PowerShell v2, and Microsoft Office Document Imaging (MODI) to be installed and configured.http://poshcode.org/1823

PowerShell Code Repository - Get Virtual ESXi IP Addr
This code determines the IP address of a virtual ESXi VM in what might just be the dumbest way possible, namely by taking a screenshot of it, OCRing the results and extracting the IP. For educational purposes only. Unfortunately it’s pretty slow due to some cmdlet slowness. Requires PowerCLI 4.0 U1, PowerShell v2, and Microsoft Office Document Imaging (MODI) to be installed and configured.http://poshcode.org/1495

PowerShell Code Repository - Get-ActiveRules (SCOM)
This function, Get-ActiveRules, requires Microsoft.SystemCenter.Internal.Tasks.mp located in the SupportTools folder of the SP1 CD. It runs the task “Get All Running Workflows” and writes it to an XML file, by default it’s $server-Rules.xml. This task returns all the workflows (Rules & Monitors) that run on a given server name. http://poshcode.org/454

PowerShell Code Repository - Get-ADSite-byIP
This script takes an IPv4 address (optionally with subnet mask or mask length) and searches the subnets in active directory from most significant to least significant. Which ever subnet matches the IP address first will be returned in distinguished name format. If no subnets match, the script will return Subnet_not_assignedhttp://poshcode.org/2888

PowerShell Code Repository - Get-ChildItemColor
A wrapper for Get-ChildItem with color highlighting for different file types. I was thinking of the Linux ‘ls —color’, but didn’t bother to match up colors or anything. TODO: I should probably update it to precompile the regexes at the top so that they aren’t compiled for each item returned by Get-ChildItem, and the ability to sort by type would be nice. Note: you will have to remove the documentation at the beginning of the function if you want to use it with versions prior to v2.0 CTP3.http://poshcode.org/876

PowerShell Code Repository - Get-Computer
The Get-Computer cmdlet retrieves basic information such as computer name, domain or workgroup name, and whether or not the computer is on a workgroup or a domain for the local computer without using WMI. It uses Netapi32.dll to get the domain/workgroup name and .Net for the computername.http://poshcode.org/1635

PowerShell Code Repository - Get-CrawlHealth (MOSS)
This extends the functionality of the SharePoint Search Administration page, producing dashboard-like analysis of your farm’s search crawls. I do not intend to use this script in production, but instead will use it as a starting point to help me build out search crawl health monitoring functionality.http://poshcode.org/1258

PowerShell Code Repository - Get-CrawlHealth (MOSS)
This extends the functionality of the SharePoint Search Administration page, producing dashboard-like analysis of your farm’s search crawls. I do not intend to use this script in production, but instead will use it as a starting point to help me build out search crawl health monitoring functionality.http://poshcode.org/1259

PowerShell Code Repository - Get-CrawlHealth (MOSS)
This extends the functionality of the SharePoint Search Administration page, producing dashboard-like analysis of your farm’s search crawls. I do not intend to use this script in production, but instead will use it as a starting point to help me build out search crawl health monitoring functionality.http://poshcode.org/1264

PowerShell Code Repository - Get-Credential 2.1
Replaces Get-Credential, with options to set the dialog title and message, as well as defaulting the domain and username, and offering the option to prompt in-line in the console, and to get generic (non-domain) credentials (without a leading “\”). Better in every way than the built-in Get-Credential ;)http://poshcode.org/1480

PowerShell Code Repository - Get-Credential++
Replaces Get-Credential, with options to set the dialog title and message, as well as defaulting the domain and username, and offering the option to prompt in-line in the console, and to get generic (non-domain) credentials (without a leading “\”). Better than the default in every way than thhttp://poshcode.org/1478

PowerShell Code Repository - Get-Credential++
Replaces Get-Credential, with options to set the dialog title and message, as well as defaulting the domain and username, and offering the option to prompt in-line in the console, and to get generic (non-domain) credentials (without a leading “\”). Better than the default in every way than the built-in Get-Credential ;-)http://poshcode.org/1479

PowerShell Code Repository - Get-DomainPasswordPolicy
This is a function that queries the domain for the password policies that are set via Group Policy. Output objects include Min Password Length, Min Password Age, Max Password Age, number of passwords remembered (for password history restrictions), Lockout Threshold, Lockout Duration, and the Lockout Counter Reset time.http://poshcode.org/2939

PowerShell Code Repository - Get-EwsEmail
This is a sample script to read emails from an Inbox using Exchange Web Services. The code is a basic port of the C# found here: http://omegacoder.com/?p=454. The EWSSDK is a dependency: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1http://poshcode.org/2978

PowerShell Code Repository - Get-ImageMetaData
Get-ImageMetadata lets you access the EXIF, XMP and other metadata about image files … this should only be taken as an example and a reference, not for solid production work — in other words, I won’t take the blame if you zero out all your jpgs trying to modify this to ReadWrite instead of just Read :)http://poshcode.org/2616

PowerShell Code Repository - Get-ImageMetaData
Get-ImageMetadata lets you access the EXIF, XMP and other metadata about image files … this should only be taken as an example and a reference, not for solid production work — in other words, I won’t take the blame if you zero out all your jpgs trying to modify this to ReadWrite instead of just Read :)http://poshcode.org/617

PowerShell Code Repository - Get-LeaderBoard
Script to retrieve the leader boards from the 2011 Scripting Games as objects. New version fixes an error with regex that caused usernames with periods or other non-english characters to be excluded (Thanks to Scott Alvarino for noticing this). Also added rankings, which unfortunately causes PowerShell to default the display to a list format, but I assume that any PowerSheller looking at the leaderboards is capable of piping the output to “Format-Table -AutoSize” :) http://poshcode.org/2631

PowerShell Code Repository - Get-LeaderBoard
Script to retrieve the leader boards from the 2011 Scripting Games as objects. New version fixes an error with regex that caused usernames with periods or other non-english characters to be excluded (Thanks to Scott Alvarino for noticing this). Also added rankings, which unfortunately causes PowerShell to default the display to a list format, but I assume that any PowerSheller looking at the leaderboards is capable of piping the output to “Format-Table -AutoSize” :) http://poshcode.org/2632

PowerShell Code Repository - Get-LockoutInfo
Used to find invalid login/lockout events. Should be run on each domain controller with the output being reviewed after each run. The output report should contain events pertaining to invalid login attempts or lockout events. By reviewing the report, you should be able to determine the system where the invalid attempt is originating.http://poshcode.org/2880

PowerShell Code Repository - Get-MailboxImportRequest
This Exchange 2010 MailboxImportRequest cmdlet is to help identify imports that may never complete successfully or are taking a long time to complete so they can be suspended and other imports in the queued can complete in a timely manner. This version fixes pipeline input support and improves type handling.http://poshcode.org/2792

PowerShell Code Repository - Get-NewPassword
Password gerneration function originally posted on PoshCode.org by Sean Kearney. Without any arguments, Get-NewPassword generates an 8 character password with upper, lower, and numeric characters. It can accept 2 options, the first is password length (up to 94 chars) and the other is complexity (1 to 4). I had to modify the code so that it wouldn’t create repeating characters. The code may be ugly, but it’s because I am a network admin and not a programmer. I hope it helps someone.http://poshcode.org/2237

PowerShell Code Repository - Get-Password
I have constantly been looking for a quick and lightweight way to generate random passwords of varrying length and complexity and ended up writting this. A random password generator that if added to a folder in your system path can be called by using Get-Password with optional parameters to control the length and how complex of a character set is used. I use this when creating service account passwords.http://poshcode.org/2793

PowerShell Code Repository - Get-PDC09Videos
Another way to download all the session videos via BITS transfer (no curl needed) with PowerShell 2.0 (This version creates separate jobs for each file, so you have to be LOGGED IN as an admin, and in an ELEVATED host to use this method, because otherwise you hit the limit on the number of bits jobs).http://poshcode.org/1483

PowerShell Code Repository - Get-PerformanceHistory 2
This much more complicated version of Get-PerformanceHistory shows the approximate length of the command or script, as well as how long it took to run. Great for those “my script is shorter/faster/cooler” than yours bragging sessions on IRC ... or whatever. Lets you compare several commands by just running each of them and then calling Get-PerformanceHistory -Count 4 http://poshcode.org/155

PowerShell Code Repository - Get-PerformanceHistory 2
This much more complicated version of Get-PerformanceHistory shows the approximate length of the command or script, as well as how long it took to run. Great for those “my script is shorter/faster/cooler” than yours bragging sessions on IRC ... or whatever. Lets you compare several commands by just running each of them and then calling Get-PerformanceHistory -Count 4 http://poshcode.org/156

PowerShell Code Repository - Get-PerformanceHistory 2
This much more complicated version of Get-PerformanceHistory shows the approximate length of the command or script, as well as how long it took to run. Great for those “my script is shorter/faster/cooler” than yours bragging sessions on IRC ... or whatever. Lets you compare several commands by just running each of them and then calling Get-PerformanceHistory -Count 4 http://poshcode.org/683

PowerShell Code Repository - Get-ProxyAddress
This script enables you too search AD for SMTP addresses that are possibly in use, using the QUEST PowerShell PSSnapIn and searching the “proxyAddress” attribute of objects. The output details either that the SMTP address is not found in AD or you get details of the object that owns the SMTP address.http://poshcode.org/1594

PowerShell Code Repository - Get-ProxyAddress
This script enables you too search AD for SMTP addresses that are possibly in use, using the QUEST PowerShell PSSnapIn and searching the “proxyAddress” attribute of objects. The output details either that the SMTP address is not found in AD or you get details of the object that owns the SMTP address.http://poshcode.org/2517

PowerShell Code Repository - Get-QADGroupNesting
I came across an article on the “Microsoft Active Directory PowerShell Blog”, it has a great script for analysing nested group memberships. Unfortunatly to use the PowerShell script you need to be running Windows 2008 servers for the Active Directory cmdlets to be available. So not put off I converted the script to use the Quest cmdlets available with the “Quest Active Roles Management” PSSnapIn. You will need to have these installed for the script to function.http://poshcode.org/1595

PowerShell Code Repository - Get-QADGroupNesting
I came across an article on the “Microsoft Active Directory PowerShell Blog”, it has a great script for analysing nested group memberships. Unfortunatly to use the PowerShell script you need to be running Windows 2008 servers for the Active Directory cmdlets to be available. So not put off I converted the script to use the Quest cmdlets available with the “Quest Active Roles Management” PSSnapIn. You will need to have these installed for the script to function.http://poshcode.org/1890

PowerShell Code Repository - get-serials
Return a list of computers with their serial numbers. For Dell computers the Win32_BIOS.SerialNumber property is the service tag of the computer. This identifies the computer on the Dell support site, and with it you can get the proper drivers/manuals and warranty information.http://poshcode.org/2873

PowerShell Code Repository - Get-Speech
A script to do VOICE interactive prompting. That is: to generate a text-to-speech prompt, and use speech-recognition to get the answer from a list of answers. Because you provide the list of answers, this basically doesn’t require the user to have trained the voice recognition system at all, and works very well in my testing. Notice that it requires PSEventing and .Net 3.x for the speech recognition libraries.http://poshcode.org/112

PowerShell Code Repository - Get-Sysinternals
Downloads the current sysinternals from \\live.sysinternals.com\tools and then updates your path environment variable to include the location saved to. Along with that it sorts, and removes duplicate entries in the path variable. If you call get-sysinternals without any args the local directory will be systemroot\Sysinternals\ Otherwise, the files will be put in the specified path.http://poshcode.org/2682

PowerShell Code Repository - Get-Sysinternals
Downloads the current sysinternals from \\live.sysinternsals.com\tools and then updates your path environment variable to include the location saved to. Along with that it sorts, and removes duplicate entries in the path variable. If you call get-sysinternals without any args the local directory will be systemroot\Sysinternals\ Otherwise, the files will be put in the specified path.http://poshcode.org/2680

PowerShell Code Repository - Get-Sysinternals
Downloads the current sysinternals from \\live.sysinternsals.com\tools and then updates your path environment variable to include the location saved to. Along with that it sorts, and removes duplicate entries in the path variable. If you call get-sysinternals without any args the local directory will be systemroot\Sysinternals\ Otherwise, the files will be put in the specified path.http://poshcode.org/2681

PowerShell Code Repository - Get-UIChildItem
Very simple script that will create file list from -Path in simple UI generated using Show-UI. ToolTip show size and last write time of a file, and once clicked – it will pass fullname down the pipe. It was created mainly as a attempt to use some animated effects in Show-UI. http://poshcode.org/2673

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/3148

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/3042

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/3035

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/2736

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/2785

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/2786

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/3001

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/2419

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/2487

PowerShell Code Repository - Get-User
This function is an attempt to duplicate the Quest Get-QADUser cmdlet without using any third party snap-ins. If you want to run it against a Global Catalog you simply need to replace LDAP: with GC: and you will want to comment out the lines that pull the password last set and last logon timestamp unless you happen to be replicating those to your GC.http://poshcode.org/628

PowerShell Code Repository - Get-WmiNamespace
In order to enumerate all the WMI namespaces, you must first connect to the “root” namespace, query for all the “__NAMESPACE” instances, and for each instance recursively repeat this process. You can use the computerName parameter of Get-WmiNamespace to list the WMI namespaces on the remote computer.http://poshcode.org/1079

PowerShell Code Repository - group-byobject
Groups by a set of properties, but rather than return a string as the “name” of the group, teturns one of the original objects with separate properties for each property used to group, and optionally adds _count and _details properties which are the original Count and Group properties returned from group-object.http://poshcode.org/2543

PowerShell Code Repository - group-byobject
Groups by a set of properties, but rather than return a string as the “name” of the group, teturns one of the original objects with separate properties for each property used to group, and optionally adds _count and _details properties which are the original Count and Group properties returned from group-object.http://poshcode.org/2544

PowerShell Code Repository - group-byobject
Groups by a set of properties, but rather than return a string as the “name” of the group, teturns one of the original objects with separate properties for each property used to group, and optionally adds _count and _details properties which are the original Count and Group properties returned from group-object.http://poshcode.org/2545

PowerShell Code Repository - IE Proxy Toggle (Silent)
Immediately toggle the current user’s Internet Explorer proxy settings on/off. Uses a ‘hidden’ Internet Explorer process to trigger the application of the new proxy setting once its been changed in the registry. Accepts a single command line parameter “disable”. If no parameter is given, the proxy is “enabled”.http://poshcode.org/2895

PowerShell Code Repository - IE Proxy Toggle (Silent)
Immediately toggle the current user’s Internet Explorer proxy settings on/off. Uses a ‘hidden’ Internet Explorer process to trigger the application of the new proxy setting once its been changed in the registry. Accepts a single command line parameter “disable”. If no parameter is given, the proxy is “enabled”.http://poshcode.org/2896

PowerShell Code Repository - IE Proxy Toggle (Silent)
Immediately toggle the current user’s Internet Explorer proxy settings on/off. Uses a ‘hidden’ Internet Explorer process to trigger the application of the new proxy setting once its been changed in the registry. Accepts a single command line parameter “disable”. If no parameter is given, the proxy is “enabled”.http://poshcode.org/2897

PowerShell Code Repository - Import-BufferBox
A bunch of script functions for creating a simple in-console split-view with output above and an input line below. It allows scripts to sort-of simulate accepting input while they output text. It’s still pretty fragile and occasionally does weird things while you’re typing, because it’s not really multi-threaded and the $Host doesn’t have a “LineAvailable” method … and if you pause a script, you can’t see output from typing, so the whole things is well and truly a hack. But it works!http://poshcode.org/110

PowerShell Code Repository - Import-GmailFilterXml
Gmail can now import and export filters as XML. This script will read in an XML file generated by Gmail (the Path parameter), and create from it a flat PSObject with Id, Updated, Name and Value fields. Since it is flat, you must use the Id field to correlate the filter criteria and actions. As far as I can tell, the first item in a filter is the criteria, and any subsequent ones describe the action to take. More info about filter import/export can be found here: http://gmailblog.blogspot.com/2009/03/new-in-labs-filter-importexport.htmlhttp://poshcode.org/960

PowerShell Code Repository - Inventory
Presents the user with a .NETGUI box to collect subnet (10.30.49), starting node (1) and ending node (254). Uses this info to collect information from every PC on that subnet within that node range and then outputs data to a spreadsheet. Example shown outputs to OpenOffice Calc but I have a seperate one for Excel output. This is one of my first attempts at really useful scripts. Im sure there are some things that could have (should have) been done differently or better. http://poshcode.org/1801

PowerShell Code Repository - Inventory
Presents the user with a .NETGUI box to collect subnet (10.30.49), starting node (1) and ending node (254). Uses this info to collect information from every PC on that subnet within that node range and then outputs data to a spreadsheet. Example shown outputs to OpenOffice Calc but I have a seperate one for Excel output. This is one of my first attempts at really useful scripts. Im sure there are some things that could have (should have) been done differently or better. http://poshcode.org/1802

PowerShell Code Repository - Invoke-AppAsAdminGUI script that helps to workaround problems with desktop sharing by non-admin person and running process as admin. In default scenario UAC kicks in and will show user/password prompt to non-admin user rather than remotely connected IT person. This script separates alternating credentials and elevating, so IT person can enter credentials first, and remote user gets only yes/no prompt. GUI code generated using PrimalForms community edition and re-written a bit. If you have any comments please ping me via twitter (@bielawb) or e-mail (bartb at aster.pl)http://poshcode.org/2457

PowerShell Code Repository - ISEFun.psm1
Module to extend PowerShell ISE functionality. Adds two GUIs (one to play with token colors, second to get command from history back to commandpane), and three functions that may be useful when using ISE (Edit-Function, Add-MyMenuItem and Expand-Alias). Comment-based help included. Have ISE – Fun! ;)http://poshcode.org/2490

PowerShell Code Repository - ISEFun.psm1
Module to extend PowerShell ISE functionality. Adds two GUIs (one to play with token colors, second to get command from history back to commandpane), and three functions that may be useful when using ISE (Edit-Function, Add-MyMenuItem and Expand-Alias). Comment-based help included. Have ISE – Fun! ;)http://poshcode.org/2458

PowerShell Code Repository - JSON
Json.psm1 is a first draft of a JSON module. I has a full set of tools for exporting, importing, and converting Json objects. For instance, this actually works (it round trips a bunch of FileInfo objects through JSON, XML, JSON, and back to objects).http://poshcode.org/1513

PowerShell Code Repository - JSON
Version 1.0 of my JSON module. I has a full set of tools for exporting, importing, and converting Json objects (including arbitrary objects). See comments in script header for usage examples, but basically, you can do things like:http://poshcode.org/1514

PowerShell Code Repository - LibraryChart
Defines functions for wokring with Microsoft Chart Control for .NET 3.5 Framework.Pipe output to Out-Chart function and specify chart type. Chart will display in form or save to image file. Real-time charts are supported by passing in a script block. Updated to fix line chart. Line Chart XAxis needs tweaking.http://poshcode.org/1205

PowerShell Code Repository - LibraryChart
Defines functions for wokring with Microsoft Chart Control for .NET 3.5 Framework.Pipe output to Out-Chart function and specify chart type. Chart will display in form or save to image file. Real-time charts are supported by passing in a script block. Updated to fix line chart. Line Chart XAxis needs tweaking.http://poshcode.org/1330

PowerShell Code Repository - LibraryChart
Defines functions for wokring with Microsoft Chart Control for .NET 3.5 Framework.Pipe output to Out-Chart function and specify chart type. Chart will display in form or save to image file. Real-time charts are supported by passing in a script block. Updated to fix line chart. Line Chart XAxis needs tweaking.http://poshcode.org/1598

PowerShell Code Repository - LibraryMSCS
Although Windows Server 2008 R2/Powershell 2.0 includes a FailoverClusters module, it only works on a machine running cluster service and NOT against Windows 2003/2008 clusters. This script provides a library functions for working with Microsft Cluster Services (MSCS) using the WMI MSCluster* class. Base class properties are extended with additional info from association classes.http://poshcode.org/2886

PowerShell Code Repository - LibraryMSCS
Although Windows Server 2008 R2/Powershell 2.0 includes a FailoverClusters module, it only works on a machine running cluster service and NOT against Windows 2003/2008 clusters. This script provides a library functions for working with Microsft Cluster Services (MSCS) using the WMI MSCluster* class. Base class properties are extended with additional info from association classes.http://poshcode.org/2421

PowerShell Code Repository - LibraryMSCS
Although Windows Server 2008 R2/Powershell 2.0 includes a FailoverClusters module, it only works on a machine running cluster service and NOT against Windows 2003/2008 clusters. This script provides a library functions for working with Microsft Cluster Services (MSCS) using the WMI MSCluster* class. Base class properties are extended with additional info from association classes.http://poshcode.org/2426

PowerShell Code Repository - LibraryMSCS
Although Windows Server 2008 R2/Powershell 2.0 includes a FailoverClusters module, it only works on a machine running cluster service and against Windows 2003/2008 clusters. This script provides a library functions for working with Microsft Cluster Services (MSCS) using the WMI MSCluster* class. Base class properties are extended with additional info from association classes.http://poshcode.org/2420

PowerShell Code Repository - List AD Computers CSV
This script will list all computer objects (and some information about them) into a CSV file. The “Ping Status” and various information items are determined through WMI. Some filtering is done for special characters that regularly appear in the Operating System Caption entry and the hardware Vendor entry. This is largely the same as the List AD Computers XLS script, but is intended for use on systems that do not have Excel installed. The CSV file that is produced can easily be imported into Excel and re-saved as an XLS at a later time if required.http://poshcode.org/2935

PowerShell Code Repository - List AD Computers XLS
This script will list all computer objects (and some information about them) directly into an MS Excel spreadsheet. The Excel object is created using COM and the “Ping Status” and various information items are determined through WMI. Some filtering is done for special characters that regularly appear in the Operating System Caption entry and the hardware Vendor entry. http://poshcode.org/2934

PowerShell Code Repository - List AddRemovePrograms
This script creates a WMI Class Win32_AddRemovePrograms (and, on 64bit systems, a Win32_AddRemovePrograms32 for 32bit apps) which are backed by the registry provider. They can then be queried to list installed apps (and versions) and perform much faster than running the same queries using the PowerShell Registry provider. Additionally, they can be used in GPO policies, etc.http://poshcode.org/2470

PowerShell Code Repository - List DHCP Clients
Function to list all clients in a Microsoft DHCP server database. The script Uses P/Invoke function signatures, structs & ports the DhcpEnumSubnetClients() C# code example to PowerShell from PInvoke.net. There is no other (nice!) way to get this information in an object form, other than scraping the output from netsh.exe.http://poshcode.org/1477

PowerShell Code Repository - LoadModuleConfig
Module aware local user configuration settings generator, loader, and exporter setup that invokes during module import. Unlike a module’s PrivateData this was created for storing user/project settings that wouldn’t change with module versions (like default param values the user would get tired of passing). And instead of doing xml creation and parsing manually it makes use of import/export CliXml.http://poshcode.org/1601

PowerShell Code Repository - LoadModuleConfig
Module aware local user configuration settings generator, loader, and exporter setup that invokes during module import. Unlike a module’s PrivateData this was created for storing user/project settings that wouldn’t change with module versions (like default param values the user would get tired of passing). And instead of doing xml creation and parsing manually it makes use of import/export CliXml.http://poshcode.org/1603

PowerShell Code Repository - LoadModuleConfig
Module aware local user configuration settings generator, loader, and exporter setup that invokes during module import. Unlike a module’s PrivateData this was created for storing user/project settings that wouldn’t change with module versions (like default param values the user would get tired of passing). And instead of doing xml creation and parsing manually it makes use of import/export CliXml.http://poshcode.org/1604

PowerShell Code Repository - LoadModuleConfig
Module aware local user configuration settings generator, loader, and exporter setup that invokes during module import. Unlike a module’s PrivateData this was created for storing user/project settings that wouldn’t change with module versions (like default param values the user would get tired of passing). And instead of doing xml creation and parsing manually it makes use of import/export CliXml.http://poshcode.org/1608

PowerShell Code Repository - Local Software Inventory
This script will create (using COM) an MS Excel spreadsheet of all the software installed on the local machine. Basic information about the software, as provided in the registry, is also included. When the script has completed the data collection, all columns are set to “Auto Fit” for width and blank rows in the spreadsheet are removed.http://poshcode.org/2940

PowerShell Code Repository - Modal File Dialogs
There are problems with displaying modal dialogs from PowerShell in XP SP3. When the ShowDialog() method is called, the dialog is not modal and is behind the PowerShell window. To solve this problem, you need to add a class that implements System.Windows.Forms.IWin32Window and instantiate that class with the handle to the main window of the running process, and then pass that handle as a parameter to the ShowDialog() method to make the dialog act modally.http://poshcode.org/2002

PowerShell Code Repository - MoveMailboxBySize
This script was developed to assist a customer with moving customizable batches of users, starting smallest mailboxes first in batches, and move them into datastores sorted by last name. This script is modular and can be extended to different filtering mechanisms, or a different datastore sorting criteria.http://poshcode.org/2029

PowerShell Code Repository - mstsc-Ac.ps1
Pings a host until it responds, tries to connect to the RDP port, and then when that succeeds, launches a remote desktop connection via mstsc.exe. I discuss this version here http://www.justaprogrammer.net/2012/01/07/making-an-rdp-connection-to-a-server-you-just-rebooted-with-powershell/http://poshcode.org/3154

PowerShell Code Repository - Netapp SDK
Here is a handful of functions that I use to manage netapp appliances. The code could be improved in several ways, but I think it is a good starting point and functions as a good set of examples for those interested in using the ontap SDK in powershell.http://poshcode.org/2467

PowerShell Code Repository - Netapp SDK
Here is a handful of functions that I use to manage netapp appliances. The code could be improved in several ways, but I think it is a good starting point and functions as a good set of examples for those interested in using the ontap SDK in powershell.http://poshcode.org/1323

PowerShell Code Repository - New-AdUser
Here is a function to create an Active Directory user. This function doesn’t do nearly everything that the Quest AD cmdlet can do, however it does provide user password configuration options such as setting the ‘User cannot change password’ and ‘Password never expires’ flags. The new AD account is enabled by default when created.http://poshcode.org/2430

PowerShell Code Repository - New-AdUserAccount
Here is a function to create an Active Directory user. This function doesn’t do nearly everything that the Quest AD cmdlet can do, however it does provide user password configuration options such as setting the ‘User cannot change password’ and ‘Password never expires’ flags. The new AD account is enabled by default when created.http://poshcode.org/2431

PowerShell Code Repository - New-ISEScript.ps1
just a quick re-write of gmagerr’s Powershell Template script to enable his template to create Powershell ISE help-comment based structure which I often use; I just put this function into an add-isemenu custom menu array. Thanks to gmagerr for the structure I just added a couple of things (most of which work fine!). thx for the base gmagerr. http://poshcode.org/2101

PowerShell Code Repository - New-LinkedClone
PowerCLI script to create linked clones on an ESX server (does require vCenter). This feature is not normally supported on ESX, so this is a pretty nifty thing to do if you like living dangerously. Info on linked clones: http://www.vmware.com/support/ws55/doc/ws_clone_overview.html#wp1028798.http://poshcode.org/1549

PowerShell Code Repository - New-ObjectRecursive.ps1
I saw few questions about this functionality on VUG, so I decided to give it a try and create function that would allow user to created object with nested objects. I needed to have also possibility to define type of nested object, so I’ve used key in hashtable to define it, if exists. Works fine now with Windows.Forms :) Meanwhile I’ve noticed Karl already produced another script that does similar things. Oh, well, maybe that will be also handy for somebody. :)http://poshcode.org/2523

PowerShell Code Repository - New-ObjectRecursive.ps1
I saw few questions about this functionality on VUG, so I decided to give it a try and create function that would allow user to created object with nested objects. I needed to have also possibility to define type of nested object, so I’ve used key in hashtable to define it, if exists. Works fine now with Windows.Forms :) Meanwhile I’ve noticed Karl already produced another script that does similar things. Oh, well, maybe that will be also handy for somebody. :)http://poshcode.org/2527

PowerShell Code Repository - New-Password
The ultimate template-based password generator. Example usage: New-Password Cvcvc.## generates a memorable 8 character password with uppercase, lowercase, punctuation and a number. Of course, since these passwords are templated, they are arguably easier to crack (if someone knows your template), but of course, you can generate purely random passwords using New-Password ******** or you can vary the length of the password by allowing variable numbers of characters in your template: New-Password "Cv3c2v3c#4"http://poshcode.org/1610

PowerShell Code Repository - New-Password 1.1
The ultimate template-based password generator. Example usage: New-Password Cvcvc.## generates a memorable 8 character password with uppercase, lowercase, punctuation and a number. Of course, since these passwords are templated, they are arguably easier to crack (if someone knows your template), but of course, you can generate purely random passwords using New-Password ******** or you can vary the length of the password by allowing variable numbers of characters in your template: New-Password "Cv3c2v3c#4"http://poshcode.org/1611

PowerShell Code Repository - New-PInvoke
A fixed version of the New-PInvoke function that’s in the Windows 7 resource kit (PowerShellPack) PSCodeGen module. This one has correct documentation and a better example. It also generates a (global) PowerShell wrapper function so you can call the API function easily.http://poshcode.org/1409

PowerShell Code Repository - New-XML
This is a first stab at creating a little DSL to generate XML. Note that I used System.Linq.XML (and output an XDocument) instead of the old XmlDocument… This means you have to have .Net 3.5 (LINQ) installed. It also means that if you want to be able to use the output via PowerShell’s magic XML dot-notation, you have to cast it to XmlDocument, just write: [xml]$xml = New-XML ...http://poshcode.org/1233

PowerShell Code Repository - New-XSD
Generates an XSD File with SQLXML annotations for a Powershell object. The XSD file can be used with SQLXML Assembly or COM-based to automatically create a SQL table and import the XML. Use in conjunction with New-XML. See article at http://www.sqlservercentral.com/articles/powershell/65196/ for example.http://poshcode.org/841

PowerShell Code Repository - NewUser in AD/OCS/Email
A Powershell Script meant for a novice to understand how to work with Variables. I use it daily. Creates a user via Exchange 2007 and automatically populates the email address by defined policy. Using supplied scriptlets (referenced in PS1 file) it also populates the Users’ info in OCS 2007 R2 standard as well as populates all fields in A/D with pertinent info. It also sets up the Display name in a Lastname, Firstname format and creates the users home folder with permissions allocated to the user only. The only information it requests is Firstname, Lastname and Password. It is easy to modify to make it a bulk user setup. Thank you Jeffrey Snover and Microsoft for Powershell! The Manna to Administrators Everywherehttp://poshcode.org/2469

PowerShell Code Repository - NewUser in AD/OCS/Email
A Powershell Script meant for a novice to understand how to work with Variables. I use it daily. Creates a user via Exchange 2007 and automatically populates the email address by defined policy. Using supplied scriptlets (referenced in PS1 file) it also populates the Users’ info in OCS 2007 R2 standard as well as populates all fields in A/D with pertinent info. It also sets up the Display name in a Lastname, Firstname format and creates the users home folder with permissions allocated to the user only. The only information it requests is Firstname, Lastname and Password. It is easy to modify to make it a bulk user setup. Thank you Jeffrey Snover and Microsoft for Powershell! The Manna to Administrators Everywherehttp://poshcode.org/1491

PowerShell Code Repository - Page-Output 1.1
This is like a (very simple) “more” script for PowerShell … the problem with it is that you’re paging by a count of objects, not by how many lines of text they’ll output … so the paging doesn’t really work except for format-table output … unless you specify it manually. However, this script provides you with “an option” if you want to have paging and still be able to use a script to color the output based on context or syntax.http://poshcode.org/175

PowerShell Code Repository - Parse nmap XML output
A PowerShell script into which one or more nmap XML output file objects can be piped, then the script emits synthetic objects representing port-scanned hosts from the XML file(s). Get Windows and Linux versions of the nmap scanner for free from http://nmap.org. Get a sample nmap XML file to play with and see some examples of using the script at https://blogs.sans.org/windows-security/2009/06/11/powershell-script-to-parse-nmap-xml-output/ http://poshcode.org/1179

PowerShell Code Repository - Password Gen Form V2
Update to original password generator form (http://gallery.technet.microsoft.com/scriptcenter/54c3832a-4d20-4d6e-81ac-2d6f7bc10bfe). Uses WPF as opposed to Windows Forms to create the front end UI. Able to generate passwords and allows printing of the form or just display the password. Password is copied to clipboard so you can paste it into a password reset dialog. Password is also cleared from clipboard when form is closed.http://poshcode.org/2794

PowerShell Code Repository - Pause-Script & Out-More
Two functions, one that emulates the pause functionality from cmd.exe, and one that gives similar functionality to more.com. Out-More is especially useful if you’re doing something like “gc somefile.txt | Out-More” because it starts outputting text to the screen immediately instead of waiting for the entire file to be read, which is what happens if you do “gc somefile.txt | more”. Out-More can also be used for other objects besides.http://poshcode.org/613

PowerShell Code Repository - Pivot-Object
Takes a series of objects (like the converted input from csv) where there are a series of objects (rows) that actually define the same object, and there is (at least) one property which is a unique identifier (and appears on each object), and there are two properties which are a name and value pair defining additional properties ... and outputs new objects which merge the objects and add the name-value pairs as new properties.http://poshcode.org/885

PowerShell Code Repository - PoshCode ISE Addon
This is the final version of PoshCode ISE addon for uploading scripts to PoshCode.org from PowerShell ISE. You can upload scripts in two ways. First method is to select all or part of the script and upload it by pressing CTRL+ALT+C. And, the second method is to just press CTRL+ALT+C. This way you can upload all contents without any selection.http://poshcode.org/2254

PowerShell Code Repository - PoshCode ISE Addon
This is the final version of PoshCode ISE addon for uploading scripts to PoshCode.org from PowerShell ISE. You can upload scripts in two ways. First method is to select all or part of the script and upload it by pressing CTRL+ALT+C. And, the second method is to just press CTRL+ALT+C. This way you can upload all contents without any selection.http://poshcode.org/2255

PowerShell Code Repository - PowerBot 2.0
PowerBot is my IRC bot written in PowerShell script using SmartIrc4Net There’s a bit more to it than this, but this is the basic script, and all you have to do is add your own commands! Of course, you could also add your own additional message handlers and make a chatter-bot or whatever you like. Please share your mods back here!http://poshcode.org/1236

PowerShell Code Repository - PowerBot 2.0
PowerBot is my IRC bot written in PowerShell script using SmartIrc4Net There’s a bit more to it than this, but this is the basic script, and all you have to do is add your own commands! Of course, you could also add your own additional message handlers and make a chatter-bot or whatever you like. Please share your mods back here!http://poshcode.org/2317

PowerShell Code Repository - PowerBot 2.0
PowerBot is my IRC bot written in PowerShell script using SmartIrc4Net There’s a bit more to it than this, but this is the basic script, and all you have to do is add your own commands! Of course, you could also add your own additional message handlers and make a chatter-bot or whatever you like. Please share your mods back here!http://poshcode.org/2510

PowerShell Code Repository - PowerBot 2.0
PowerBot is my IRC bot written in PowerShell script using SmartIrc4Net There’s a bit more to it than this, but this is the basic script, and all you have to do is add your own commands! Of course, you could also add your own additional message handlers and make a chatter-bot or whatever you like. Please share your mods back here!http://poshcode.org/727

PowerShell Code Repository - PowerOAuth 1.1
This is the second release, but still very raw. Supports OAuth via Installed Application Authentication (a modified form of OAuth where the consumer fetches access tokens using a username and password instead of a request token) ... now includes a sample app for fetching stuff off Yammer.http://poshcode.org/2376

PowerShell Code Repository - powershell ise config
Enable LegacyV2RuntimeActivation so that BitsTransfer and SQLPS will work in the new .Net 4 PowerShell ISE (this config file is REQUIRED for PowerShell 3 CTP1 to work with those modules and other down-level .Net 2 modules). Save as C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe.confighttp://poshcode.org/2969

PowerShell Code Repository - Powershell Only Outlook
My first contribution. I am crazily thinking of doing a “Powershell Only” day. The first task is to figure out how to manipulate Outlook through PowerShell. The submitted script hits my Outlook inbox and goes through the inbox and each subfolder and retrieves the unread emails from it. It then goes through my task list and gets all the incomplete tasks. This was my first time using a status bar and definitely the first for making anything outside the scripting games public. I’d hate to get finished with the Outlook “module” and find out I could have saved myself a lot of time, so I through the script as it is now on the mercy of the court. Proceed with your red pens…http://poshcode.org/2695

PowerShell Code Repository - PowerShell Template
I created this function to generate a new PowerShell Script template. It will prompt for the name of the script you want to create (don’t need to add the .ps1 extension) and the email (don’t need to add email) then it will create the template in the C:\Scripts directory (Dir should already exist)http://poshcode.org/2272

PowerShell Code Repository - Profile Function
I have this function in my powershell profile. It will ask me if i want to start a transcript when I launch Posh. There’s some conditional logic, it’ll ask if you want to start the transcript. If you say yes it’ll check to see if the Transcripts folder exists, if it doesn’t it’ll be created. Pretty cool. Got the main part of the code from Shay Levy’s site and modified it.http://poshcode.org/1848

PowerShell Code Repository - PROMPT: Battery life
Just a simple little script which looks at the current charge left in your battery and puts it above your prompt. Adjust when it comes on with $GLOBAL:BatteryDisplayAtPercent, by default it’s 101 which shows when it’s charging on down. Why 101? Because when you charge a battery you supply more capacity then it has, so the % will always be >100. http://poshcode.org/738

PowerShell Code Repository - PS2WCF
Call WCF Services with PowerShell using any binding. Generates proxy on the fly without needing any tool expect .NET 3.5. You can also discover the service endpoints, bindings and contracts. Read more on my blog: http://www.iLoveSharePoint.comhttp://poshcode.org/745

PowerShell Code Repository - PS2WCF
Call WCF Services with PowerShell using any binding. Generates proxy on the fly without needing any tool expect .NET 3.5. You can also discover the service endpoints, bindings and contracts. Read more on my blog: http://www.iLoveSharePoint.comhttp://poshcode.org/746

PowerShell Code Repository - PS2WCF
Call WCF Services with PowerShell using any binding. Generates proxy on the fly without needing any tool expect .NET 3.5. You can also discover the service endpoints, bindings and contracts. Read more on my blog: http://www.iLoveSharePoint.comhttp://poshcode.org/747

PowerShell Code Repository - PS2WCF
Call WCF Services with PowerShell using any binding. Generates proxy on the fly without needing any tool expect .NET 3.5. You can also discover the service endpoints, bindings and contracts. Read more on my blog: http://www.iLoveSharePoint.com – small correction – extraneous [void] removed.http://poshcode.org/3215

PowerShell Code Repository - Publish-File
Use this to upload one or more files to a SharePoint document library. Should also work with any WebDAV service, although that hasn’t been tested. The filename parameter expects fileinfo objects. Easiest way to do so is to pass them on the pipeline from Get-ChildItem. This script is a refinement of a technique that I first saw here: http://blogs.flexnetconsult.co.uk/colinbyrne/PermaLink,guid,a326572f-8f78-4c80-86d5-1fe52cbd6fe5.aspx.http://poshcode.org/2122

PowerShell Code Repository - Publish-File
Use this to upload one or more files to a SharePoint document library. Should also work with any WebDAV service, although that hasn’t been tested. The filename parameter expects fileinfo objects. Easiest way to do so is to pass them on the pipeline from Get-ChildItem. This script is a refinement of a technique that I first saw here: http://blogs.flexnetconsult.co.uk/colinbyrne/PermaLink,guid,a326572f-8f78-4c80-86d5-1fe52cbd6fe5.aspx.http://poshcode.org/2356

PowerShell Code Repository - push-module function v2
push-module will import a powershell v2.0 module and ensure that when the module is removed using remove-module, the functions the module clobbered are restored. UPDATE: previous version restored (promoted to global scope) clobbered functions that were visible from push-module function scope; this is wrong – it should only restore global functions.http://poshcode.org/1773

PowerShell Code Repository - Read Gmail POP
This script is a proof of concept. Further work needs to be done. It requires the user to enter a valid username and password for a gmail.com account. It then attempts to form an SSL connection with the server, and, retrieve the first email. Unfortunately it returns random results. Perhaps someone can improve upon it with some more sockets knowledge than I have.http://poshcode.org/3195

PowerShell Code Repository - Remove Disabled AD Users
This script is a simple one that is meant to be scheduled on a periodic basis (we do it weekly). It looks inthe OU where we put our disabled AD users and removes users that have not logged in (inactive) for 400 days. This allows us to keep terminated employees disabled users for over a year for auditing purposes, but automatically cleans them out once the annual scope has passed.http://poshcode.org/3163

PowerShell Code Repository - Remove-LocalProfile
This is script will first ask for a computername and then will scan the Win32_UserProfile WMI class and present the user with all of the possible user profiles to remove. After the profile has been deleted, the user has a choice to continue to remove another profile or quit. This script will only work against Vista and above client OS’s and Window 2008 and above server OS’s, but can be ran from any OS that has PowerShell installed.http://poshcode.org/2477

PowerShell Code Repository - Remove-LocalProfile
This is script will first ask for a computername and then will scan the Win32_UserProfile WMI class and present the user with all of the possible user profiles to remove. After the profile has been deleted, the user has a choice to continue to remove another profile or quit. This script will only work against Vista and above client OS’s and Window 2008 and above server OS’s, but can be ran from any OS that has PowerShell installed.http://poshcode.org/2478

PowerShell Code Repository - Script-Object.ps1
A powershell script that will create the CREATEDDL for any object in a SQL Server database. It requires the open source Atlantis.SchemaEngine.dll available at http://www.atlantis-interactive.co.uk/blog/post/2011/02/24/Free-SQL-Server-Schema-Synchronisation-Engine-announcing-the-release-of-the-AtlantisSchemaEngine-source-code.aspxhttp://poshcode.org/2584

PowerShell Code Repository - Script-Object.ps1
A powershell script that will create the CREATEDDL for any object in a SQL Server database. It requires the open source Atlantis.SchemaEngine.dll available at http://www.atlantis-interactive.co.uk/blog/post/2011/02/24/Free-SQL-Server-Schema-Synchronisation-Engine-announcing-the-release-of-the-AtlantisSchemaEngine-source-code.aspxhttp://poshcode.org/2585

PowerShell Code Repository - Script-Object.ps1
A powershell script that will create the CREATEDDL for any object in a SQL Server database. It requires the open source Atlantis.SchemaEngine.dll available at http://www.atlantis-interactive.co.uk/blog/post/2011/02/24/Free-SQL-Server-Schema-Synchronisation-Engine-announcing-the-release-of-the-AtlantisSchemaEngine-source-code.aspxhttp://poshcode.org/2587

PowerShell Code Repository - Script-Object.ps1
A powershell script that will create the CREATEDML for any object in a SQL Server database. It requires the open source Atlantis.SchemaEngine.dll available at http://www.atlantis-interactive.co.uk/blog/post/2011/02/24/Free-SQL-Server-Schema-Synchronisation-Engine-announcing-the-release-of-the-AtlantisSchemaEngine-source-code.aspxhttp://poshcode.org/2583

PowerShell Code Repository - Search AD Forest
This is essentially a snap-in for an existing script that leverages Active Directory. Typically, you’ll be working with AD objects in your own domain; however, in some instances you may need to work with AD objects that are in a different domain within your forest. This code snippet allows the flexibility to drop in an existing domain-based script and either run it on all domains in the forest (no command line arguments) or a single domain in the forest that matches a command line argument placed into a Where-Object filter.http://poshcode.org/2933

PowerShell Code Repository - Select-CSVString
hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_hacked by SnL_ayaz_vhttp://poshcode.org/1615

PowerShell Code Repository - Select-EnumeratedTypeUPDATED 2010/10/28: Visually create an instance of an enum with an easy to use menu system. Supports both single value enumerated types and bitmask (flags) enums. Also supports dynamic inline help for enumerated values (help works with powershell.exe host only – ISE is buggy.) PowerShell 2.0 required. This uses uses the new to v2 IHostUISupportsMultipleChoiceSelection interface. http://poshcode.org/2327

PowerShell Code Repository - Select-EnumeratedType
Visually create an instance of an enum with an easy to use menu system. Supports both single value enumerated types and bitmask (flags) enums. Also supports dynamic inline help for enumerated values (help works with powershell.exe host only – ISE is buggy.) PowerShell 2.0 required. This uses uses the new to v2 IHostUISupportsMultipleChoiceSelection interface. http://poshcode.org/2320

PowerShell Code Repository - Select-Random v2.1
Select a user-defined number of random elements from the collection … which can be passed as a parameter or input via the pipeline. An improvement over http://www.powershellcentral.com/scripts/60 which allows you to select more than one item, and doesn’t copy the full collection into RAM. (Also, a bug fix for http://www.powershellcentral.com/scripts/81)http://poshcode.org/83

PowerShell Code Repository - Select-Random v2.2
Select a user-defined number of random elements from the collection … which can be passed as a parameter or input via the pipeline. An improvement over http://www.powershellcentral.com/scripts/60 which allows you to select more than one item, but offers the option to collect the pipeline into RAM to trade speed for memory use (replaces 81 and 83).http://poshcode.org/118

PowerShell Code Repository - Send-SmtpMessage
Send an email via the GMail SMTP server (or any server, really, but there’s some extra code in here and defaults that will make it work with Gmail so you won’t have to do research). NOTE: there’s a Send-SmtpMail in PSCX, but as far as I can tell, there’s no way to convince it to use SSL so I can’t get it to work with Gmail at all.http://poshcode.org/180

PowerShell Code Repository - Server checks
A script to ping servers (gets the servers from a text file) & report whether they are online or offline, to check free disks space on all servers and to report on any services which are set to automatic startup but are in a stopped state. It puts all this on a nicely formatted excel sheet, then saves a copy as H:\dailychecks\checks_todaysdate.xls (so if I’m not in I can review it later). It also launches my web browser (my home page is set to my company’s site) so that I can check the site is up, and it imports the exchange modules as I intend eventually to add another sheet to check Exchange services, when I can figure out how to do it. http://poshcode.org/3070

PowerShell Code Repository - Set-FSMORoleOwner
This advanced function allows you to transfer or seize the FSMO roles to a specified Domain Controller. Has support for -Whatif and -Confirm to avoid making a mistake with transferring the roles. Also can display the current owners after the action has completed using -PassThru.http://poshcode.org/2728

PowerShell Code Repository - Set-ToStringMethod
Using created on-the-fly ps1xml it will change .ToString() method of a given type to scriptblock provided by user. No checking performed so you may end up with completely useless ToString() method. But since default one (if I’m not mistaken inherited from System.Object) is as useless as possible (returns object’s type fullname, see examples for output before after, you will get the picture… ;)http://poshcode.org/2546

PowerShell Code Repository - SharpSsh Functions
A few wrapper functions to make working with the SSH portion of SharpSSH easier: New-SshSession, Invoke or Send Ssh commands, Receive output, all with support for “Expect” ... which means we’ll continue reading from the ssh output until we see the expected output, and then stop.http://poshcode.org/877

PowerShell Code Repository - Show-ADObject
This is a modification of the Get-ADMapObject (http://poshcode.org/706). This script uses the Show-NodeXLMap script (http://poshcode.org/733) to display the hierarchical relationship between Active Directory objects of the selected classes. Running this script with the -ShowADClass switch lists out the different classes or types of AD objects available.http://poshcode.org/734

PowerShell Code Repository - Show-NodeXLMap
Update version of Doug Finke’s Show-NetMap script (http://www.dougfinke.com/blog/?p=465). The NetMap research project has been renamed to NodeXL and is available on Codeplex (http://www.codeplex.com/nodexl). This script is updated to use the new code and adds support for adding color to the map points. http://poshcode.org/733

PowerShell Code Repository - Sith
The VBS script is intended to audit an Active Directory Domain Controller by the events that it generates in the event log. Most usefull events are harvested and piped out into a report that will also generate a summary report of the main report and also e-mail the report to an admin.http://poshcode.org/2650

PowerShell Code Repository - Sith Remote logon mon
This VBS script will notify the user who is running the script by e-mail when a remote windows7 machine is in the process of being unlocked. The script is an active running script that will run as a continuous process until killed from the process monitor window. The script will not work if the host or target machine is offline.http://poshcode.org/2651

PowerShell Code Repository - Speech Recognition
This is an update to my “Speech.psm1” script module for doing voice/speech recognition. With this version, speech macros will be executed asynchronously, so it doesn’t tie up the shell for the duration :) Of course, if the shell is actually BUSY, it will delay execution of macros. See usage examples at the bottom of the script.http://poshcode.org/1173

PowerShell Code Repository - Speech Recognition
This is an update to my “Speech.psm1” script module for doing voice/speech recognition. With this version, speech macros will be executed asynchronously, so it doesn’t tie up the shell for the duration :) Of course, if the shell is actually BUSY, it will delay execution of macros. See usage examples at the bottom of the script.http://poshcode.org/2671

PowerShell Code Repository - Split-Job
The Split-Job function provides easy multithreading at the command line or in a script. It was created from a system administrator’s point of view and is compatible with PS v1. Supports importing functions, variables and snapins. For history and background please visit http://www.jansveld.net/powershell.http://poshcode.org/2619

PowerShell Code Repository - Split-Job Version 1.2
The Split-Job function provides easy multithreading at the command line or in a script. It was created from a system administrator’s point of view and is compatible with PS v1. Supports importing functions, variables and snapins. For history and background please visit http://www.jansveld.net/powershell.http://poshcode.org/2620

PowerShell Code Repository - Start-AppVTestMode
This Script allows testing of newly sequenced App-V apps without having to specify the file:// URL in the OSD, or distributing via the App-V infrastructure or SCCM. It scans a directory and loads all XML manifests for app-v packages in that directory, overriding the default distribution URLs.http://poshcode.org/2089

PowerShell Code Repository - Start-Demo 3.3
This is an overhaul of Jeffrey Snover’s original Start-Demo script … I’ve switched it to use ReadKey, which saves you some typing and makes the whole thing seem more natural when you’re demoing, (at least to me). I’ve also added a bunch of command-line options and a couple of features in the process (see the Revision History in the script).http://poshcode.org/176

PowerShell Code Repository - Start-Demo 3.3.1
This is an overhaul of Jeffrey Snover’s original Start-Demo script … I’ve switched it to use ReadKey, which saves you some typing and makes the whole thing seem more natural when you’re demoing, (at least to me). I’ve also added a bunch of command-line options and a couple of features in the process (see the Revision History in the script).http://poshcode.org/302

PowerShell Code Repository - Start-Demo 3.3.2
This is an overhaul of Jeffrey Snover’s original Start-Demo script … I’ve switched it to use ReadKey, which saves you some typing and makes the whole thing seem more natural when you’re demoing, (at least to me). I’ve also added a bunch of command-line options and a couple of features in the process (see the Revision History in the script).http://poshcode.org/690

PowerShell Code Repository - Start-Demo 3.3.3
This is an overhaul of Jeffrey Snover’s original Start-Demo script … I’ve switched it to use ReadKey, which saves you some typing and makes the whole thing seem more natural when you’re demoing, (at least to me). I’ve also added a bunch of command-line options and a couple of features in the process (see the Revision History in the script).http://poshcode.org/705

PowerShell Code Repository - Test-IsAdmin
This Advanced Function will look to see if the current user context running a command/script is an Administrator or not. If not, a menu is presented to the user to either continue or enter alternate credentials. The function will either return a credential object of the alternate credential or a string type stating that the current user context will be used.http://poshcode.org/2667

PowerShell Code Repository - Time-Stamp
This is a very simple function that returns a DateTime time stamp. I use it in scripts for noting times when actions occur like this Write-Host “$(Time-Stamp): Attempting to create directory.”; It’s a lot shorter than writing out the whole thing. You can also alias it to simplify the process: New-Alias -Name ts -Value Time-Stamp;. This way I use Write-Host “$(ts): Attempting to create directory.”; It outputs: 2011.07.17 05:01:10: Attempting to create directory. You can alter the value in the ToString to change the way the time stamp is formatted.http://poshcode.org/2795

PowerShell Code Repository - Timespan SMTP Headers
This reads in a set of SMTP headers, and displays the MTA’s the message passed through, in chronological order, and calculates and displays the message latency (time it spent there) between each one. The latency for the first received header as well as the total message time is calculated from the Date: header timestamp on the email. MTAs with out-of-sync clocks should show up as negative latencies, or a mismatch between the accumulated lantencies and the calculated total time.http://poshcode.org/879

PowerShell Code Repository - Transparent Glass Posh
An AutoIT script to make Powershell’s (and cmd.exe’s) Window use the transparent glass effect. Compile with Autoit. Program does not have a task bar button or tray icon, so only run once (from like the startup folder) and close via task manager or powershell’s ‘kill’ command. Set background color to black and foreground text color to white in cmd and powershell or it won’t look right. Also seems to work best with dark blue aero scheme, the default light blue scheme doesn’t look as good. http://poshcode.org/1308

PowerShell Code Repository - User Entitlement Auditor
Script used to perform user entitlement audits based on an XML report containing local groups, members of the local groups and systems that house the local groups. The script joins that data to data containing users and global groups grabbed directly from AD using the Quest AD Cmdlets and outputs the final report in CSV. Sorry that not everything is documented as I’d like it to be.http://poshcode.org/3068

PowerShell Code Repository - VHDFunctions.psm1
Here’s several functions for working with VHD’s in Windows 7 and Windows Server 2008 R2. I’ve been working with PowerShell for about a year and this is my first go at a module. I’m a sysadmin and not a developer so some of my solutions are in that mode of thinking. There’s probably .NET ways to accomplish what I did and I’m certainly open to learning if there’s a better way. I’ve found these functions useful and hopefully someone else out there will too. Enjoy.http://poshcode.org/1451

PowerShell Code Repository - VHDFunctions.psm1
Here’s several functions for working with VHD’s in Windows 7. I’ve been working with PowerShell for about a year and this is my first go at a module. I’m a sysadmin and not a developer so some of my solutions are in that mode of thinking. There’s probably .NET ways to accomplish what I did and I’m certainly open to learning if there’s a better way. I’ve found these functions useful and hopefully someone else out there will too. Enjoy.http://poshcode.org/1449

PowerShell Code Repository - VI Report
export various information into Microsoft Word using PowerShell and the VI Toolkit, this is completely risk free and does not alter anything, just feed it your VI server name and sit back, it can also be used as a scheduled task and even set to email you a word attachment.http://poshcode.org/551

PowerShell Code Repository - VMware guest information
I needed to write a script to generate a VMware guest inventory so I needed to know what was available within the PowerCLI interface and where to find it. So I wrote this script to dump everything it could find about a single VMware guest. It has proved very useful to me. I hope others will also find it useful.http://poshcode.org/3129

PowerShell Code Repository - VMware Host Network Info
The following script will add some nice host network information into an object which is exported to a csv file for passing to the network guys or can be used to find your server in that mess of cables that are always meaning to be tidied in the data center. – Added VSwitch, Num of VSwitch Ports and Num of VSwitch ports in usehttp://poshcode.org/872

PowerShell Code Repository - VMWare Quick Migration
Performs the functional equivalent of a Hyper-V Quick Migration by suspending a VM, moving it to a new host, and resuming it. This does not require vMotion licensing. It works by providing required VM objects via the pipeline or the second argument, and specifying the Destination host in the first argument, so you can use whatever query you want to build a list of VM’s to send to the command.http://poshcode.org/1835

PowerShell Code Repository - VMWare Quick Migration
Performs the functional equivalent of a Hyper-V Quick Migration by suspending a VM, moving it to a new host, and resuming it. This does not require vMotion licensing. It works by providing required VM objects via the pipeline or the second argument, and specifying the Destination host in the first argument, so you can use whatever query you want to build a list of VM’s to send to the command.http://poshcode.org/1246

PowerShell Code Repository - VMWare Quick Migration
Performs the functional equivalent of a Hyper-V Quick Migration by suspending a VM, moving it to a new host, and resuming it. This does not require vMotion licensing. It works by providing required VM objects via the pipeline or the second argument, and specifying the Destination host in the first argument, so you can use whatever query you want to build a list of VM’s to send to the command.http://poshcode.org/1247

PowerShell Code Repository - VMWare Quick Migration
Performs the functional equivalent of a Hyper-V Quick Migration by suspending a VM, moving it to a new host, and resuming it. This does not require vMotion licensing. It works by providing required VM objects via the pipeline or the second argument, and specifying the Destination host in the first argument, so you can use whatever query you want to build a list of VM’s to send to the command.http://poshcode.org/1248

PowerShell Code Repository - VMWare Quick Migration
Performs the functional equivalent of a Hyper-V Quick Migration by suspending a VM, moving it to a new host, and resuming it. This does not require vMotion licensing. It works by providing required VM objects via the pipeline or the second argument, and specifying the Destination host in the first argument, so you can use whatever query you want to build a list of VM’s to send to the command.http://poshcode.org/1249

PowerShell Code Repository - where-in
where-in and where-propertyin are filters that allow to pass through pipeline object that are in a specified array/collection, or that have a property that is in an array or collection. They also can take a scriptblock that can be used to implement a comparision when the relationship isn’t exact. in that scriptblock the variable $__ is created to represent the item in the collection being compared with the pipeline $_ object. see examples embedded.http://poshcode.org/2512

PowerShell Code Repository - Wireless Signal Strength
There are a couple scripts that parse netsh commands. I didn’t see this one already done, so I couldn’t steal it. I suppose I could use some regex or something simple to cut the whitespace, so feel free to “fix her up”, but this got the job done (of putting the netsh output into an object). This is a snip from a larger script I wrote as a looping, recording monitor. I used this guy’s script for inspiration: http://poshcode.org/1731http://poshcode.org/2757

PowerShell Code Repository - WPK_TunnelGradient
I noticed that WPF has LinearGradient and RadialGradient. Wanted something more… square in size. First tried to use something that allowed me to build brush easy, but it was hard to change it into something portable. So I just used New-Object and now you can use it in WPK, PowerBoots or Show-UI, whichever you prefer. ;) This script is building actual function and shows some demo usage + load required assemblies and makes sure we are in STA (some controls barfed at me when I tried to leave it -MTA). I only hope it’s not done already… ;) Corners are rounded, so that it looks more soft. http://poshcode.org/2664

PowerShell Code Repository - Wrapper 1 Select-String
Select-String has the funny behavior that it -Encoding parameter could be default, but Select-String uses unicode as default value. That means we do not find strings containing some western european letters like ‘äöüß’ in ansi coded files. Finally I want the choice default_or_oem, to search even my OEM850 coded files. Here I fix only the default to ‘default’ http://poshcode.org/1261

PowerShell Code Repository - WSUS Admin Module
This module allows you to manage WSUS from PowerShell. Save code as a .psm1 file and use the Import-Module command for this module. You can approve/decline updates, perform synchronizations, add/remove clients from a target group, create/delete Target groups and much more with currently 40 advanced functions. For more information about this module, please see my blog http://boeprox.wordpress.com/http://poshcode.org/2360

PowerShell Code Repository - WSUS Admin Module
This module allows you to manage WSUS from PowerShell. Save code as a .psm1 file and use the Import-Module command for this module. You can approve/decline updates, perform synchronizations, add/remove clients from a target group, create/delete Target groups and much more with currently 40 advanced functions. For more information about this module, please see my blog http://boeprox.wordpress.com/http://poshcode.org/2363

PowerShell Code Repository - WSUS-Purge.ps1
This PowerShell script is a conversion of a VB script I use to clear out leftover files from Windows Update on XP. It works on XP, Vista, Win7 and Win2k8 with a few caveates. Any OS above the Vista level has changes to the way installs and updates are stored. Please see this excellent article for more info: http://www.winvistaclub.com/f16.html and also the one linked to the bottom of that article.http://poshcode.org/2551

PowerShell Code Repository - Xml Module 3
Improves over the built-in Select-XML by leveraging Remove-XmlNamespace to provide a -RemoveNamespace parameter — if it’s supplied, all of the namespace declarations and prefixes are removed from all XML nodes (by an XSL transform) before searching. Note that this means that the returned results will not have namespaces in them, even if the input XML did. http://poshcode.org/1675

PowerShell Code Repository - Xml Module 4
Never content to leave well-enough alone, I’ve rewritten my XMLDSL with 100% less cruft. New-XDocument no longer requires the “xe” command as long as the name of your XML Element doesn’t coincide with that of a PowerShell command (if it does, you need the “xe” on the front), and namespaces can be referred to by short name like dc:creator to keep things simple. Please review the examples on New-XDocument as this is a breaking change.http://poshcode.org/1677

PowerShell Code Repository - Xml Module 4.1
Never content to leave well-enough alone, I’ve rewritten my XMLDSL with 100% less cruft. New-XDocument no longer requires the “xe” command as long as the name of your XML Element doesn’t coincide with that of a PowerShell command (if it does, you need the “xe” on the front), and namespaces can be referred to by short name like dc:creator to keep things simple. Please review the examples on New-XDocument as this is a breaking change.http://poshcode.org/1678

PowerShell Code Repository - Xml Module 4.5
My rewritten XMLDSL now has better element name handling than last time, and handles null attribute values a little more gracefully. NOTE: if you think that the statement you’re using to pass an attribute value could be null, you should really be very explicit and pass it using the colon syntax like this: -attribute:$value. Also, I fixed a bug when you only have one element.http://poshcode.org/1888