Customizing Microsoft Windows

Right now, this tutorial may have multiple versions. This was done to be able to get some information quickly posted, so such information could be publicly accessible. There may be some duplication between the versions. (Further clean-up is desirable, and may occur when an opportune time is recognized.)

Version 2

Note: Version 2 was based on some notes that were taken when a new computer system was obtained. This may closely resemble an actual series of steps taken, which tended to have some of the most annoying needs addressed early on. After the system was set up, some adjustments were made (moving some steps earlier in the process, especially anti-virus software which had been skipped due to not having instructions being quite as convenient to hunt down, but such information has since become more conveniently referenced). These instructions represent the process that is probably going to be tried next.

At the moment, this may also include some extra/spare notes that should probably be moved elsewhere.

There may be a version 3 that simply strives to clean this up a bit... or perhaps the next version will try to genericize the process a bit so that many of the steps look identical for other operating systems.

Misc Notes
Determine if key/main input devices work (keyboard, rodent)
Log in, if needed
Verify if Administrator
(unless operating system was just installed, in which case it is presumed to be an administrator.)
Determine if I am using the login account that I want to be using.
Get to a command prompt.

For someone quite familiar with the command prompt, this can enable a feeling of quite a bit more comfort, rather than being stuck with using a GUI that has been known to impose changes on users when new versions come out.

