Saturday, October 09, 2021

Microsoft Windows File Explorer Customization

The File Explorer in Microsoft Windows allows access to various context-sensitive menus by right-clicking the mouse button. You may customize many of the menus. This post will show you how to modify the context-sensitive menus for "new" file, "open with", and "send to".

The "new" menu may already have items for BMP image and several other document types. Look at your configuration by going to an empty place on the Desktop or in File Explorer, right-click the mouse button, and go to New.


Let's add an item to create a new JPEG image. Press the Windows Start Button and type registry. Click on the Registry Editor app. 

In the Registry Editor go to registry key: HKEY_CLASSES_ROOT\.jpg

Right-click on ".jpg" and add a new Key with name ShellNew.

In ShellNew, create a new "String Value" with value of FileName. Modify the FileName entry with "Value Data" of Template.jpg.


You may close the Registry Editor. Now right-click on the Desktop or in File Explorer, go to New, and there should be an option to create a new JPEG image.



The context-sensitive Open With menu shows appropriate choices for each file type. Because there are many file types, there are many settings which may be shown depending on the file type. In the following picture, this is a text file and the file type is ".txt".



Create the new text document, then right-click on the file and go to the Open With entry. You should see various text editors.



These settings are stored in the Windows registry and may be modified with the Registry Editor for each file type.

Let's add a program in the Open With menu. Click on the Windows Start Button, type regedit, and click on Registry Editor.

In the left pane of the Registry Editor, go to key: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

Go to the .txt entry, and click on OpenWithList.



Add the office writer application to the Open With menu for ".txt" files. In the right-hand panel, right-click and press New, String Value. The Value Name should be the next letter in the alphabet. 

Double-click the new entry and in the Value Data field add the office writer application of "soffice.exe".


Now when you go to the Open With item, you should see the office writer application as a choice.

While you are in Registry Editor, you may also remove items. Go to the file type, select the item, and then press Delete.



The Send To in File Explorer is a context-sensitive menu which appears when you right-click an item. Let's add an item to the list.


Press the Windows Start Button and type: run
Click the Run App. In the Run app, enter shell:sendto and press the OK button.



This will open a folder which contains the various items. 



Delete any items you do not want by selecting the item and deleting it. 


Add items by copying a shortcut to the program into this folder. For example, if you would like Microsoft Paint to appear in the Send To menu, find the path to the program (Start Button, scroll to Windows Accessories and expand it, right-click on Paint, choose More, then choose Open File Location. After the File Explorer window open, right-click on Paint and choose Copy. In the SendTo folder, right-click on a white sort and choose Paste Shortcut.)


The SendTo folder will look like:


Now when you are in File Explorer and right-click an item to display the context-sensitive menu, Send To will show the new entry which you just added. It may be useful to add the Notepad application to the Send To menu to make it easy to quickly bring up the editor for working with ".cmd" files (Windows command script files or batch files).



Monday, July 26, 2021

Microsoft Windows Core Memory Integrity

Microsoft Windows 10 memory integrity, or "core isolation", uses hardware virtualization to protect memory used by Windows system processes from manipulation (often by malware). This is generally a good security feature to enable, though it may interfere with older device drivers. This option is not automatically turned on by some vendors, so you will need to check this yourself.

Read about Microsoft's Core Isolation.

A recently purchased MS Windows 10 chromebook from Dell had this option turned off, so Core Integrity should be checked even on factory-delivered machines. The Dell chromebook was runing the Windows version known as "Windows 10 Home in S mode". 

For any Windows 10, check if Windows is running with virtualization by looking in Task Manager. Press Start button, and type: task manager
Choose the Task Manager app. 

In Task Manager, click the Performance tab, then CPU. Look in the lower right for Virtualization. In the following picture of Task Manager, hardware virtualization is enabled. Alternatively, open a command prompt, run systeminfo, and look for the Hyper-V line.




 

 

 

 

 

 

 

 

 

 

If Virtualization is not enabled, reboot the machine and press a key for BIOS setup (often a function key or the DEL key). In the BIOS setup utility, look for virtualization or "VT" and turn it on. Save the BIOS settings and restart the machine. Here are a couple different BIOS pictures:














After rebooting and starting Windows, go to the Settings app (press the Start button, press the gear icon). In the Settings app, type: core isolation

Pressing Core Isolation will open Windows Security, Device Security, and Core Isolation Details. 




























If you do not see Memory Integrity on the Core Isolation page, you will need to restart the computer and enter the BIOS settings to turn on virtualization options. 

If Memory Integrity is already turned on, your machine is configured to use core memory integrity and your are done. 

If Memory Integrity is off, try to turn it on. In some cases it will turn on easily. In other cases it will want a reboot. In more challenging cases it will find incompatible drivers and you can decide how to correct each driver.















For the following procedures, you will need to be the computer Administrator.

It may take a restart to fully set Core Isolation to on. If it finds incompatible drivers, press the Review link.














 

Some incompatible drivers must be completely removed. In one case, I encountered an incompatible Realtek sound driver that I removed, rebooted, turned on Memory Integrity, and then was able to reinstall the same sound driver while successfully keeping Memory Integrity turned on.

























 


In this example, the Realtek sound driver and the ViMicro web cam drivers are incompatible. To remove these drivers, look in device manager and uninstall the drivers. As computer Administrator, press Start button and type: device manager
Look around in Device Manager for the yellow flags, and try to update or uninstall the device and delete the driver software. In this case, the old driver "oem3.inf" could not be removed through Device Manager.

The driver was able to be removed from the command line as Administrator: pnputil /delete-driver oem3.inf










If a driver will not uninstall, you can also remove it by hand (or rename it). Look in folder C:\Windows\System32\drivers.


When done resolving incompatible drivers, the Memory Integrity setting in Windows Security Center should look like this.






 

 

 

 

 

 

 

 

 

 

When finished, you may want to create a restore point. Press the Start button and type: restore point
Configure and Create the new restore point. 

You should now check for corrupt Windows files. This will run the Windows Module Installer and verify and correct the Windows software.

 

Monday, July 19, 2021

Ubuntu logon info and message of the day (motd)

This post will show you how to determine your public-facing IP address from the command line.


Upon an interactive logon, Ubuntu prints some brief machine information. This includes a header, sysinfo from /usr/bin/landscape-sysinfo and a summary of available patches.

You may add your own scripts by creating a bash script in /etc/update-motd.d and set the execute permission on the file. The files in the directory have a particular naming convention, and are run in alphabetical (numeric) order.

On external facing machines, I often create a script which will print the external IP address following the networking info of the landscape-sysinfo script.

Create file /etc/update-motd.d/61-external-ip owned by root
and give it execute permission:
sudo chmod 755 /etc/update-motd.d/61-external-ip

 

Place the following in this new file:
#!/bin/sh

ONE=$(/usr/bin/curl -s checkip.amazonaws.com)
TWO=$(/usr/bin/curl -s ifconfig.me)

if [ $ONE = $TWO ]
  then
    printf "  External IPv4: "
    printf $ONE
  else
    printf "  External IPv4 may be: "
    printf $ONE
    printf " or"
    printf $TWO
fi
printf "\n"


Save the file, then logon to the machine and look at the interactive logon messages. Some of the output will look like:

Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-77-generic x86_64)

  System information as of Mon 19 Jul 2021 01:30:42 PM MDT

  System load:              0.58
  Usage of /:               5.4% of 1.79TB
  Memory usage:             15%
  Swap usage:               0%
  Temperature:              44.0 C
  Processes:                173
  Users logged in:          1
  IPv4 address for enp0s25: 192.168.0.9
  External IPv4: 123.456.7.89