Powershell Get ChildItem Cert:\(本地执行)与Invoke命令结果的区别混淆?

Powershell Get ChildItem Cert:\(本地执行)与Invoke命令结果的区别混淆?,powershell,Powershell,我正在处理下面的代码。考虑到脚本命令行是相同的,我试图确定为什么结果不同 从SVRAD1本地执行: Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer | ogv $D

我正在处理下面的代码。考虑到脚本命令行是相同的,我试图确定为什么结果不同

从SVRAD1本地执行:

Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer | ogv
$DCList = 'SVRAD1'
Invoke-Command -Computer $DCList {
    Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer
} | ogv
结果显示4个SSL证书:

从我的笔记本电脑针对SVRAD1本地执行:

Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer | ogv
$DCList = 'SVRAD1'
Invoke-Command -Computer $DCList {
    Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer
} | ogv
结果仅显示2个SSL证书:


如您所见,证书在本地运行时翻了一倍,这从指纹中可以明显看出,这与当前用户有关。添加到对象列表中

..., PSPath | ogv
PSParentPath
。您将看到这两个副本

Certificate:LocalMachine
Certificate:CurrentUser

在他们的基地。因此,您将看到在两个不同的路径中访问相同的证书。当然,当您远程运行时,当前用户证书将丢失,并且您只会看到本地机器(在本例中,本地机器是远程SVRD,命令在其中运行,而不是您自己的)。

Ok,那么,如何仅为远程服务器获取两台本地计算机?@SeniorSystemsEngineer这就是您要获取的。@SeniorSystemsEngineer也许我不清楚“本地计算机”的含义-本地计算机是SVRD,是命令上下文中的计算机,而不是您的个人笔记本电脑。我已经编辑了此信息。非常感谢更新的评论,是的,现在它更有意义了。