Be able to log on as an Administrator
If I am logged in with an account that is an Administrator, but I wasn't given the password to this account, then retain Administrator access by creating a new account and making sure that account is part of the local system's Administrators group.
Determine if network access is functioning.
(Can ping an Internet site? If not, may be okay. Does using ping on an intranet site work? (If so, that may indicate sufficient communication to join centralized authentication.)
Check power settings
Disable Auto Sleep/Hibernation

Disable any automatic “Sleep Mode”/“hibernation” functionality if this system needs remote work done on it (to continue an initial setup). For some computers, there may be a desire to never re-enable Sleep Mode if the system should be readily usable from remote locations.

C:\> PowerCfg /LIST

Existing Power Schemes (* Active)
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (Balanced) *
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (High performance)
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (Power saver)

Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (High performance)
C:\> PowerCfg /SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Note: Some OEM computers may come with their own scheme, such as “8759706d-706b-4c22-b2ec-f91e1ef6ed38  (HP Optimized (recommen”“ded)) *” in addition to the three shown above, or “49ef8fc0-bb7f-488e-b6a0-f1fc77ec649b  (Dell) *” (alongside Balanced, and instead of the “Power Saver” or “High performance” schemes commonly found elsewhere).

Determine Power

If this is a mobile device, make sure that it has a suitable supply of electricity. For instance, if this is a laptop, check that the device says that it is plugged into power. If you are operating on battery power, prioritize key further work on this, at least enough so that you will be able to do other steps easily (and perhaps remotely, behind the scenes) later, if desired.

Consider the next steps

Consider each of these things before proceeding with any of them:

  • If you are standing in front of a machine, then joining a security domain may be highly desirable. Namely, this has been recommended to be an early step for Microsoft Windows joining an Active Directory domain.
  • However, joining an Active Directory domain may require rebooting. If that will effectively turn off something that is currently permitting remote access, then a smarter approach may be to ensure that remote access remains usable. This can include:
    • Ensuring the computer will have a known IP address. (This could be done by capturing needed information and setting up a DHCP reservation. For IPv4, typically the information needed for that is a MAC-48 address that will be used.)
    • Ensure that remote access software will be usable. For instance, if a remote connection was made using some sort of proprietary professional custom solution that required that a user visits a website and runs a program, and if that program won't auto-restart, then set up some other remote access software such as RDP.
    • Make sure such remote access software effectively works to let you get remote access. A key way to do that is to swich to such repeatable, reliable remote access software as soon as possible.
      • One of the reasons to do this is to verify not only the remote access software, but that the account you want to use will work. Make sure that account has any needed permissions for remote access software, and has any Administrator permissions that will be needed.
    • If a VPN is used, ensure that the VPN will be automatically re-connected after the reboot. If that isn't going to happen, consider the consequences. (For instance, this could involve calling an end user who will be near the computer when the reboot occurs.)
If support/usage of a remote authentication system is desired, ensure that is working
  • e.g. If using Microsoft Windows and planning to join an Active Directory domain, do so
  • After joining any “security domain” which allows usage of a centralized authentication method, if I am not on the desired account, get onto the desired account.
Determine whether logged-in user is Administrator.

(Maybe this was done before under a different account? If this was done before with the same account, there may not be any need to re-check.)

Presumably the account will have the desired security permissions, such as administrative access, so checking that is generally not a concern. However, if there was any change to a new account, checking this may be desired...

Name the system
  • Optional: find out the system name first. (As a routine, recording the only copy of information can be a good habit to get into before overwriting the information. Reversibility is generally good to be able to do. However, the initial system name might be a particularly useless detail not considered worthy of being documented.) Running HOSTNAME may be sufficient to do the trick.
  • This may often be done in a step simultaneous to joining a security domain.
  • If you want this to be completely automated, you might want to try to generate a system name from a DELL service tag, HP Serial Number, other Serial Number, or MAC-48 address. More desirable naming schemes can be utilized.
  • Ensuring the system has a known/documented unique name is desirable.
make place for local files

I got myself into a habit of using a me subdirectory underneath my home directory. There hasn't been a whole lot of software that will tinker with a directory of that name without my permission, which allows me to separate my own stuff from the clutter imposed by newer versions of Microsoft Windows and anything else that wants to make a directory without me requesting it.

mkdir "%USERPROFILE%\me"
mkdir "%USERPROFILE%\me\exec"
mkdir "%USERPROFILE%\me\exec\freeexe"
mkdir "%USERPROFILE%\me\exec\freeexe\net"
Get downloader

Get software for downloading other software. e.g., cURL.

Recommended way of doing this: grab the Freeexe collection. (See: Freeexe for ReactOS/Microsoft Windows: Archives area.)

Other options may be mentioned at TOOGAM's Software Archive: Browsers and/or ][CyberPillar][: Web Browsing.

Get nice web browsers installed
See download hyperlinks from: TOOGAM's Software Archive: Web Browsers. e.g.:
Have a nice web browser installed as default

In recent years, this has involved choosing whether Google Chromium or Mozilla Firefox has been proving to be nicer

Change Web Browser Settings

In particular, have browser ask where downloaded files go, instead of assuming a place that I happen to not like. So I like to do this early, before downloading a bunch of other things.

Should: Install monitoring software (if applicable)

At the time of this writing, this is something far more likely to be done on a business computer.

In a very ideal setup, many of the rest of the steps might be heavily automated once Remote Management & Monitoring (“RMM”) software is installed.

(Re-)Check Power Settings

If you didn't take care of Power Settings before, consider checking on them again. (Sometimes checking on power settings may be considered a lower priority, in hopes that Remote Management & Monitoring (“RMM”) software may take care of it. Once the Remote Management & Monitoring (“RMM”) software is operating, this should be taken care of quickly. If it isn't taken care of automatically for any reason, then manual efforts may prevent an avoidable problem caused by a system going to sleep.

Get Anti-Virus installed

See: Anti-Malware for Microsoft Windows.

If nothing else more desirable is readily available, Clam Sentinel is one option. To start getting this most quickly:

  1. hop to:
  2. choose the latest version number
  3. Grab the smaller executable file, which is the one that has a name ending with “-setup-nodb.exe”.

Then, plan to spend a bit of time getting it configured right. The ][CyberPillar][ page on ClamWin contains some information.

Naturally, the next step will be proceeding through the steps of installing ClamWin. The recommended steps for that include:

  • During install, uncheck "Download Virus Database Files. (Do not Select if you connect via Proxy Server)"
  • Do check “Create a desktop icon”

After installed, you'll want to proceed with Opening ClamWin. When doing so, you may prompted to download definitions. You may wish to choose not to download the Definitions if you're willing to endure insecurity for a longer period of time. But be sure to get things configured, or else ClamWin may be essentially useless. At least follow the steps from:

Should: permit remote access (if not handled by monitoring software)
  • Only do this if you are confident in how to do so securely
  • Otherwise, do not do this.
Possible resources:
  • RDP RDP/RDC, and in particular, Remote Desktop Enabling and/or the section on Seeing a certificate warning in mstsc.
    • VNC server software). In general, TightVNC includes a server that works.
    • For a client, TurboVNC has proven better with IPv6 compatiblity (at least, at one time). This could be useful even if the VNC server didn't support IPv6 well, when using SSH tunneling. However, even though TurboVNC may have been an excelelnt client, TurboVNC may not have a server, so using other software will be needed for that component.
Check if devices are working well
  • Find out if devices are working well
    • One appraoch: Check Device Manager to see if other devices are working well.
    • Another approach can be to use WMI. For exmaple:

      C:\> WMIC PATH Win32_PnPEntity WHERE 'ConfigManagerErrorCode ^<^> 0 or Availability is NOT NULL or Status ^<^> "OK"' Get /FORMAT:LIST
      No Instance(s) Available.


      If this spits out some data other than “No Instance(s) Available.” then perhaps you may wish to start by seeing what other data is readily available about the device. Using MSDN documentation for PnPEntity may be helpful to understand some of the data that is provided.

      As a brief hint, if ConfigManagerErrorCode is zero, that indicates no error.

      Disregarding Disabled Devices

      If ConfigManagerErrorCode is 22, that indicates a device that has been disabled. If you have manually disabled a device, and don't with to have disabled devices be reported, you could alter the above example a bit to also ignore devices with ConfigManagerErrorCode set to 22 (and ignore the check of Status as that very well may be set to “ERROR”).

      C:\> WMIC PATH Win32_PnPEntity WHERE '( ConfigManagerErrorCode ^<^> 0 AND ConfigManagerErrorCode ^<^> 22) or Availability is NOT NULL' Get /FORMAT:LIST
      No Instance(s) Available.

  • (If there is hardware that has been detected but which is not working, this is often resolved by locating an appropriate driver and updating the system.)
