2

管理者としては正常に機能するが、管理者としては失敗する自己署名証明書を作成する Powershell スクリプトを作成しています。

Create メソッドを呼び出すと失敗するコードの一部:

$PrivateKey = New-Object -ComObject X509Enrollment.CX509PrivateKey
$PrivateKey.ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
$PrivateKey.KeySpec = 0x1
$PrivateKey.Length = 2048

# set security descriptor
$PrivateKey.SecurityDescriptor = "D:PAI(A;;0xd01f01ff;;;SY)(A;;0xd01f01ff;;;BA)(A;;0x80120089;;;NS)"

# key will be stored in local machine certificate store
$PrivateKey.MachineContext = 0x1

# export will be allowed
$PrivateKey.ExportPolicy = 0x1
$PrivateKey.Create()

次のエラーがスローされます。

Exception calling "Create" with "0" argument(s): "CertEnroll::CX509PrivateKey::Create: Access is denied. 0x80070005
(WIN32: 5)"
At C:\dev\LinoaSSC.ps1:106 char:1
+ $PrivateKey.Create()
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation

このエラーのトラブルシューティングまたは解決方法を教えてください。みんなありがとう!

4

2 に答える 2

1

これを実行するには、ローカル マシンの管理者である必要があり、ほとんどのアクションは証明書を使用していると思います。これを回避するための受け入れ可能な方法は知りませんが、権限を昇格させる方法はあります。

于 2013-02-19T16:15:25.297 に答える