Создание записей реестра в Windows 2008 64bit - PullRequest
0 голосов
/ 10 августа 2010

Я написал кучу модульных тестов для чтения / записи реестра Windows.Они используют CRegKey ATL API.

Они отлично работали на моем настольном компьютере с XP Pro, но когда тесты запускались на сборочной машине - Windows 2008 x64 Server - тестыошибка с ERROR_ACCESS_DENIED при попытке создать ключ с помощью Создать .

Пользователь, вошедший в систему сборки, принадлежит к группе администраторов.

Google вызываетсписок того, как создать реестр в блокноте, и msdn продолжает давать мне пропущенные страницы, когда я нажимаю на ссылки.

Что мне нужно знать, это то, что мне нужно сделать, чтобы тесты проходили при запускена сервере? Я предполагаю, что это требует атрибутов безопасности, но я никогда не углублялся в это, поэтому я не знаю, с чего начать.Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 10 августа 2010

Дни программ, изменяющих или создающих ключи глобального реестра, прошли.Он все еще работает на вашем компьютере с XP, потому что вы входите в систему как администратор.Vista, Win7 и Windows 2008 имеют UAC, чтобы никто (т. Е. Вредоносное ПО) не мог связываться с реестром, даже если он вошел в систему с учетной записью администратора.

Вы можете добавить манифест в вашу программу для вызова приглашения UAC, ноэто совершенно непрактично для юнит-тестов.Переработайте свой модульный тест, чтобы вместо этого записать в куст HKEY_CURRENT_USER.То же самое, вероятно, относится и к программе, для которой вы написали тесты.

1 голос
/ 10 августа 2010

Недостаточно войти в систему как администратор;Ваша программа должна быть запущена с правами администратора (то есть с использованием манифеста).

...