15

厳密な名前ツールを使用して新しいキーを作成し、.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 またはコマンド プロンプトを管理者として実行していますか? User Access Control に慣れるまで、または User Access Control をオフにするまでは、これを最初に確認する場所であることがわかりました。

はい、PS と通常のコマンド プロンプトを管理者として実行してみました。同じエラー メッセージが表示されます。

4

5 に答える 5

30

はい、PS と通常のコマンド プロンプトを管理者として実行してみました。同じエラー メッセージが表示されます。

別の解決策として、C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys にあるキー コンテナーへのアクセス権をユーザー アカウントに付与する必要があります。

于 2008-08-15T02:22:18.227 に答える
3

PowerShell またはコマンド プロンプトを管理者として実行していますか? User Access Control に慣れるまで、または User Access Control をオフにするまでは、これを最初に確認する場所であることがわかりました。

于 2008-08-15T02:06:02.830 に答える
3

sysinternals Process Monitor を起動して、表示される内容を確認してみてください。何らかの種類のアクセス拒否メッセージが表示されたときに常に最初に行うことです。

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

于 2008-08-15T03:43:15.350 に答える
3

これを少し更新するだけです。Vistaで同じ問題に遭遇しました。PC のローカル ユーザーには問題はありませんでしたが、ドメインに切り替えたところ、ドメイン ユーザー (ローカル管理者権限はありますが) は「アクセスが拒否されました」というメッセージが表示されました。ドメイン ユーザーにC:\Users\All Users\Microsoft\Crypto\RSA\MachineKeysへのアクセス権を付与し、修正しました。

于 2009-11-29T21:08:14.660 に答える
2

この問題を解決するためにマシンを再構築する人もいますが、キー コンテナーC:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeysへのアクセス権をユーザーに付与することで解決できます。sn.exe を使用して作成された各コンテナー-i は MachineKeys ディレクトリにあります (別の場所を指定しない限り)。sn.exe によって使用される既定のキー コンテナーもその場所にあります。

キー コンテナーを新しいものにリセットし、その場所を忘れてしまった場合は、sn.exe -c を使用して、厳密な名前のユーティリティのキー コンテナーをリセットできます。そのため、アカウント アクセスの修正が機能しない場合は、別のキー ストアを使用している可能性があるため、リセットする必要があります。

于 2009-02-24T05:53:48.643 に答える