Update-Help for disconnected machines

PowerShell 3.0 and above do not contain any in-box help files, so when you run Get-Help it will display the auto-generated help syntax based on the cmdlet’s metadata (same as using Get-Command with the -Syntax switch) and will prompt you to use the Update-Help cmdlet to download the help files. As soon as the help…


Detect .NET Framework versions installed

This script will detect the various .NET Framework versions installed on the local or remote computer(s). It queries the registry for the information (Remote Registry is required for querying the remote computer), and lists the .NET Framework version and it’s build. The logic and version information are based on https://msdn.microsoft.com/en-us/library/hh925568 The script file is available…


Error 0xd00000bb installing WMF 4.0 on an RODC

  If you try to install KB2819745 (WMF 4.0) on a Windows 2008 R2 Read-Only Domain Controller (RODC), and after the server reboots the screen shows "Failure configuring Windows updates Reverting changes . Do not turn off your computer" It means there was an error during the installation at the reboot phase, so it’s rolled…


PowerShell 4.0 deployment

Every once in a while I’m asked how to deploy PowerShell in the enterprise, and my answer is always: “It depends”. – It depends on the target machine’s operating system, the PowerShell version you want to install, and if you already have a deployment mechanism (such as SCCM). For this specific scenario, there was no…


Configure the deployment retail in machine.config

Continuing my post about the web.config debug flag, you could also set the deployment retail attribute in the machine.config to achieve some of the same effects. When the retail attribute is set to true, ASP.NET disables trace output, disables debug capabilities, and disables detailed system-generated error messages for remote users. For applications that have a…


Disable VM Heartbit Monitoring

In a Hyper-V Failover Cluster, when you have a VM with Integration Services installed, the VM Monitoring Heartbeat service inside the VM regularly notifies the Hyper-V host that it is alive. This setting can be used to automatically recover from hung virtual machines, but it should not be enabled without fully understanding what it does….


Filtering files by their metadata (extended properties)

When you run Get-ChildItem or any of its’ aliases, you’ll get back an array of objects, usually System.IO.FileInfo and System.IO.DirectoryInfo (if you have directories too). The properties displayed are Mode, LastWritetime, Length and Name. Of course there are other properties in the returned objects, but these are the ones that get displayed by default (more…


Don’t use aliases in scripts

Aliases are alternate names or nicknames for a cmdlet or for a command element, such as a function, script, file, or executable file. When I teach PowerShell, I usually divide aliases into two groups: Transitional aliases such as ls or dir (for Get-ChildItem), and type or cat (for Get-Content) that are aimed for people transitioning…