Untimely, perhaps While most of us are waiting for SCOM 2016 RTM to be generally available i’ve completely forgot to blog about my little Set-SCOMMaintenanceModeDeluxe.ps1 script I wrote a while ago. It is pretty much a small extension to the regular Set-SCOMMaintenanceMode cmdlet that allows you to set Computers, Groups or specific Windows Services into maintenance mode. I have yet to make it a proper module (although I have promised myself to do so) so you’d still have to manually download the script and execute it the old-fashioned way. I’ve uploaded it as a public gist on github, so feel free to add adapt it to your needs. Here’s the gist
TLDR Quick and dirty macro to resize all images in a word document to 145 mm. I am lazy like that. Get the gist of it here. The “Why” Ok, so. I am a consultant, as you may know. And as a consultant, people pay me to do stuff and expect me to be efficient and deliver with high quality. Part of that entails writing documentation containing how I do stuff, where I do it and often why I do it. This documentation is expected to be detailed enough to make sure my customers will be able to follow the steps and produce a copy of my work. Most of the time these document are a big part of the disaster recovery processes and might have to be executed by the on-call staff with no previous knowledge of the product. This means screenshots. Lots of screenshots. And while templates are nice and help me out a lot, the screenshots have to be from the actual installation and not some copy-pasta from a previous assignment. To help me out, I use the excellent free program Greenshot to quickly generate screenshots into a WIP-folder (or directly into Word if that is appropriate) and that makes it possible to grab snapshots of the process without having to pause all the time to PrtScn-Alt+Tab-Ctrl+V-Crop-Ctrl+C-Alt+Tab-Ctrl+C. I simply press PrtScn and go on with the installation. Being a bit pedantic, doesn’t help me out here though as I find myself selecting and resizing all the images in the Word document I have produced. This is a very time-consuming process and not the most exact one either. I want all images to be of scaled, if necessary, to an equal maximum width that fits comfortably withing the margins of the document template my company has prepared for me. So I created a fairly simple macro to do it for me. The “How” If you are un-familiar with macros in Word, you will find them under the “View” tab. Clicking on “Macros” will give you the option to execute the ones you have, or you can create your own using VBA (Visual Basic for Applications). To create one, select where you want it saved (normal.dotx in my case, as I want it readily available) and enter a name for it. This will bring up the Visual Basic for Applications IDE, where you can write your own fun stuff.
TLDR Customer wanted to see all RDS Host servers in a view with their current total session count. Decided to use a powershell grid dashboard, and share the script. Here’s the gist of it: SCOM_RDSH_TotalSession_PoSHWidget.ps1 How To Keeping it fairly short this time. Pre-requisites are: System Center 2012 R2 with UR2 or later Microsoft RDS Management Pack Microsoft Windows Core OS Management Pack Create a dashboard Rightclick and create a new view somewhere, make it a Dashboard View Enter Name and Description Select Grid type, and layout
We’re moving! Yep. Again. Although, it’s been a year or two since the last time. The reason(s) Ok, so I’ve using Wordpress for quite a long time now and it’s been good. Mostly. It’s a fairly solid platform and has a whole slew of feautures that work nicely. Before Wordpress I used Textpattern, a very slimmed, minimalistic authoring experience and my first contact with textile and similar markup/writing/notation languages. For those unaware, textile is not unlike markdown. Or should we say that markdown is not unlike textile? Considering that textile was invented by Dean Allen two years before markdown. Anyhow. Both work pretty much as good as the other, allowing the author to write in any text-editor, using easily readable and fairly logical formatting. Before that I used Movable Type, and prior to that either Dreamweaver or… well, notepad or vim. Problem with all of those platforms, however, is that they require dynamically generated webpages and technologies like PHP, Perl, .NET, Java and whatnot. That, in itself, has been a very minor issue until lately. Sure, it requires servers with logics, engines, add-ons, execution rights to the local filesystem etc, but still a minor nuisance. Mostly a financial nuisance really as active servers tend to cost money while finding static hosting for free is still pretty easy. Hell! I could put a webserver on a RaspberryPi and get good performance for a small-ish blog like mine if all I am using is static content. But, again. Not a major problem in itself. The main instigating factors to move away from Wordpress are the increasing size of the package, the lack of personal control, the lack of ease to extend my platform due to ever-expanding APIs and the fact that it is so popular that every “hacker” and it’s mother knows how to find exploits on it. My webhost, NFSN has been very good at detecting probing and brute-force attempts and automatically block public access to stuff like the login-pages and XML-RPC interfaces when that happens. I am just so sick and tired of having to constantly be on top of it with software updates, plugin updates, theme updates, security updates, spam-filtering, re-enabling the login page… Back to the basics Teknoglot.se will be served statically from now on, and it will be hosted for free on Github Pages. Using Hexo.io I can write my posts using markdown, then with a simple hexo generate --deploy generate and update the static files and publish them. No login pages to hack, no dynamic pages to exploit, no server security to worry about.
Was troubleshooting this little error message for a customer after deploying the SQL Server Management Pack version 126.96.36.199. The event is the generic “Health Service Script” with id 4001. Management Group: REDACTED. Script: Main Module: CPUUsagePercentDataSource.ps1 :Computer Name = "REDACTED.redacted.com" WMI = "ComputerManagement11" Service Name = "MSSQLSERVER" SQL Instance Name = "MSSQLSERVER"Error occured during CPU Usage for SQL Instances data source executing.Computer: REDACTEDReason: Cannot add type. Compilation errors occurred.Position:256Offset:21Detailed error output: Cannot add type. Compilation errors occurred.--------(0) : No source files specified(1) : using System;--------(0) : Source file "C:\Windows\TEMP\njdqtgfb.0.cs" could not be found(1) : using System; There are some known errors to the 188.8.131.52 version of the SQL management packs, and one of them does mention “Cannot add type. Compilation errors occured.” In a thread on the Technet Forums it was suggested that it has to do with rights, but focusing mainly on the SQL instance. What caught our eyes, however, was the fact that the script is using the C:\Windows\TEMP folder instead of its private one. And this seems to be because it is using a few .Net components that do some sort of JIT compilation. We took a quick look using procmon, filtered on C:\Windows\TEMP\ and yes indeed. The monitoring account used is trying to create and delete its temporary files in that very folder. A wild work-around appears! The work-around is simple, but cumbersome. Just make sure that the assigned RunAs account have read/write/delete rights on C:\Windows\TEMP. Now you just have to manage this on all your SQL-servers! (yaaaay)