如果我以普通用户身份登录,如何为其他用户(在同一台机器上)下载/注册用户证书?可以使用 runas 命令完成此操作,但无法准确弄清楚。
答案1
您可以执行以下操作:
- 以管理员身份启动 PowerShell
- 做
Enter-PSSession localhost -Credential (Get-Credential)
并输入要添加证书的用户的凭据。(这可能需要设置 WinRM 服务,使用Enable-PSRemoting
如果您尚未运行 WinRM 服务) - 现在,您以其他用户身份进入 PowerShell 会话,并且可以使用
Import-Certificate
和Import-PfxCertificate
等为该用户添加证书。
导入证书后,您可以在 PSProvider中通过cd
-ing 和gci
-ing检查它是否有效,它们应该列在那里。这是一个例子:Cert:
[localhost]: PS C:\Users\adminsystem\Documents> cd Cert:
[localhost]: PS Cert:\> cd CurrentUser
[localhost]: PS Cert:\CurrentUser> cd My
[localhost]: PS Cert:\CurrentUser\My> gci
PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My
Thumbprint Subject
---------- -------
F0BD97B4EC6CD8B71C35631738259CF9F2E54381 CN=Adobe Content Certificate 10-5, OU=Cloud Technology, O=Adobe Systems, L=San Jose, S=California, C=US
D1DF7F06B769BCCB3F4479041EC1F06E9CD3CB1A CN=Adobe Intermediate CA 10-3, OU=Cloud Technology, O=Adobe Systems, L=San Jose, S=California, C=US
或者,不用输入 PSSession(尽管我觉得这对于这项任务来说很舒服),你可以直接使用Invoke-Command
(通过提升的 PowerShell)
Invoke-Command -ComputerName localhost { Import-Certificate ... } -Credential (Get-Credential)
第三种方法 - 也是普通用户唯一可行的方法就是以另一个用户身份启动新的 PowerShell
start powershell -credential (Get-Credential)
然后在那里进行证书导入。
答案2
此外,我发现普通用户也可以执行以下选项。
在 PowerShell 中,使用以下命令运行另一个用户的 PowerShell
runas /user:<domain>\<username> powershell
(这将提示输入用户密码)
在用户的 PowerShell 类型上证书管理器并为用户注册证书。