Using ILMerge to merge assemblies

This document describes the ILMerge utility which merges multiple .NET assemblies into a single assembly. However, some .NET assemblies may not be able to be merged because they may contain features such as unmanaged code. I would highly recommend using peverify (the .NET Framework SDK tool) on the output of ILMerge to guarantee that the output is verifiable and will load in the .NET runtime. ILMerge is packaged as a console application. But all of its functionality is also accessible programmatically. Note that Visual Studio does allow one to add an executable as a reference, so you can write a client that uses ILMerge as a library.

Obfuscating for .net

When you want to release your .net application to the public as closed source you should note that Microsoft .net applications are easy to decompile and reconstruct once distributed. In this article, I intend to explore various options and explain why we settled on one particular Obfuscator that is open source. We explored a range of commercial and open source obfuscators such as ConfuserEX, ConfuserEX2, DotFuscatorCE, Obfuscar with varying levels of success.

Fix: Domain connected Windows 10 no longer sync settings

"In the Windows 10 Anniversary Update, domain joined users who connected their Microsoft Account (MSA) could roam settings and data between Windows devices.  Many IT Pros told us that this functionality was not consistent with their policies for managing information owned by the organization. They did not want their PCs roaming to an individual’s personal cloud. A group policy to prevent users from connecting their MSAs did and does exist, but this setting also prevents users from easily accessing their personal Microsoft services.  To address IT Pro concerns, we removed the ability for domain joined machines to roam with an MSA.  Enterprises can still enable Enterprise State Roaming with Azure Active Directory."

SBS2011 MSSQLMonitoring Database at maximum limits

Under certain circumstances, the database may become unusable, when this happens you can experience behaviors like the SBS console crashing, or incorrectly reporting the status of machines. When this happens there might be a need to create a new, blank, database to regain functionality. Since all the information collected is dynamic, by creating a new database you would lose only any custom reports you may have created in the SBS Console, report customizations, and all the archived reports. Furthermore, upon recreating the database, it will need some time to contact all clients and report on their status, this time may vary, since clients may be offline, it is recommended to wait 48hrs before trying to validate the data.