Подтвердить что ты не робот

Ошибка sn.exe с сообщением об ошибке "Отказано в доступе"

Я получаю сообщение об ошибке "Отказано в доступе", когда я использую инструмент сильного имени для создания нового ключа для подписывания сборки .NET. Это отлично работает на компьютере под управлением Windows XP, но не работает на моей машине Vista.

PS C:\users\brian\Dev\Projects\BELib\BELib> sn -k keypair.snk

Microsoft (R) .NET Framework Strong Name Utility  Version 3.5.21022.8
Copyright (c) Microsoft Corporation.  All rights reserved.

Failed to generate a strong name key pair -- Access is denied.

Что вызывает эту проблему и как ее исправить?


Вы используете PowerShell или Командная строка как администратор? я нашел это первым местом для пока не привыкнете к пользовательскому доступу Контроль или включение пользователя Отключить.

Да, я попробовал запустить PS и обычную командную строку как администратор. Появляется одно и то же сообщение об ошибке.

4b9b3361

Ответ 1

Да, я попытался запустить PS и регулярное командное приглашение как администратор. Такое же сообщение об ошибке появляется.

Еще одно возможное решение может заключаться в том, что вам нужно предоставить доступ учетной записи пользователя к контейнеру ключей, расположенному в папке C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys

Ответ 2

Запускаете ли вы PowerShell или Командная строка в качестве администратора? Я обнаружил, что это первое место для просмотра, пока вы не привыкнете к User Access Control или отключите контроль доступа пользователя.

Ответ 3

Почему бы не запустить sysinternals Process Monitor тоже посмотреть, что вы видите, это первое, что я всегда делаю, когда получаю сообщение о запрете доступа?

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Ответ 4

Просто обновить это немного: я столкнулся с той же проблемой в Vista. У моего локального пользователя на ПК не было проблем, но затем мы переключились на домен, и мой пользователь домена (хотя и имел права локального администратора) получил "Access Denied". Я предоставил права доступа пользователей домена к C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys и исправил его.

Ответ 5

Некоторые люди перестраивают свои компьютеры для решения этой проблемы, но их можно решить, предоставив пользователю доступ к контейнеру ключей C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys Каждый контейнер, созданный с помощью sn.exe -i, находится в каталоге MachineKeys (если вы не указали в другом месте). Контейнер ключей по умолчанию, который используется sn.exe, также находится в этом месте.

В случае, если вы reset ваш контейнер ключей к новому, и забудьте, где он находится. Вы можете reset контейнер ключей для утилиты сильного имени с помощью sn.exe -c. Таким образом, если исправление доступа к учетной записи не работает, вы можете использовать альтернативное хранилище ключей, чтобы reset мог быть в порядке.