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.

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


Are you running your PowerShell or Command Prompt as an Administrator? I found this to be the first place to look until you get used to User Access Control or by turning User Access Control off.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
14
0
7 285
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Это пользовательский контроль Счет!

Vercas 28.07.2011 02:11
Ответ принят как подходящий

Yes I have tried running PS and the regular command prompt as administrator. The same error message comes up.

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

Блин, если бы я мог дать больше +1. Я люблю тебя очень!

J.Hendrix 13.10.2009 20:22

В Windows 7 путь - C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys. Возможно, вам придется включить отображение скрытых и системных файлов, чтобы увидеть папку All Users.

iheartcsharp 30.04.2015 19:24

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

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

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

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

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

В Windows 7 это C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys

djs 31.01.2013 03:41

%ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys

hypersw 09.12.2014 22:40

Другие вопросы по теме