Я делаю это из службы Windows .NET прямо сейчас с этим кодом.
public const string REG_KEY_MINE = @"SOFTWARE\Mine\Test";
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(REG_KEY_MINE, false))
{
UDP_PORT = (int) key.GetValue("UdpPort", 43221);
TCP_PORT = (int) key.GetValue("TcpPort", 8005);
}
Таким образом, возможно, вы используете свой сервис не под привилегиями администратора по умолчанию ???