将证书指纹另存为powershell中的变量

将证书指纹另存为powershell中的变量,powershell,awk,formatting,Powershell,Awk,Formatting,这里是Powershell newblart。我正在尝试将特定证书中的指纹保存为变量,以便稍后在脚本中使用。我已经走远了!但还不够远。我能够通过证书模板过滤证书,所以我已经缩小到只显示一个指纹,但还有其他输出阻止了我。我尝试使用split方法(错误地)开始截断输出。以下是我目前掌握的情况: PS C:\Users\Administrator> Get-ChildItem Cert:\LocalMachine\my | ? {$_.Extensions | ? {$_.oid.friendl

这里是Powershell newblart。我正在尝试将特定证书中的指纹保存为变量,以便稍后在脚本中使用。我已经走远了!但还不够远。我能够通过证书模板过滤证书,所以我已经缩小到只显示一个指纹,但还有其他输出阻止了我。我尝试使用split方法(错误地)开始截断输出。以下是我目前掌握的情况:

PS C:\Users\Administrator> Get-ChildItem Cert:\LocalMachine\my | ? {$_.Extensions | ? {$_.oid.friendlyname -match "Template" -and $_.Format(0) -match "Kerberos Authentication"}}


    Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\my


Thumbprint                                Subject
----------                                -------
8635AF13624FEA042664BCDD0EC4661C7E07FA0F
我需要的只是指纹,而不是所有其他输出。 我试图使用split,但看起来这个输出不是字符串。这就是我在拆分时遇到的错误。(这里我只是想在spave上拆分,看看这会把我引向何方,空间可能是尝试拆分的错误对象):


任何帮助都是适当的。再次感谢。

您的第一条语句的返回值是一个对象,带有
指纹
属性,这就是它以这种方式显示的原因。但该表格格式仅用于显示目的。一般来说,你不会对输出结果采取行动。相反,你只想得到财产。所以你可以:

将整个语句用括号括起来,然后像这样使用点
: 使用
选择对象
: 首先指定一个变量,然后执行上述任一操作:
首先,确定要分配给变量的证书的指纹,然后使用以下语法:

对于当前用户证书存储:

$MyCert = $(Get-ChildItem Cert:\CurrentUser\my | Where-Object {$_.Thumbprint -eq '[THUMBPRINT]'})
$MyCert = $(Get-ChildItem Cert:\LocalMachine\my | Where-Object {$_.Thumbprint -eq '[THUMBPRINT]'})
对于本地计算机证书存储:

$MyCert = $(Get-ChildItem Cert:\CurrentUser\my | Where-Object {$_.Thumbprint -eq '[THUMBPRINT]'})
$MyCert = $(Get-ChildItem Cert:\LocalMachine\my | Where-Object {$_.Thumbprint -eq '[THUMBPRINT]'})

完美的工作起来很有魅力!非常感谢!
$MyCert = $(Get-ChildItem Cert:\CurrentUser\my | Where-Object {$_.Thumbprint -eq '[THUMBPRINT]'})
$MyCert = $(Get-ChildItem Cert:\LocalMachine\my | Where-Object {$_.Thumbprint -eq '[THUMBPRINT]'})