Category Archives: OS

Operating Systems

Windows Update – Service not running or Windows System apps appear as from unknown publisher

There are two symptoms to the same problem in Microsoft Windows:

  1. Windows Update cannot currently check for updates, because the service is not running. You may need to restart your computer
  2. When you Run As Administrator mmc.exe, notepad.exe, regedit.exe and any other program, you get — Do you want to allow the following program from an unknown publisher to make changes to this computer?

These errors started to appear after one of the Intel RAID 1 (Intel ICH8R/ICH10R SATA RAID controller) drives have failed, and was replaced with the new drive. The RAID rebuilt was successful, however the above symptoms have appeared.

Where is the problem?

Windows Cryptographic Services. The service have two folders under Windows/System32 directory:
C:\Windows\System32\catroot
and
C:\Windows\System32\catroot2

One of them have the log file – edb.log, that was full of the error messages.

CatalogDB: 18:50:01 AM 05/16/2016: JetInit Corruption
CatalogDB: 18:50:01 AM 05/16/2016: catadnew.cpp at line #1900 encountered JET error -583
CatalogDB: 18:50:01 AM 05/16/2016: catadnew.cpp at line #901 encountered JET error -583
CatalogDB: 18:50:01 AM 05/16/2016: JetInit Corruption
CatalogDB: 18:50:01 AM 05/16/2016: catadnew.cpp at line #1921 encountered JET error -583
CatalogDB: 18:50:01 AM 05/16/2016: catadnew.cpp at line #911 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: JetInit Corruption
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #755 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #969 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #6724 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #6918 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #7075 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #3454 encountered JET error -583
CatalogDB: 18:50:02 AM 05/16/2016: catdbsvc.cpp at line #2702 encountered JET error -583

Also in the GUID-named subfolders there are two database files called “catdb”.
C:\Windows\System32\catroot2\{127D0A1D-4EF2-11D1-8608-00C04FC295EE}\catdb
and
C:\Windows\System32\catroot2\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\catdb

They both were missing. Folders were empty… And do not try to copy them from another PC. It would not work. Windows will automatically delete them after Cryptographic Service is started.

Where is the solution?

Update your RAID driver! Yes simple as that, update driver (to at least version: 11.7.0.1013 from 12/3/2012), and these files are regenerated automatically. On modern Intel i7 CPU it took about 1 hour.

P.S. I believe that this applies not only to Windows 7, but also to Windows 8.1 and Windows 10.
P.S.S. Running Microsoft Windows Resource Checker (SFC.exe) does not do anything useful in this case.

Solution to “The term ‘-Version’ is not recognized as the name of a cmdlet…”

When trying to run PowerShell.exe with command line argument -Version, you may get the following error:
-Version : The term '-Version' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ -Version 2.0 -InputFormat none -File C:\SomeFolder\YoutScript.ps1
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (-Version:String) [], CommandNot
FoundException
+ FullyQualifiedErrorId : CommandNotFoundException

The command line used:
powershell.exe -ExecutionPolicy Bypass -Version 2.0 -InputFormat none -File C:\SomeFolder\YoutScript.ps1

You can resolve this error, by changing order of Version parameter:

powershell.exe -Version 2.0 -ExecutionPolicy Bypass -InputFormat none -File C:\SomeFolder\YoutScript.ps1

This seems like a bug, because official documentation for the PowerShell does not mention order of parameters. Even more, the use Execution Policy before Version. See the following PowerShell help article in MS site.

MS-DOS command redirection operators

This article is from our Febooti archive, it was relevant then, and I think that it is still relevant today (a few details changed).
Previous article: IF statement in DOS batch file.

console-dos-2-small

The two most commonly used redirection operators used in console are the output redirection operator (>) and the input redirection operator (<). The output redirection operator > is used to send the command output to somewhere other than the screen. A plain text file would be an example. The next example shows how to put the results of the DIR command into a text document. Let us name the text file file-list.txt:

C:\>dir >file-list.txt

When this command is entered either at a Windows CMD prompt or in a batch file/script you do not see the directory listing like you would if you had simply entered the DIR command. Instead, a file is created and in this case the file is named file-list.txt. This can be used to capture practically any command.

Run this file several times and notice the changes. Each time you run this program (DIR >file-list.txt), the result of the DIR command gets saved to that file-list.txt file. Note that “>” will erase the preceding contents and save the new DIR listing information. But what if we wanted to create a type of log that would append and save each new occurrences of the above program? We can use what is called the append redirection operator. This is done by adding another greater than sign (>>).

C:\>DIR >>file-list.txt

Next we have the input redirection operator (<). The input redirection operator is used to send the contents of a file to a DOS command (normally the contents of keyboard input get sent to the DOS command).

An example of when you would want to do this would be if you have a text file already prepared, or for use in the batch script, when run in unattended mode. You can enter the following command sequence:

C:\>more <file-list.txt

If your DIR listing was very long, then you would be prompted to “Press any key to continue…” after a screen-full (one page) of data was displayed. Once you pressed any key you would see the next page of text. If it was short then the MORE command will simply display the whole text as if you typed the TYPE command. The TYPE command is used to display the contents of a file. You do not need to use a redirection operator to use the TYPE command.

C:\>type file-list.txt

This will type out the contents of file-list.txt to screen. And if the file contains more than one screen, it will display the text very fast, and you may only see the last page.

The next command we will learn is the DOS piping command. The pipe | can usually be inserted to the command prompt by holding down the SHIFT key and pressing the key to the direct left of the backspace key (or under backspace on some keyboards). DOS piping is a technique that combines both the output and input redirection operators. We can capture the output of one command and send it as the input to another command. Example:

C:\>dir | more

In this example the pipe command captures the output of the DIR command and sends it as input to the MORE command which will display one screen-full of results at a time.

You will come to find that batch scripting really does have a great amount of power. However, there will be a times when you will find that batch scripting is not powerful enough. When you find yourself in a such situations, you may want to look at other scripting possibilities such as multi-platform Python, Perl, Lua, or if you need all native Windows way, PowerShell is the answer.

This article is from our Febooti archive, it was relevant then, and I think that it is still relevant today (a few details changed).