// Token: 0x06000B7A RID: 2938 RVA: 0x00032C30 File Offset: 0x00030E30 private static RegistryKey OpenRemoteKey(string machineName, string registryKey) { RegistryKey result = null; if (!string.IsNullOrEmpty(machineName)) { using (RemoteRegistryBaseKey remoteRegistryBaseKey = new RemoteRegistryBaseKey()) { remoteRegistryBaseKey.Open(RegistryHive.LocalMachine, machineName); try { result = remoteRegistryBaseKey.Key.CreateSubKey(registryKey); RegistryStateIO.trace.TraceDebug <string, string>(0L, "remote RegistryStateIO created, key = {0}, machine = {1}", registryKey, machineName); } catch (SecurityException) { result = remoteRegistryBaseKey.Key.OpenSubKey(registryKey, RegistryKeyPermissionCheck.ReadSubTree); RegistryStateIO.trace.TraceDebug <string, string>(0L, "remote RegistryStateIO opened read subtree, key = {0}, machine = {1}", registryKey, machineName); } catch (UnauthorizedAccessException) { result = remoteRegistryBaseKey.Key.OpenSubKey(registryKey, RegistryKeyPermissionCheck.ReadSubTree); RegistryStateIO.trace.TraceDebug <string, string>(0L, "remote RegistryStateIO opened read subtree, key = {0}, machine = {1}", registryKey, machineName); } return(result); } } try { result = Registry.LocalMachine.CreateSubKey(registryKey); RegistryStateIO.trace.TraceDebug <string, string>(0L, "local RegistryStateIO created, key = {0}, machine = {1}", registryKey, machineName); } catch (SecurityException) { result = Registry.LocalMachine.OpenSubKey(registryKey, RegistryKeyPermissionCheck.ReadSubTree); RegistryStateIO.trace.TraceDebug <string, string>(0L, "local RegistryStateIO opened read subtree, key = {0}, machine = {1}", registryKey, machineName); } catch (UnauthorizedAccessException) { result = Registry.LocalMachine.OpenSubKey(registryKey, RegistryKeyPermissionCheck.ReadSubTree); RegistryStateIO.trace.TraceDebug <string, string>(0L, "local RegistryStateIO opened read subtree, key = {0}, machine = {1}", registryKey, machineName); } return(result); }