Needing to push this (Microsoft KB 911272 around a bunch of web servers in a hurry. Luckily, thanks to 2 good design decisions:
- Enabling PS remoting
- A sane machine naming convention of the form server-1, server-2
We could push the change around with a small bit of Powershell:
$ccred = Get-Credential $ScriptBlock={ New-ItemProperty "HKLM:\Software\Microsoft\ASP.NET" -Name "FCNMode" -Value 1 -PropertyType "DWord" New-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Microsoft\ASP.NET" -Name "FCNMode" -Value 1 -PropertyType "DWord" iisreset } $i=1 while ($i-lt 9){ $cname = "app-prod-web-$i" Invoke-Command -ComputerName $cname -ScriptBlock $ScriptBlock -Credential $ccred $i++ }
We grab some credentials for the remote boxes (remember, seperate accounts for desktop and server admin duties is a GOOD idea).
As we’re passing through multiple commands/lines to Invoke-Command using a scriptblock is the easiest way, so create one of those. Quickly use New-ItemProperty to add the required DWORD values under the right keys, and then an iisreset to make sure they take affect.
A nice quick and dirty while loop allows us to push the scriptblock to the 8 servers in this set, and we’re done. A quick change of the $cname
variable and I can push it to the next set as well. And another edit and it’s pushed into the staging environments as well.