powershell - Get-ChildItem Cert :\(Locally executed) vs. Invoke-Command 结果差异混淆?

标签 powershell

我正在处理下面的代码。鉴于脚本命令行相同,我试图确定结果不同的原因。

从 SVRAD1 本地执行:

Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer | ogv

结果显示 4x SSL 证书:

enter image description here

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

$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

结果仅显示 2x SSL 证书:

enter image description here

最佳答案

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

..., PSPath | ogv

PSParentPath。你会看到两个重复的有

Certificate:LocalMachine
Certificate:CurrentUser

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

关于powershell - Get-ChildItem Cert :\(Locally executed) vs. Invoke-Command 结果差异混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64113038/

相关文章:

regex - 使用 RegEx 与 PowerShell 匹配

xml - Powershell如何仅替换给定数量的火柴?

powershell - 尝试将变量传递到 [adsisearcher] 的问题

Azure DevOps : while using Release Pipeline in classic mode, 我无法将变量的值传递给其他任务

excel - 将哈希表导出为 CSV,并将键作为列标题

arrays - PowerShell 通过引用函数传递两个数组

string - Powershell 参数列表和双+ 空格

networking - 如何在Powershell中隐藏网络使用的输出

powershell - 微软在 PowerShell CmdLet 参数命名方面的一致性

powershell - 如何在 Powershell 中返回格式化为表格的自定义对象?