gpt4 book ai didi

powershell - 如何使用powershell向用户授予证书私钥的权限?

转载 作者:行者123 更新时间:2023-12-04 17:21:04 25 4
gpt4 key购买 nike

证书已安装在机器上。现在我想向应用程序用户授予对证书私钥的读取权限。

最佳答案

这是答案。

创建了一个 powershell 脚本文件 AddUserToCertificate.ps1

这是脚本文件的内容。

param(
[string]$userName,
[string]$permission,
[string]$certStoreLocation,
[string]$certThumbprint
);
# check if certificate is already installed
$certificateInstalled = Get-ChildItem cert:$certStoreLocation | Where thumbprint -eq $certThumbprint

# download & install only if certificate is not already installed on machine
if ($certificateInstalled -eq $null)
{
$message="Certificate with thumbprint:"+$certThumbprint+" does not exist at "+$certStoreLocation
Write-Host $message -ForegroundColor Red
exit 1;
}else
{
try
{
$rule = new-object security.accesscontrol.filesystemaccessrule $userName, $permission, allow
$root = "c:\programdata\microsoft\crypto\rsa\machinekeys"
$l = ls Cert:$certStoreLocation
$l = $l |? {$_.thumbprint -like $certThumbprint}
$l |%{
$keyname = $_.privatekey.cspkeycontainerinfo.uniquekeycontainername
$p = [io.path]::combine($root, $keyname)
if ([io.file]::exists($p))
{
$acl = get-acl -path $p
$acl.addaccessrule($rule)
echo $p
set-acl $p $acl
}
}
}
catch
{
Write-Host "Caught an exception:" -ForegroundColor Red
Write-Host "$($_.Exception)" -ForegroundColor Red
exit 1;
}
}

exit $LASTEXITCODE

现在将其作为部署的一部分运行。在 powershell 控制台窗口中运行上述脚本的示例。
C:\>.\AddUserToCertificate.ps1 -userName testuser1 -permission read -certStoreLocation \LocalMachine\My -certThumbprint 1fb7603985a8a11d3e85abee194697e9784a253

这个例子给出 阅读 用户权限 testuser1 在安装在 中的证书上\LocalMachine\我的 并有拇指印 1fb7603985a8a11d3e85abee194697e9784a253

如果您使用的是 ApplicationPoolIdentity,那么您的用户名将是 'IIS AppPool\AppPoolNameHere'

备注 :您将需要使用 ' ' 因为 IIS 和 AppPool 之间有一个空格。

关于powershell - 如何使用powershell向用户授予证书私钥的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40046916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com