2016-10-06 1 views
2

J'essaie d'utiliser SignTool.exe pour signer un code exécutable avec un certificat installé dans le magasin de certificats Windows. Je suis en mesure de le faire fonctionner en installant le cert dans la section Local Machine/Personal puis en tant qu'administrateur, mais je n'arrive pas à trouver le bon endroit où le certificat doit être installé pour fonctionner en tant qu'utilisateur actuel.Emplacement du certificat SignTool pour un utilisateur non-administrateur

J'ai installé le cert dans Current User/Personal et quand je fais:

Get-ChildItem -Path Cert:\CurrentUser\My 

le certificat est dans la liste. Mais quand j'essaie signe avec:

& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" 
    sign /v /n "West Wind Technologies" 
    /s MY 
    /tr "http://timestamp.digicert.com" /td SHA256 /fd SHA256   
    ".\Builds\CurrentRelease\MarkdownMonsterSetup.exe" 

en cours d'exécution en tant qu'utilisateur non-admin il ne fonctionne pas. J'obtenir:

SignTool Error: No certificates were found that met all the given criteria.

Si j'ajoute le drapeau /sm et exécuter exécuter en tant qu'administrateur et ont dans le magasin personnel - cela fonctionne.

Où dois-je placer le certificat dans le magasin de certificats pour le faire fonctionner sans droits d'administrateur?

Répondre

0

Pour l'utilisateur actuel, vous pouvez utiliser Certmgr pour l'importer dans le dossier personnel. J'utilise l'option signtool/n.

Un peu plus difficile est lorsque vous utilisez signtool dans un environnement automatisé (si votre sécurité est configurée correctement) l'agent de construction s'exécute sous un compte de service limité. Une option pourrait être d'utiliser un fichier alors.