Nu cred că puteți importa certificate în magazinul personal al altui utilizator. Aș recomanda să îl adăugați în magazinul mașinii și să acordați acces utilizatorului serviciului la certificatele/cheile de acolo. S-ar putea, de asemenea, să încercați să vă conectați / să rulați utilizatorul serviciului și să îl adăugați în acest fel, dar nu am încercat niciodată asta.
Edit: Am confirmat acest lucru după testare, deși nu sunt sigur dacă acesta este comportamentul așteptat din cauza documentării proaste a certutilului. certutil.exe -store -service (StoreName)
pare să fie sintaxa adecvată pentru a accesa certificatele dintr-un magazin de servicii. Magazinul de service este situat la HKLM\SOFTWARE\Microsoft\Cryptography\Services\(ServiceName)\
în registru, dar certutil inserează SID-ul utilizatorului curent în loc de numele serviciului atunci când caută astfel: HKLM\Software\Microsoft\Cryptography\Services\(SID)\SystemCertificates\
, făcând căutarea eșuată. Puteți suprascrie SID-ul cu -sid
parametru, dar nu pare să funcționeze dacă furnizați numele serviciului. Dacă căutați SID-ul serviciului cu sc.exe showsid (ServiceName)
și conectați-l, scrie „Numele de utilizator sau parola este incorectă”. Se pare că certutil acceptă doar câteva SID-uri cunoscute (am încercat chiar să convertesc SID-ul serviciului în forma sa numerică). Dacă dorești să-mi reproduci munca, va trebui să renunți la Procmon.
Deci, după ce am descoperit asta, voi presupune că puteți importa certificate numai dacă rulați certutil în contextul serviciului. Se pare că cea mai ușoară modalitate de a vă rezolva problema ar fi oricare
- editați manual registrul
- stocați certificatele în depozitul de mașini și acordați-le permisiunile de serviciu
- stocați certificatele în magazinul de utilizatori al utilizatorului în care rulează serviciul