Ping: IT Admins

Ever had a really, really tricky technical issue that was a major pain to solve?

Did your Web searches yield no answers or, worse, a number of time-wasting "solutions" that had nothing to do with your particular issue, though you're sure that someone must have solved the issue before?

Maybe someone posted what you need here at The Grim Admin. Maybe you will post the solution for someone else.

 

PowerShell: Check if Program or Update is Installed and Download with BITS and Install


Scripts & Tools

I recently wrote a PowerShell script for Windows that will check if a program or update is installed and, if not, download it using BITS in low priority, verify the download hash, and then install it and copy the verbose log to a central repository. The example is for the current latest Microsoft Surface Pro 7 firmware, but it can be adapted for just about any installer. 

Read on for the script code...

Continue Reading

Simple Modified Gitflow Workflow


General News

There are many different Git workflows out there. Gitflow has been one of the most popular for a decade now, especially for open source projects. It provides a standardized branching mechanism with a lot of flexibility. However, it is not recommended for projects that desire to maintain a single version in production. On the other end of the spectrum, GitHub flow is another popular branch-based workflow that simplifies the development workflow and is very friendly for continuous integration and continuous delivery (CI/CD). A major downside to Github flow is that features are merged directly into the Master/Main branch which greatly increases the probability of bugs or unstable code being released into production. It also may not be the best workflow for open source projects, which we at the The Grim Admin are full supporters of. Since all features are merged directly into the production branch, you need to really trust all of your developers and that can be hard at times when dealing with open source projects.

For our projects, most of the time we implement a simplified version of the Gitflow model. This modified workflow aims to be simpler in that it cuts out the release branches, which are unnecessary when maintaining a single version in production workflow. The Master/Main branch will always be the latest stable version released and tagged with an updated version number anytime the Develop branch is merged into it. Rebasing will occur if we need to streamline complex history.

How Does it Work?

As stated above, it's basically the Gitflow model without the release branches. There are two lifelong branches. The master branch stores the official release history, and the develop branch serves as an integration branch for features.

  • Master/Main: Always the latest live branch containing the production code. When the Develop branch is merged into it, the Master/Main branch will be tagged with the latest release version number. 
  • Develop: The Develop branch is a one-time branch off of Master/Main and contains the complete history of the project. All features will be merged into into this branch and when reviewed will make their way to the Master/Main branch.

While these two branches are continuous branches that last for the life of the project, the next two branches are created and only exist until they are merged back into either the Master/Main or Develop branches.

  • Hotfix: This is a branch created directly off of the Master/Main branch and should only be used if you need to quickly patch production releases. Having a branch for critical bug fixes allows you to address serious issues without having to wait for the next feature release or interfering with ongoing development. Hotfixes are not the norm and should be an exceptional case. When ready, hotfixes will be merged onto both Master/Main and Develop branches. 
  • Feature: Each new feature will reside in its own branch created off of the Develop branch. A new feature branch can also be created for non-critical bugs in released code that can wait until the next planned release. If possible, feature branches should not be very long-lived. Once ready for code review, a merge/pull request should be made to merge your commits into the Development branch.

Conclusion

This workflow is nice because contributors only need to worry about two types of branches: Hotfix & Feature. A detailed Git history is available on the Develop branch, while the Master/Main branch is always the latest production version ready for install or download AND is tagged so as to easily find previous release versions. This also works well for open source because of the extra layer of code review.

We'd love to hear your thoughts in the comments!

Continue Reading

Screensaver Operations 2.0 & 1.6.3 Released!


Scripts & Tools

This popular screensaver utility has been updated! Two versions have been released:

1.6.3 (2020-06-15) - The final version that runs natively on older operating systems, requiring either .NET 2 or 3.5.

  • General
    • Huge rewrite of a number of parts of the application to increase stability and remove some rare error messages.
  • Bug/Security Fixes
    • Hid action button if option "CancelOnMouseMove" is enabled.
    • Fixed issue where you can't have both "CancelOnMouseClick" and "CancelOnMouseMove" enabled at the same time.

2.0.3 (2020-06-15) - Includes all the updates from version 1.6.3 and has been converted to run natively on newer operating systems.

Download the latest versions of Screensaver Operations

Continue Reading

File Searcher By Owner 2.0 Released!


Scripts & Tools

After many years, we've released the next version of File Searcher by Owner!

File Searcher by Owner is the number one utility for finding files and folders owned by a particular user or group.

Download File Searcher by Owner 2.0

Much of the code has been rewritten and there are a number of new features in this release:

Version 2.0.2.0 (2020-05-15)

  • General
    • New major version 2.x
    • Upgrade .NET to 4.5.1
  • Bug/Security Fixes
    • None
  • New Features
    • Added filename column to search list view
    • Dropdown at bottom right to convert from bytes to kB (kilobyte), KiB (kibibyte), MB (megabyte), MiB (mebibyte), etc. all the way up to YB (yottabyte) and YiB (Yobibyte)
    • Easily set owner on found files from the search list view
    • Logging - click red (i) button at top-right

Known Issues

  • Minor: Right-click "Send To" options fail to work
  • Minor: Option to convert owner string from SID/SAM to User Principal Name (UPN) is unavailable when run on a Domain Controller or non-domain computer

Upcoming Features

  • Search all files in a directory and see the current owners.
  • Search for multiple owners at the same time.
  • Save log file (for now you need to copy and paste the text to another platform or app)
  • Add path & owner to log of searches
  • Add date created/modified/accessed fields

