diff --git a/mRemoteNG/Config/Putty/PuttySessionsRegistryProvider.cs b/mRemoteNG/Config/Putty/PuttySessionsRegistryProvider.cs index 3bfad8e68..5f3aa458c 100644 --- a/mRemoteNG/Config/Putty/PuttySessionsRegistryProvider.cs +++ b/mRemoteNG/Config/Putty/PuttySessionsRegistryProvider.cs @@ -111,12 +111,15 @@ namespace mRemoteNG.Config.Putty try { - var key = string.Join("\\", CurrentUserSid, PuttySessionsKey).Replace("\\", "\\\\"); + var keyName = string.Join("\\", CurrentUserSid, PuttySessionsKey).Replace("\\", "\\\\"); if (Registry.Users.OpenSubKey(string.Join("\\\\", CurrentUserSid, PuttySessionsKey)) == null) return; - - var query = new WqlEventQuery( - $"SELECT * FROM RegistryTreeChangeEvent WHERE Hive = \'HKEY_USERS\' AND RootPath = \'{key}\'"); + var sessionsKey = Registry.Users.OpenSubKey(keyName); + if (sessionsKey == null) + { + Registry.Users.CreateSubKey(keyName); + } + var query = new WqlEventQuery($"SELECT * FROM RegistryTreeChangeEvent WHERE Hive = \'HKEY_USERS\' AND RootPath = \'{keyName}\'"); _eventWatcher = new ManagementEventWatcher(query); _eventWatcher.EventArrived += OnManagementEventArrived; _eventWatcher.Start();