Сбой 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 и обычную командную строку от имени администратора. Появляется то же сообщение об ошибке.

15.08.2008 02:01:13
5 ОТВЕТОВ
РЕШЕНИЕ

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

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

27
15.08.2008 02:29:33
Блин, хотелось бы дать больше +1. Я так люблю тебя!
J.Hendrix 13.10.2009 16:22:34
На Windows 7 путь есть C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys. Возможно, вам придется включить показ скрытых и системных файлов, чтобы увидеть All Usersпапку.
iheartcsharp 30.04.2015 16:24:50

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

3
15.08.2008 02:06:02
Это контроль учетных записей пользователей !
Vercas 27.07.2011 22:11:33

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

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

3
15.08.2008 03:43:15

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

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

2
24.02.2009 05:53:48

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

3
29.11.2009 21:08:14
В Windows 7 это C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys
djs 30.01.2013 23:41:29
%ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys
hypersw 9.12.2014 19:40:06