Powershell

Mapping Printers Part 2

In a previous tip we explained how you can install and map printers remotely using a low level command: rundll32 printui.dll,PrintUIEntry /in /n...

Sharing Folders

Console commands are first class PowerShell citizens, so sometimes it may be easier to use classic console commands to solve a problem. Here is a...

Executing PowerShell on Computer Lock

PowerShell can respond to system events such as locking or unlocking a session. Here is a fun sample. Provided you have your sound card turned on,...

Sending Email to Multiple Recipients

Send-MailMessage can send emails to multiple recipients. You just need to make sure the list of recipients is provided as an array. When you call...

Killing Long-Running Scripts

You can use a background thread to monitor how long a script is running, and then kill that script if it takes too long. You can even write to an...

Creating Scheduled Tasks From XML

In a previous tip, we showed how you can export a scheduled task to an XML file. Now, it's time to see how you can re-import that XML file to...

Output Scheduled Tasks to XML

Here's an easy way how you can export and dump a task that you created in "Scheduled Tasks" to XML: function Export-ScheduledTask {...

Converting Bitmaps to Icons

If you need a new icon and have no icon editor at hand, then you can take a bitmap file (create one with MS Paint if you must) and have PowerShell...

Finding Numbers in Text

Regular Expressions are a great help in identifying and extracting data from text. Here's an example that finds and extracts a number that ends...

Verbose Driver Information

In a previous tip you discovered driverquery.exe to list driver information. This tool sports a /V switch for even more verbose information....

Making Names Unique

To make a list of items or names unique, you could use grouping and then, when a group has more than one item, append a numbered suffix to these...

Home-Made Driver Query Tool

Some months ago we introduced to you the driverquery.exe tool and how to convert its output to PowerShell objects. Here's now an amazing...

Checking Text Ending with Wildcards

In a previous tip you learned how to use the string method EndsWith() to check whether a text ends with certain characters. This method does not...

Counting Log Activity

Did you know that Group-Object can analyze text-based log files for you? Here's sample code that tells you how many log entries on a given day a...

Shrinking Paths

Many file-related .NET Framework methods fail when the overall path length exceeds a certain length. Use low-level methods to convert lengthy paths...

Output to Console AND Variable

To assign results to a variable and at the same time view these results in your console, place the assignment operation into parenthesis: ($result =...

Converting to Signed Using Casting

In a previous tip, you learned how to use the Bitconverter type to convert hexadecimals to signed integers. Here is another way that uses type...

Converting to Signed

If you convert a hex number to a decimal, the result may not be what you want: PS> 0xFFFF 65535 PowerShell converts it to an unsigned number...

Getting Timezones

Here's a low level call that returns all time zones: PS> [System.TimeZoneInfo]::GetSystemTimeZones() Id : Dateline Standard Time DisplayName...

Mapping Printers

To map a network printer to a user profile, here's a powerful low level command: rundll32 printui.dll,PrintUIEntry /in /n...

Fun with Date and Time

Get-Date can extract valuable information from dates. All you need to know is the placeholder for the date part you are after. Then, repeat that...

Counting Work Days

Ever wanted to know how many days you need to work this month? Here's a clever function that lists all the weekdays you want that are in a...

Converting to Hex

Here's a simple way to convert a decimal to a hex representation, for example, if you want to display an error number in standard hexadecimal...

1 73 74 75 76 77 104