In the previous tip we introduced the FileSystemWatcher and illustrated how it can miss filesystem changes when your handler code takes too long. To...
Powershell
Categories
- Free tools
- SQL Compliance Manager
- SQL Defrag Manager
- SQL Diagnostic Manager for MySQL
- SQL Diagnostic Manager for SQL Server
- SQL Diagnostic Manager Pro
- SQL Inventory Manager
- SQL Query Tuner for SQL Server
- SQL Safe Backup
- SQL Secure
- SQL Workload Analysis for SQL Server
- Uptime Infrastructure Monitor Formerly Uptime
Using FileSystemWatcher Correctly (Part 1)
A FileSystemWatcher can monitor a file or folder for changes, so your PowerShell code can immediately be notified when new files are copied to a...
Using Solid Alternatives for $MyInvocation
Lines like $MyInvocation.MyCommand.Definition can be useful to determine the folder in which the current script is stored, i.e. to access other...
Translating VBScript to PowerShell
Most old VBS scripts can be easily translated to PowerShell. The key command in VBS is “CreateObject” which lets you access system libraries....
Detecting WinPE
PowerShell can run inside WinPE environments. If you’d like to detect whether your PowerShell script runs inside a WinPE environment, you can...
Extract Specific Files from ZIP Archive
Starting with PowerShell 5, cmdlets like Extract-Archive can extract the content of ZIP files to disk. However, you can always extract only the...
Running CMD commands in PowerShell
PowerShell by default does not support the native cmd.exe command such as „dir“. Instead, it uses historic aliases called...
Progress Bar Timer
Here is a simple example using the PowerShell progress bar. The code displays a progress bar counting down a break. Simply adjust the number of...
Understanding Script Block Logging (Part 1)
Beginning with PowerShell 5, the PowerShell engine starts to log executed commands and scripts. By default, only commands considered potentially...
Reading Event Logs Smart (Part 1)
When you query an event log with PowerShell, by default you get back a text message with the logged information. For example, if you’d like to know...
Turning Display Off Immediately
If you are about to launch a lengthy automation script, why not turn off the display right away instead of waiting for the screen saver timeout to...
Purging Kerberos Tickets for All Accounts
In the previous tip we covered klist.exe and how it can be used to purge all Kerberos tickets for the current user so that new permissions will take...
Purging Kerberos Tickets for the Current User
No need to reboot a system just to apply new permission settings. Instead, purge your Kerberos tickets so that you will get a new ticket based on...
Using Chocolatey with PowerShell
Chocolatey is a free package manager for Windows that can be used to download and install software. Before you can use Chocolatey from PowerShell,...
Positioning the PowerShell Console Cursor
Starting in PowerShell 5.1, the PowerShell console supports VT escape sequences that can be used to position and format console text. Note that this...
Sort IPv4 and IPv6 Addresses Correctly
When you try and sort IPv4 addresses via Sort-Object, this fails: PS> '10.1.2.3', '2.3.4.5', '1.2.3.4' | Sort-Object 1.2.3.4 10.1.2.3 2.3.4.5...
Sort IPv4 Addresses Correctly
In the previous tip we published a super-fast function called Test-OnlineFast, and this function was able to ping an entire IP segment in record...
Final Super-Fast Ping Command
In the previous tip series, we developed a new function called Test-OnlineFast that can ping multiple computers in record time. For some reason, the...
Finding Registered Event Log Source Names
When you write events to an event log using Write-EventLog, you must specify a valid source name. However, there is no easy way of finding out which...
Select-Object and -ExcludeProperty
Here is a line of code that often puzzles PowerShell users: Get-Service | Select-Object -ExcludeProperty Name When you use Select-Object, its...
Converting PowerShell to Batch
Here is a fun PowerShell function called Convert-PowerShellToBatch. Provide it with the path to a PowerShell script, or pipe in the results from...
Converting User Name to SID
If you’d need to find out the SID for a user name, here is a useful chunk of code that does the job: $domain = 'MyDomain' $username =...
Displaying Data in a Grid View Window Vertically
Out-GridView always produces a table with one object per line: Get-Process -Id $pid | Out-GridView Occasionally, it would be more helpful to display...
Finding All Domain Controllers (no module required)
In the previous tip we explained how you can use the ActiveDirectory module and its cmdlets to find all domain controllers in your organization, or...
Getting Cached Credentials
In the previous tip we talked about a public module called PSCredentialManager that helps you manage cached credentials. Sometime, less is more, so...
Installing Modules in PowerShell Core on Linux
When you’d like to install modules for all users from the PowerShellGet repository, you need Administrator privileges. On PowerShell Core on...
Parsing Distinguished Names
Distinguished names are strings, and strings contain powerful ways of parsing data. The most powerful yet simple approach is the Split() method....
Registering Default PowerShell Repository
If you use the PowerShellGet module (which ships by default on Windows 10 and Server 2016), you can easily download and install shared PowerShell...
Running PowerShell Script as a Scheduled Task
If you need to run a PowerShell script in regular intervals, why not run it as a scheduled task? Here are some lines that help you create a new...
Creating Random MAC Addresses
If you just need a bunch of randomly generated MAC addresses, and you don’t care much about whether these addresses are actually valid, then...