Powershell

Listing All Domain Controllers

To get a quick list of all of your domain controllers, run this one-liner: Get-AdDomainController -Filter * | Select-Object -Property Name, Domain,...

Permanently Deleting Hard Drive Content

When you delete files on storage media like hard drives or USB sticks, as you probably know, the data is not immediately deleted. Instead, the data...

Undeleting Office365 Mailboxes (Part 2)

Let’s assume someone left the company, and you deleted its Office365 user account. As it turns out, this also deletes the attached mailbox. If you...

Undeleting Office365 Mailboxes (Part 1)

If you have deleted a Office365 user account and then realize that you still need the data in its mailbox, you may be able to recover the mailbox....

Renaming Properties (Simple)

Select-Object can not just select properties but also rename. Let’s assume you need a list of files in a folder with their size. This line would...

Richer Printer Information

Get-Printer returns basic information about all local printers. When you add the switch parameter -Full, it returns even more detailed information...

Super-Fast Network-Printer Inventory

In our previous tips we introduced all kinds of useful PowerShell functions to ping, scan ports, or contact SNMP devices. Today, it’s time to take a...

Super-Fast Network Scans (Part 3)

In our previous tips we created two fast functions to ping and port-scan remote systems: Test-Ping and Test-RemotePort: function Test-RemotePort {...

Super-Fast Network Scans (Part 2)

In our previous tip we looked at Test-NetConnection and found that it was way too slow, so we replaced it by a much faster Test-RemotePort function....

Super-Fast Network Scans (Part 1)

Port scans can be useful to identify devices or machines in your network, i.e. file servers (port 445), PowerShell remoting targets (port 5985), or...

Creating IPv4 Network Range

Here is a PowerShell code snippet that creates a list of IPv4 addresses for a given segment. You just specify the start and end address: $From =...

Translating Data

Hash tables and dictionaries are perfect lookup tables: whenever your original data contains cryptic numbers or a command returns just numeric...

Automating Defender Antivirus (Part 2)

On Windows, PowerShell comes with cmdlets to automate the built-in antivirus engine “Defender”. In this second part, let’s take a look at how you...

Automating Defender Antivirus (Part 1)

On Windows, PowerShell comes with cmdlets to automate the built-in antivirus engine “Defender”. If you’d like to update the signatures...

Converting Wavelength to RGB

PowerShell is a generic script language so you can do all kinds of stuff with it. Below is a function that takes a light wavelength and converts it...

Storing Any Text Encrypted

Let’s say your script needs sensitive input like connection strings for a database or other text information. One way of managing such secrets is to...

Using Appropriate DataTypes (Part 2)

In part 1 we looked at how data becomes more accessible when converted to a more appropriate .NET data type. If you can't find an existing data type...

Using Appropriate DataTypes (Part 1)

Windows is an API-driven operating system, and PowerShell is, too. Compared to other shells that use plain text as a common denominator and leave it...