How to Fix Keyset Does not Exist in Windows

How to Fix Keyset Does not Exist in Windows

I recently received an error message stating that the “Keyset does not exist” for all scheduled tasks on a Windows 2003 server. This error caused the scheduled tasks from not running, and caused some problems with a few applications. This is the first time I had seen the error, and so I wasn’t sure what the problem was.

While I have experienced Microsoft Word Errors in the past, this was a first for cryptography in Windows 2003. The error caused the inability to view the “Run as” user ID, let alone change it to something else. Because of this, the tasks couldn’t run, so I had to find a solution to fix it. Fortunately, the solution was easy, and only took a few minutes to implement.

Keyset Does Not Exist Solution

The full error that I received when accessing the schedule tasks was:

General page initialization failed.
The specific error is:
0x80090016: Keyset does not exist
An error has occurred attempting to retrieve task account information.
You may continue editing the task object, but will be unable to change the task account information.

I haven’t seen this error before, it it prevented my schedule task from running. I went online to see what I could find and eventually found a solution that worked for me. I outline the steps to the solution below.

Steps to Correct the Keyset Does Not Exist Issue

After performing some research, I found out that the local system private keys used by the “Cryptographic Services” service had become corrupted. I simply used the following steps to correct the issue:

  1. I stopped the “Cryptographic Services” service.
  2. I then double-clicked “My Computer”, and then clicked “Folder Options” on the “Tools” menu.
  3. On the “View” tab, I clicked “Show hidden files and folders”, and then clicked “OK”.
  4. I deleted all of the files in the “C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\S-1-5-18” folder.
  5. I then restarted the “Cryptographic Services” service.

I’m not sure what actually caused the issue, but the above fix should be able to correct the error if it appears again. After performing the above steps, the “Keyset does not exist” error reported in the Task Scheduler had disappeared, and I could see and change the “Run as” user ID.

Unfortunately, the above steps fixed my issue. A good place to go ask your Windows questions is the Microsoft Tech Community

.

27 Responses to “How to Fix Keyset Does not Exist in Windows”

  1. Battleripper says:

    Thank you so much

    I couldn’t start my task scheduler on windows xp embedded service pack 3
    Because of an error code:

    The new task has been created, but may not run because the account information could not be set.
    0x90090016: Keyset does not exist

    I had 3 files in the:

    “C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\S-1-5-18”
    Which needed to be deleted, even though the services wasn’t even running at any time.

    Thanks!

  2. amit says:

    you saved me too! thanks ? like in previous comments I just had to give the user’s password for each task and It works well

  3. amit says:

    you saved me too! thanks 🙂 like in previous comments I just had to give the user’s password for each task and It works well.

  4. Pete says:

    Great solution, many thanks!!

  5. Ivan says:

    Thanks! It’s work.

  6. Sumesh Mani says:

    Thanks..Its worked for me also…

  7. pezhman says:

    Thanks Paul !
    After the steps I just had to give the user’s password for each task and It works well.

  8. Joe Pye says:

    Worked for me too! Thanks!

  9. Paulo Cuellas says:

    Thanks Paul !
    After the steps I just had to give the user’s password for each task and It works well.

  10. Juan Tejada says:

    Thank you so much… resolved my problem. if you have problem when edit any task this resolved too… JT

    my message error was “general page initialization failed the keyset does not exist windows”

  11. Ramesh says:

    Thanks Man!! U saved my day(s)!

  12. Jesse says:

    Thanks! Worked like a charm.

  13. Tim says:

    Good solution. The solution from MS was crap. In addition to your instructions I restarted the server but my backups still didn’t run. I then reentered the password on all my NTbackups. This seemed to work.
    Timmmmmmmmmmmmmmmmmmmm

  14. Michael says:

    A less intrusive method I found using Paul’s findings was to check the ACLs on each file in the S-1-5-18 directory. One of the files had no permission entries. Not only that, the Summary tab was missing from the Properties dialog. The other files in that directory had entries for local Administrators (R/E) and SYSTEM (Full). To test my theory, I stopped the Cryptographic Services service, and added the following permission entires to the suspect file:

    -(local) Administrators: Read, Read & Execute
    -SYSTEM: Full Control

    Restarted the Cryptographic Services service and checked my tasks.

    Thanks Paul!

  15. jkwt says:

    Thanks for the very informative tips.. it work wonderful..

  16. Stig says:

    THANK YOU! This did the trick 🙂

    I’ve had this problem for so long and couldn’t find any way to fix it before I found your articel. My day just got better.

  17. Interesting. I never had this kind of problem before. But I guess this can be very helpful in case it happen.

  18. Eric Tannenbaum says:

    From a programmatic point of view, I found this link to be EXTREMELY helpful:

    http://code.google.com/p/libfenc/source/browse/trunk/pbc-0.5.8/arith/init_random.win32.c?r=55

    This code sample presented my problem exactly and its solution, calling CryptAcquireContext with flag CRYPT_NEWKEYSET worked.

  19. Jay says:

    Give persmission to Everyone on the C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys folder.

    This should resolve the “Keyset does not exist” error.

  20. Gibson99 says:

    Thanks – microsoft’s own kb was worthless for me in this instance – it showed me an article on win2k (not 03) that said to start a service and you should be good. well that service was already running, and it wasn’t the crypto service. thanks for this – saved me a bunch of time/hassle!

    only thing i would add – for existing scheduled tasks that had stopped working, i had to go in and set the password for the user again. after that, the tasks would run – both on schedule and manually (right-click, run).

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.