.net sn.exe失败,出现拒绝访问错误消息

.net sn.exe失败,出现拒绝访问错误消息,.net,strongname,sn.exe,.net,Strongname,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 Corpora

当我使用强名称工具创建新密钥以对.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和常规命令提示符。出现相同的错误消息。

您是否以管理员身份运行PowerShell或命令提示符?我发现,在您习惯用户访问控制或关闭用户访问控制之前,这是第一个要查看的地方

是的,我试过运行PS和 常规命令提示符为 管理员相同的错误消息 来了


另一种可能的解决方案是,您需要让您的用户帐户访问位于C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys的密钥容器。为什么不同时启动sysinternals Process Monitor查看您能看到的内容,当我收到任何拒绝访问的消息时,这是我总是做的第一件事


有些人重建机器以解决此问题,但可以通过允许用户访问密钥容器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,这就解决了这个问题。

该死的,我希望我能给+1以上。我是如此爱你!在Windows 7上,路径是
C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys
。您可能必须启用隐藏文件和系统文件的显示,才能查看
所有用户
文件夹。这是用户帐户控制!在Windows 7上,它是C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
%ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys