Powershell

Pinging Multiple Systems Fast

Test-Connection can ping multiple computers only sequentially, and it does not let you specify a timeout. So when you need to check a large number...

Test-Connection with Timeout

The Test-Connection cmdlet implements a simple ping to check whether a system responds to an ICMP request. Unfortunately, you cannot specify a...

Finding Current File System Path

PowerShell supports not just the file system, so you can set the current path to a different provider (Set-Location). Here is a trick that always...

Use Get-CimInstance with DCOM

PowerShell 3.0 added an alternative to Get-WmiObject: Get-CimInstance seems to work very similar and can retrieve information from the internal WMI...

Encoding Pictures

If your script needs resources such as icons or pictures, you do not have to ship these resources separately. They can be Base64-encoded and added...

Managing Windows Firewall

Beginning in Windows 8 and Server 2012, there is a cmdlet that helps you enable the client firewall for various profiles: Set-NetFirewallProfile...

Finding Recursive AD Memberships

In AD, there is a strange-looking filter: 1.2.840.113556.1.4.1941. It is called "matching rule in chain" and can be used to quickly find...

Clearing Recycle Bin

Before the advent of PowerShell 5.0, to clear the recycler, you would have to manually delete the content of the hidden $Recycle.Bin folder in the...

Force User to Change Password

Use this code snippet to force a user to change his/her password: #requires -Version 1 -Modules ActiveDirectory Set-ADUser -Identity username...

Get List of Operating Systems

If your boss needs a list of operating systems used by computers in your AD, this may be a good start: #requires -Version 1 -Modules ActiveDirectory...

Creating Colored Excel Reports

When you open a CSV file in Excel, you get a very fast data import, but the result is "black and white"; CSV data has no way of colorizing...

Creating Code Snippets for ISE

PowerShell ISE supports code snippets, and you can easily create your own: #requires -Version 3 $code = @' | Where-Object { $_ } '@...

Time for Christmas

It's time for Christmas again, so here is a PowerShell classic: # inspired by: #...

Displaying InputBox

To improve user-friendlyness, you could replace Read-Host by the following Show-InputBox function and get an inputbox dialog window: #requires...

Creating Simple Keylogger

By accessing the Windows low-level API functions, a script can constantly monitor the keyboard for keypresses and log these to a file. This...

Accessing API Functions and Logging Off

You may have heard about pInvoke.net, a site that documents internal Windows API signatures. Signatures describe low-level Windows API system calls....

Executing Code after Script Is Done

For monitoring purposes, it is often not known how long a script needs to run. So here, an endless loop is used. The script runs for as long as the...

Replacing Special Characters

Sometimes it is crucial to replace special characters in text before you can use it. For example, if you plan to create Active Directory accounts,...

1 46 47 48 49 50 104