Get more software installed

This was already mentioned as a recommendation before, but is mentioned again in case an earlier decision was made to delay this (until some other critical steps were performed). This software is recommended to have readily available, and to become familiar with the software in this collection.

  • Follow the steps in the earlier section called “make place for local files”
  • Go to the Freeexe page at TOOGAM's Software Archive: Freeexe or, more specifically, jump straight to TOOGAM's Software Archive: Freeexe for ReactOS/Microsoft Windows, Archives.
  • Download the latest frecwa*.zip file and extract its contents into "%USERPROFILE%\me\exec\freexe\".
    • (These instructions are assuming familiarity with which directory %USERPROFILE% points to. If you don't know, run a traditional command prompt (CMD.exe) and then run “ echo %USERPROFILE% ”.
    • Since modern versions of Microsoft Windows contain support for extracting from ZIP files (and call such ZIP files a “Microsoft Compressed Folder”), you can do this by opening up the ZIP file in Explorer, and then copying the contents to the desired directory.
  • Download the latest frecwn*.zip file and extract its contents into "%USERPROFILE%\me\exec\freeexe\net\".
  • At some point, the above instructions may be updated to have files be placed in a more common location. (For now, those instructions should allow a user to access the software easily.)
  • Modify standard configuration locations to run custom commands from a location where more customized information may frequently be placed.
    • Notepad "%USERPROFILE%\.profile"

      Have the file say:

      . ~/me/.profile
    • (This next part might not be quite as desirable in some cases?)

      Notepad "%USERPROFILE%\me\.profile"

      Have the file say:

      cd ~/me/
  • Copy the *.lnk (“Shortcut icon”) files (from the frecwe*.zip file) to the user's desktop, and get them pinned to the Task Bar.
  • If you're not yet familiar with the software, read over what a lot of this software can do. Some documentation, which briefly goes over a lot of this software, can be found at TOOGAM's Software Archive: Freeexe for ReactOS/Microsoft Windows, Documentation.
Download this documentation

Perhaps earlier steps were being followed by viewing this documentation on another system. By now (if not at some earlier point in the process), using the new system to view this documentation may be most sensible.

  • First, install. e.g. TOOGAM's Software Archive: JP Softare may describe TCC/LE. TCC/LE's official home page may provide some hyperlinks to directly download this. TOOGAM's Software Archive: TCC/LE may also provide a directly downloadable file.
  • Then, make an appropriate automatically-started file:
    • On machines using 64-bit Microsoft Windows, you can be using the 64-bit version of TCC/LE, which will use a startup file at: C:\Program Files\JPSoft\TCCLE14x64\TCStart.BTM

    Have that file contain the following contents:

  • Make a batch file:

    Notepad "%USERPROFILE%\me\MyTCCGo.BTM"

    and have that file say:

    @Echo Off
    echo %0 Started
    If Exist "%USERPROFILE%\Me\Exec\Freeexe\PathOK.BAT" Call "%USERPROFILE%\Me\Exec\Freeexe\PathOK.BAT"
  • After making those/that customization(s), Restart all TCC/LE shells so that path takes effect
Get some program downloaders

Downloading and installing GoG Galaxy may provide a user with an easy way to download other software which the user has purchased from is the home site for GoG which once officially stood for “Grand ol' Games”. The site has been known to frequently sell games at a lower cost than the more famous, and sometimes with less built-in DRM restrictions. In some cases, the site has been known to offer some older software that hadn't yet been available at (which is probably why the name “Grand ol' Games” seemed appropriate).

Humble Bundle
Background Info

Background info: At the time of this writing, the website seems to be focused on three offerings:

The bundles! seeks owners of intellectual property, and tries to get them to offer licenses that are included in bundles that are much lower cost than trying to download everything seperately.
  • This historically started out with “Humble Indie Bundles” that offered games with source code and available for multiple platforms. That was later followeod by games that was available for multiple platforms (even if source code wasn't shared).
  • Today, bundles have been known to be available for gams, other software, and bundles reading material (sometimes focused on including technical references, and rather frequently focused on comics including manga).
Humble Store
  • This often ties in with by providing codes that are available at that website. Sometimes items may be on sale, cheaper here than at Sometimes has been known to offer packages that aren't available at, so neither option is consistently cheaper than the other. (Some packages have been known to provide discounts on remaining items when part of a package is already purchased, but this hasn't always happened.) If pricing is the same, the biggest advantage to going through the Humble Store may be to help a presumably-smaller organization, which has also been known to offer some other great deals, to make some money.
Humble Monthly

A subscription service

This is available for some platforms. (Maybe Microsoft Windows is one? Otherwise, consider just logging in to download previously purchased software.)

  • Maybe log into this to download?
  • Prepare to get an E-Mail for verification
Software Archive Handling

(A command line version of 7-Zip may be installed as part of Freeexe.)


If a different option hasn't been endorsed by Freeexe, maybe get this.

This was mentioned before. If this still hasn't been done, do so. (Use the directions mentioned earlier.)
Maybe more?

Here are some references that might suggest some more software to install...

make a vm tutorial has some info, including makeavm/makeavm.htm#swpopbas

install more

Set up Task Bars
  • Place desired shells pinned
  • Place web browsers pinned
  • Place Volume Control (SndVol.exe) pinned, unless the plan is to just rely on the System Tray.
  • Maybe add menuing systems
    • GoG Galaxy
    • Steam
  • Maybe pin other items
  • Remove unwanted items:
    • For now, this process may not be quite as recommended until there is a verified way to easily re-create the icons. Here is the wishlist of things to remove someday...
    • Windows Store
      • presumably was pointed to a location like C:\Windows\WinStore\WSHost.exe or somewhere under C:\Program Files\WindowsApps\ (in a folder with a name that includes what appears to just be some atrocious randomness, like Microsoft.WindowsStore_11802.1001.11.0_x64__8wekyb3d8bbwe) where there is a WinStore.App.exe file. e.g.
    • Microsoft Edge
      • Prseumably pointing somewhere under %windir%\SystemApps\ in a folder with a name that includes atrocious randomness, like Microsoft.MicrosoftEdge_8wekyb3d8bbwe where there is a MicrosoftEdge.exe program
Customize SC1

From Unix-style prompt:

cp ${USERPROFILE}/me/exec/freeexe/sc1.cfg ${USERPROFILE}/

Or, from CMD:

CMD /C Copy %USERPROFILE%\me\exec\freeexe\sc1.cfg %USERPROFILE%\
If desired: copy SSH keys

If you have SSH keys that allow access to remote systems, you may want a way to easily access them from the new computer. Before doing this, consider whether such access is desired from the new computer.

Details will depend on where the SSH keys are stored off of the new system. (This may often involve custom details, and so no universal solution is documented here.)

If desired: copy PuTTY configuration

Load Default Settings. Save as something else like “Old Defaults”.

Change settings as desired. e.g.:

  • increase lines of scrollback (on Windows menu, from 2000 to maybe 20000)
  • Terminal, Bold, 14 point (default font quality)
  • Windows\Translation: Set Received data character set to: CP437
  • System Menu appears on Alt-Space
  • logging (if desired)

Call the name of the new profile something desired, like “Default Settings” (overwriting the original set), and press Save.

Make further changes for specific systems that you may want to connect to.

Change console font/etc.
  • e.g., "Raster Fonts", or Consolas (16-point) may be much nicer than Courier New (which might unfortunately be a default)
  • try to get this set for every command line prompt shortcut/icon that you are likely to use, including
    • traditional command prompt,
    • Unix shells,
    • JP Software products (if those are going to be used...)

More steps

Filename extensions
REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v HideFileExt
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v HideFileExt /t REG_DWORD /d 0
REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v Hidden
REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ShowSuperHidden


Show underlines

The following is meant for the traditional Command Prompt which does not require escaping quotation marks:

Control Panel, Ease of Access Center, Make the Keyboard easier to use, Underline keyboard shortcuts and access keys

REG QUERY "HKCU\Control Panel\Accessibility\Keyboard Preference" /v On
REG QUERY "HKCU\Control Panel\Accessibility\Keyboard Preference" /v On /t REG_SZ /d 1

Adjust Terminal Colors

(Might only be super-necessary for some versions of Microsoft Windows?)

Currently, available instructions can be found by searching for "BBGGRR" on TOOGAM's Software Archive: Winsh page. (Simply get to a UAC-elevated command prompt and then run the "Echo" and "REG ADD" commands that are mentioned in that section of the web page.)

Control Panel: View icons

Following are some settings that might be old (for older versions of Microsoft Windows, not pre-dating Windows Vista)? After all, Vista had Category View or Classic View, while newer version(s) have Category View or Large Icons or Small Icons. This may also be something quite quick-and-easy to just set with the GUI...

REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel
REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel

(HKCU represents user-specific configuration.)

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel /v AllItemsIconView /t REG_DWORD /d 0
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel /v StartUpPage /t REG_DWORD /d 1

According to a “social” page by “mark wright”:

  • the “StartUpPage” needs to be set to 1.
  • 0 is large icons, 1 is small icons.
  • Also, that same page notes that this may be set using Group Policy, using “User Configuration > Administrative Templates > Control Panel > Always open All Control Panel Items when opening Control Panel”.
Mouse Keys:

Typically prefer having Mouse Keys active when Numlock is off, but enabling the shortcut

Determine a flags value
possibly documented here:


  • 0: Whether turned on. 0 is off. 1 is on.
  • 2: Might be needed for MouseKeys to be available?
  • 4: Whether Left Alt+Left Shift+Num Lock will toggle
  • 0: "Display a warning message when turning a setting on", ON would be 8
  • 16: Whether to play a sound when toggling the feature
  • 32: Whether to show Taskbar icon
  • 64: Enable Ctrl to move larger amounts (or shift for smaller amounts)
  • 128: Numlock should be OFF to enable MouseKeys. (0 = Numlock should be ON.)

That is 244 sub-total.

  • MKF_MOUSEKEYSON 0x00000001
  • OFF: MKF_AVAILABLE 0x00000002
  • ON: MKF_HOTKEYACTIVE 0x00000004
  • ON: MKF_HOTKEYSOUND 0x00000010
  • ON: MKF_INDICATOR 0x00000020
  • ON: MKF_MODIFIERS 0x00000040
REG QUERY "HKCU\Control Panel\Accessibility\MouseKeys" /v Flags
REG QUERY "HKCU\Control Panel\Accessibility\MouseKeys" /v Flags /t REG_DWORD /d 244
Toggle Keys

You can test just by pressing Caps Lock, Num Locks, or Scroll Lock.

REG QUERY "HKCU\Control Panel\Accessibility\ToggleKeys" /v Flags

You can often change whether this is enabled by just holding down the “Num Lock” key for 5-8 seconds. Note that doing this will have the initial effect of pressing the “Num Lock” key (and so it will change whether “Num Lock” is currently enabled).

Value probably documented at: MSDN: Toggle Keys.

Auto-Reboot Recovery

System Properties, Advanced, Startup and Recovery

Turn off auto-reboot if the system will be interacted with. (That way, error messages can be seen instead of effectively hidden.) Although, for systems where uptime is important, auto-reboot might be a good thing.

Or, perhaps try this:

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\CrashControl /v AutoReboot /t REG_DWORD /d 0

(followed by a reboot to take effect)

Set memory dump settings.

System Properties, Advanced, Startup and Recovery

Do Write an event to the system log. (Probably set okay by default.) (No recommendations proactively made at this time, except don't use “(none)”. At least “Small memory dump (256K)”, although truthfully even that might be too sparse to be easily usable for many people.)

Auto-Reboot after Update
Windows XP through 8

For Windows XP through “all versions of Windows 8” (quoting How to Disable Forced Restarts After a Windows Update), it looks like the HKLM\SOFTWARE\Policies\Microsoft\Windows\ might not have a WindowsUpdate\ key, so...

REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
REG ADD HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1

Adding that 32-bit DWORD just may do the trick, after the next policy update. That can be done by rebooting or simply running “ GPUpdate/force

Alternatively, Windows Update settings can specify whether updates even get installed automatically. If they aren't installed automatically, then the automatic post-install reboot doesn't occur (after an automatic installation).

Page file

Despite swap size indicating a more ideal method might be achievable, there is currently not a guide available here to determine an ideal size. One line of thinking is that the operating system vendor likely knows how the operating system can operate ideally, so...

  • leaving “Automatically manage paging file size for all drives” may be sensible.

If someone wishes to customize it, here is another line of thinking on why using 1.5 times the RAM size is a value that is recommendable:

  • A lot of people do that
  • This amount of disk space is generally available for this task
  • The general consensus seems to be that this does work well

Until a more precise approach is determined (and documented here), that's what is being recommended for now.

  • Control Panel\Ease of Access\Mouse\Prevent windows from being automatically arranged when moved to the edge of the screen
  • Control Panel\Mouse\Pointer Options
    • Show location of pointer when I press the CTRL key
      • This defauts to Off, but can be handy in some cases.
Aero Features
Aero Shake

Check if this feature is enabled. Note that the following may not pre-exist, so don't be alarmed if you aren't finding it.

REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v DisallowShaking

To turn off this feature:

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v DisallowShaking /t REG_DWORD /d 1
Disable Windows Aero Snap's Docking
REG QUERY "HKCU\Control Panel\Desktop" /v DockMoving
REG QUERY "HKCU\Control Panel\Desktop" /v DockMoving /t REG_SZ /d 0
Document the system

This shows a lot of usage of WMI. (MS Win WMI) That is considered nice because a lot of software can use WMI to automatically gather a lot of this data. (This could be nice for software that can generate reports using automatically gathered information.) Some people may prefer to use some software that performs many of these tasks and presents a graphical interface. Some of the software that performs such functionality will use WMI behind the scenes.

Some things to document:


Full name(s), including any DNS name, and Microsoft Active Directory security domain.

perhaps as simple as running hostname


In documentation, note the purpose of the machine.

System Number

Sometimes, a “system number” is assigned to a specific system, and then details like assigned (static) IP addresses may typically use that “system number”. If such a thing is being used for this system, identify that number up front, so it may be recognized as the rest of the documentation is seen.

Remote access method(s)
Physical Location

If this is a locally-run virtual machine, note what hardware it is (typically) running on. (If it is a remote machine, like a machine ru nning some sort of “cloud”-based service, specify what network is providing that service.) Basically, how does this machine get located?

Startup/Shutdown notes

Particularly useful for virtual machines. Note how the machine gets started/stopped. If there are pre-requisites (ideally not!), mention those.


If this is a virtual machine, note the file that contains the virtual drive.

Possible useful commands for local storage devices:

WMIC CDROM Get Caption,Description,DeviceID,MediaType
WMIC CDROM Get Caption,Name

Note: A “Blu-Ray Recordable Erasable” (BDRE, a Re-writer) drive has been known to show “MediaType=DVD Writer”. So, when “DVD” is reported, that probably means “DVD or Blu-Ray”. This note was probably made in reference to Microsoft Windows 10.

WMIC DISKDRIVE Get DeviceID,MediaType,Model,Partitions,TotalSectors,BytesPerSector
WMIC PARTITION GET BlockSize,Caption,Description,DeviceID,DiskIndex,Index,NumberOfBlocks,PrimaryPartition,Size,StartingOffset,Type /FORMAT:LIST
WMIC LOGICALDISK Get Caption,DeviceID,Description,DriveType,FileSystem,FreeSpace,Name,Size,VolumeSerialNumber
WMIC VOLUME GET Capacity,DriveLetter,DriveType,FileSystem,FreeSpace,Label,SerialNumber
WMIC VOLUME GET Capacity,Caption,DeviceID,DriveLetter,DriveType,FileSystem,FreeSpace,Label,SerialNumber

Maybe also:





WMIC MEMPHYSICAL Get MemoryDevices,MaxCapacity

MemoryDevices might specify how many RAM slots are on the motherboard?
(Not sure if that shows empty slots)

WMIC MEMORYCHIP Get BankLabel,Capacity,DeviceLocator,PartNumber

This gives the names of each RAM slot (BankLabel and DeviceLocator), and the capacity of each RAM chip in them
Not sure if this shows empty slots...
MSDN: Win32_PhysicalMemory notes that the BankLabel could look like “Bank 0” (zero) or “Bank A”. (So don't see a bank label on one computer and assume that all computers use the same format/pattern.)

There are some other tidbits that may be worth knowing when trying to upgrade. Here are some more properties documented on the MSDN page:

WMIC MEMORYCHIP Get BankLabel,ConfiguredClockSpeed,FormFactor,MemoryType,Speed,Tag,TypeDetail /FORMAT:LIST
WMIC MEMORYCHIP Get BankLabel,Caption,Description,Manufacturer,Model,Name,OtherIdentifyingInfo,PartNumber,SerialNumber /FORMAT:LIST
WMIC MEMORYCHIP Get BankLabel,ConfiguredVoltage,DataWidth,MaxVoltage,MinVoltage,PositionInRow,TotalWidth /FORMAT:LIST

e.g., MemoryType may have different values for DDR, DDR2, and DDR3, although the MSDN page does note that may not be detected.

Also, Task Manager's Performance tab may show "Slots used:" "4 of 4"

Another option that could be tried is:

systeminfo | find.exe /C:"Total Physical Memory"

Other details that could be nice to know: ECC or Non-ECC (Non-ECC common on consumer equipment), Registered/Buffered or Unregistered/Unbuffered (Unregistered/Unbuffered common on consumer equipment)

Maybe also check out: CPU-Z (third party program)'s SPD tab, and see the slot info

Besides what's been mentioned above, WMIC can gather info by specifying MEMCACHE and PAGEFILE

WMIC CPU Get Name,CurrentClockSpeed,ThreadCount,ProcessorType

This can occassionally be nice to know. The following may provide some information that is worth keeping track of.

WMIC BaseBoard Get Manufacturer,Product,SerialNumber,Version
WMIC BIOS Get Manufacturer,Name,ReleaseDate
Misc Model Info

If a DELL, the system should have a “service tag”, which is similar in concept for a “serial number”. However, DELL's website may be able to look up a “service tag” more easily, and provide some useful information about a system. To see the service tag, check the BIOS for the serila number:

WMIC BIOS Get Manufacturer,Name,ReleaseDate,SerialNumber
Video Card
WMIC PATH win32_VideoController Get Name /FORMAT:LIST

The following might also be some sections worth poking around in:


other Net stuff


PARTITION and other items (the GPT page might have more info on this?)

Perhaps see also: Detect hardware.

If any equipment required drivers, note where the drivers can be re-obtained. (Especially drivers needed for accessing storage devices and network adapters, as accessing such equipment is often done to be able to fully support other drivers).

Some equipment responds more to certain WMI queries. (Using upgraded drivers, and/or operating systems, might also help to get more information from certain queries.) If some useful information cannot be retrieved automatically, determine whether information is available from another method of looking up details. e.g.:

  • DELL's website will show information about many computers if the Service Tag number is provided in the Warranty Lookup website. This has proven to be true for years, even for equipment that is out of warranty.
    • It is generally best to be able to have your own documentation, rather than relying on a third party.
  • For recently-purchased equipment, vendors may have information online.
    • Some information might not remain available. Some vendors may only show information about purchases that occurred recently. Even if such purchase information is available, once the vendor stops selling a model of equipment because a newer model comes out, some information about an older model may disappear.
    • It is generally best to be able to have your own documentation, rather than relying on a third party. So be sure to retain your own records of anything you want to keep.

Samples of some other information that you may want to record include: purchase date, purchase price.

Check incoming ICMP handling

If possible, have another machine on the network ping the new machine. If that doesn't work, check whether incoming ICMP “Echo Request” messages are permitted through the Windows Firewall.

(Do not just check from the local computer. Firewall settings will often treat remote computers different. So try to check ICMP from a remote system.)

If the ICMP messages are not going through, and especially if other network communications (like SMB directory sharing traffic) are working just fine, then check whether the local filewall settings are blocking ICMP traffic.

((to be added) Since “verifying current settings before making changes” is a good habit, this tutorial should provide details about how to check the current settings. More information should be added here.)

netsh advfirewall firewall...(to be added)

If you need to make a change, you could try using information from MS KB 947709, which provided this command for Windows Vista and newer:

netsh advfirewall firewall add rule name="All ICMP V4" protocol=icmpv4:any,any dir=in action=allow
Set up File sharing?
Check trial time

If you installed a trial version of the operating system, check how many days remain for the trial.

  • Locate slmgr.vbs (which might be in %windir%\System32\)
  • Try something like this:

    C:\> CScript %windir%\System32\slmgr.vbs /dlv
    License Status: Licensed

Wordpad (“Write”) behavior

Adjust Windows Wordpad (“Write”):

  • On View menu, uncheck Ruler.
  • Also set to Word Wrap, Wrap to Window.
  • Make just wide enough for 80 characters plus the keyboard cursor.

Wordpad (][CyberPillar][: Wordpad)

Web browser add-ons
  • Google Chrome: chrome://extensions/
  • Firefox: about:addons

Some to consider may be:

Perhaps see also: ][CyberPillar][: Web Browsing

Final Wrap-Up?

Start installing more software, e.g. things good from installers (, Humble Bundle,

Perhaps re-check power settings. If you have been working on getting a system set up, but don't need ongoing convenient access, then power saving might be more useful than having the system be responsive on the network. (This might be especially true if the system will be on a network where the system can be wakened with WoL.)

Other software (which may be specialized line-of-business sofware) that may be essential for a person to be able to use in order to perform (possibly critical) business functions

Other features, such as VPNs, supporting printers, etc.

“Office Suite” software

Other Resource(s)
Perhaps: Regular Preparation Steps?

Version 1

Note: Some of this may still be rather untested.

These selections are largely decided on personal opinion. Some may be more popular than others. For instance, the “Hide extensions for known file types” is particularly popular to change. (Having those “filename extensions” hidden tends to make people more prone to making decisions that may be bad for security.)

Based on a comment made from SevenForums posting, (logging off and then) logging in may be required for a setting to take effect. That might be true of many settings, which might be one advantage to using the GUI (if doing that will cause an updating setting to take more immediate effect).


For professional releases of Microsoft Windows, joining a(n “Active Directory”-based) security domain can make a number of changes, many of which may be desirable to do earlier rather than later.

Doing so involves having permissions, and changing the computer name. The GUI option for this can be seen from a System Properties page. See:

rundll32 sysdm.dll,,1
Folder View
Finding options in GUI

To pull up the GUI configuration, either use:

rundll32 shell32.dll,Options_RunDLL 7

or follow other steps mentioned by Microsoft Windows Components: Folder Options

REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

In the “Hidden files an folders” option, choose “Show hidden files, folders, and drives”. Uncheck: “Hide empty drives”.


The change I appreciate the most may be to uncheck “Hide extensions for known file types”.

REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v HideFileExt
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v HideFileExt /t REG_DWORD /d 0
“Hide protected operationg system files (Recommended)”


Control Panel: View icons
REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel
REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel

(HKCU represents user-specific configuration.)

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel /v AllItemsIconView /t REG_DWORD /d 0
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel /v StartUpPage /t REG_DWORD /d 1

According to a “social” page by “mark wright”:

  • the “StartUpPage” needs to be set to 1.
  • 0 is large icons, 1 is small icons.
  • Also, that same page notes that this may be set using Group Policy, using “User Configuration > Administrative Templates > Control Panel > Always open All Control Panel Items when opening Control Panel”.
Show menu options

Directions for Windows 10:

Graphical approach
  1. Go to Microsoft Windows Component: “Accessibility” control panel applet.
  2. Choose “Make the keyboard easier to use”
  3. In the “Make it easier to use keyboard shortcuts” section, check the “Underline keyboard shortcuts and access keys” checkbox.
Modifying the Registry directly

Using this approach, one can modify the registry from the command line. However, some additional care/thought might be needed. For this reason, using the GUI might be a bit more reasonable of an approach for this particular setting. (The directions for that were just provided, previous to this sub-section.) However, if you'd like to use the command line (which is probably best if using automated tools that can perform calculations easily), here's the way to do so:

REG QUERY "HKCU\Control Panel\Accessibility\Keyboard Preference" /v On
REG ADD "HKCU\Control Panel\Accessibility\Keyboard Preference" /v On /t REG_SZ /d 1
REG QUERY "HKCU\Control Panel\Desktop" /v UserPreferencesMask

e.g., checking the box may set the third bit, so instead of REG_BINARY 9E5E068012000000, the new value would be BE5E068012000000.

Perhaps see also: MSDN: Desktop Mask bit 5.


This is expecially complicated, as I like to change two defaults. First, whether it is enabled. Second, the Num Lock setting.

Directions for Windows 10:

Go to Microsoft Windows Component: Accessibility control panel applet.

Choose “Make the mouse easier to use”

I might even ignore the “Turn on MouseKeys” option. I do choose “Set up mouse keys”.

I like these settings:

Numeric Value Setting Name Constant Commmentary
1 “Turn on Mouse keys” MKF_MOUSEKEYSON
4 “Turn on Mouse Keys with left ALT + left SHIFT + NUM LOCK MKF_HOTKEYACTIVE
8 “Display a warning message when turning a setting on” MKF_CONFIRMHOTKEY
16 (0x10) “Make a sound when turning a setting on or off” MKF_HOTKEYSOUND MSDN: Mousekeys settings documentation calls this a “siren”
32 (0x20) “A visual indicator is displayed when the MouseKeys feature is on.” MKF_INDICATOR Presumably this affects whether the system tray icon is shown (?)
64 (0x40) “Hold down CTRL to speed up and SHIFT to slow down MKF_MODIFIERS Enables using the CtrlSpeed value stored in the HKCU\Control Panel\Accessility\MouseKeys registry key
128 (0x80) “Use Mouse Keys when NUM LOCK is:” MKF_REPLACENUMBERS

In the GUI, I like to set this to “Off”. That involves setting the bit to a value of one. (Programmers usually identify as a value of “on”, so the GUI's way of phrasing things feels rather backwards compared to how the value is stored in memory.)

(The default is probably “On” in the GUI, which involves having the bit cleared to zero/off).

I've chosen a personal default different than what Microsoft typically sets, because I commonly use the Numpad for numbers, or mouse movement. I rarely use the Numpad for arrow keys. (I did back in the day when I used the keyboard for movement in games, when a more suitable device was unavailable. Frequently, usage of a “game pad” or “joystick” were preferred. Since the “Microsoft Xbox 360 Controller for Windows” and the support for the Xbox One controller, that reason has felt even less relevant. Even when the keyboard was used, many games supported recognizing the numeric input.)

Additional descriptions (and some of the details shown here) are available at: MSDN: Mousekeys settings documentation.

To set these settings from the command line, figure out the combined totals. For instance, to use all of the options except “Display a warning message when turning a setting on”, add 128+64+32+16+4+2+1 to get 247. (If MKF_CONFIRMHOTKEY were used as well, then the total would be 255.)

REG QUERY "HKCU\Control Panel\Accessibility\MouseKeys" /v Flags
REG ADD "HKCU\Control Panel\Accessibility\MouseKeys" /v Flags /t REG_SZ /d 247
More mouse

To increase visibility:

Windows Components: “Mouse” control panel.

Or, better yet, go straight to the “Pointer Options” tab with:

control main.cpl,@0,2
Display pointer trails”
Checking on can be desirable, or annoying.
Show location of pointer when I press the CTRL key”

This can make finding a lost mouse cursor a bit easier, without needing to move the mouse cursor.

MSFN forum post suggests this may be 0x4000 of HKCU\Control Panel\Desktop\UserPreferencesMask (which would the 15th bit from the right of UserPreferencesMask, which TechNet documentation of Desktop UserPreferencesMask documents as Reserved). (bit 15?)

Power configuration

Keep system from auto-hibernating if there is intention to have the system be remotely accessed...

Enable Remote Desktop

Only available for some versions of Microsoft Windows.

See: Remote Desktop Enabling or Windows Components: “System Properties” “Remote” tab

Other documentation that may be helpful: Windows Components

A common next step may be installing more software. See: TOOGAM's “multi-server project” tutorial: installing more software.

Idea: Make an icon called “All Tasks” which runs explorer.exe shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

Delivery Optimization Download Mode: documentation, forum post
REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config /v DODownloadMode /t REG_DWORD /d 1

Default has been seen to be zero, but apparently can vary based on which edition. Microsoft Documentation on Delivery Optimization indicates “Windows 10 Enterprise and Education editions7rdquo; may default to allow peer-to-peer.