Continue Reading

CMake Compiler Error on Windows Using Visual Studio 2017


Solutions

If you're like me, you've run into the following set of errors when trying to use CMake on Windows and especially when trying to compile Python code:

-- Building for: NMake Makefiles
-- The CXX compiler identification is unknown
-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:131 (project):
  The CMAKE_CXX_COMPILER:

    cl

  is not a full path and was not found in the PATH.

  To use the NMake generator with Visual C++, cmake must be run from a shell
  that can use the compiler cl from the command line.  This environment is
  unable to invoke the cl compiler.  To fix this problem, run cmake from the
  Visual Studio Command Prompt (vcvarsall.bat).

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


CMake Error at CMakeLists.txt:131 (project):
  The CMAKE_C_COMPILER:

    cl

  is not a full path and was not found in the PATH.

  To use the NMake generator with Visual C++, cmake must be run from a shell
  that can use the compiler cl from the command line.  This environment is
  unable to invoke the cl compiler.  To fix this problem, run cmake from the
  Visual Studio Command Prompt (vcvarsall.bat).

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.

Read on for instructions on how to get past this error...

Continue Reading

Windows VPN Won't Connect - Failure Error 720


Solutions

Once in a while, when using the built-in VPN client in Windows 10, we would be able to begin to connect and actually authenticate, but not complete the connection. We would have an error similar to the following in the Application Event Log:

CoId={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}: The user [Domain]\[Username] dialed a connection named My VPN which has failed. The error code returned on failure is 720.

Even rebooting alone wouldn't fix the issue. But, the fix for us was easy. We only needed to delete and have windows recreate some items in the Device Manager. Try the following:

  1. Open Windows Device Manager
  2. Navigate to Network adapters
  3. Uninstall all of the WAN Miniport (XXXX) devices
    • Or at least the one related to your VPN connection
  4. Right-click on any item and choose to Scan for hardware changes
  5. The WAN Miniport adapters should have re-created themselves.
  6. Try connecting to your VPN again.

That seems to clear out the necessary bit of whatever the VPN service was hung up on.

Continue Reading

Wireless & WiFi Doesn't Connect Automatically On Windows 10 1709 & 1803


Solutions

If you've been having issues with your Windows 10 machines not connecting for a minute or even at all after a boot or reboot, you may have been hit with a bug that has affected Windows 10 since version 1709 rolled out. Even if you have a network SSID set to "Connect Automatically," Windows would not connect reliably after a cold boot. This would affect users using pre-shared keys and also 802.1x policies (for example using RADIUS or Windows NPS Server) and all flavors of Windows including Home, Professional, Enterprise, & Education editions.

One way to fix this is by disabling the "Microsoft Wi-Fi Direct Virtual Adapter" in Device Manager, but this came with some side-effects such as disabling the ability to wirelessly project through Miracast (also Intel's WiDi). Those who couldn't or didn't want to do that have had limited success making the issue less likely to occur by disabling the "EnableActiveProbing" registry parameter and/or using Group Policy to enable the "Turn off Windows Network Connectivity Status Indicator Active Tests" & "Do Not Show the Local Access Only Network Icon" policies.

Fortunately, Microsoft has just released a cumulative patch for Windows 10 1803 that seems to have fixed the Wi-Fi issue introduced with the 1709 feature upgrade. It is the October 24, 2018—KB4462933 (OS Build 17134.376) update. Microsoft also recently released an update for Windows 10 1709, but we have not yet tested to see if it fixes this issue. As for the recently released Windows 10 1809, we do not recommend upgraded to that feature update quite yet due to the major issues that still need to be resolved.

Please comment below and let us know if you have had success with the KB4462933 update!

Continue Reading

Get Windows Drivers Off Your Computer


Scripts & Tools

Did you know that you can, with one easy PowerShell command, extract all 3rd-party Windows drivers from a computer to a folder? It uses the DISM module and is built into newer versions of Windows.

  1. Create a folder location that you want to save the driver files to. In the example we will use C:\Drivers
  2. Open PowerShell elevated (as Admin)
    • Tip 1: Right-click on the Start Menu Button and click "Windows PowerShell (Admin)"
    • Tip 2: Or do it all with your keyboard >> Press Windows Key + X and then press the A key
  3. Type the following command:  Export-WindowsDriver -Online -Destination C:\Drivers | Out-File -FilePath C:\Drivers\Drivers.txt
  4. Wait a minute and now you have a folder of all your current drivers backed up or to use for deployment

All the details and switches for this are available from Microsoft's PowerShell Documentation at https://docs.microsoft.com/en-us/powershell/module/dism/export-windowsdriver

Continue Reading

Windows Update Says "Your device is missing important security and quality fixes."

But There are No Updates to Install


Solutions

In Windows Update, when you haven't installed patches for a little while, you will receive a notification in the system tray and also in Windows Update Settings that says "Your device is missing important security and quality fixes." In some cases, your computer might say this message, but when you check for updates from Microsoft servers, it says there are none available.

The possible solution is that your computer is only checking for Windows updates and not for updates to programs such as Microsoft Office. Even if you are up-to-date on updates for Windows itself, the message will still appear if you are behind on Office updates, etc.

To change the setting, go to Start > Settings > Update & Security and click the Advanced options link. Make sure "Give me updates for other Microsoft products when I update Windows" is turned On. After you do that, go back and recheck for updates. Once installed, the warning message should be gone.

Continue Reading