Сбой sn.exe с сообщением об отказе в доступе - PullRequest
13 голосов
/ 15 августа 2008

Я получаю сообщение об ошибке «Доступ запрещен», когда я использую инструмент строгого имени для создания нового ключа для подписи сборки .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 и обычную командную строку от имени администратора. Появляется то же сообщение об ошибке.

Ответы [ 5 ]

27 голосов
/ 15 августа 2008

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

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

3 голосов
/ 30 ноября 2009

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

3 голосов
/ 15 августа 2008

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

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

3 голосов
/ 15 августа 2008

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

2 голосов
/ 24 февраля 2009

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

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

...