我正在处理下面的代码。鉴于脚本命令行相同,我试图确定结果不同的原因。
从 SVRAD1 本地执行:
Get-ChildItem Cert:\ -ExpiringInDays 365 -Recurse | where-object {$_.subject -like "*Microsoft*"} | Select-Object ThumbPrint, FriendlyName, Subject, NotAfter, HasPrivateKey, Issuer | ogv
结果显示 4x SSL 证书:
在我的笔记本电脑上针对 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 证书:
最佳答案
如您所见,从指纹可以明显看出,证书在本地运行时翻了一番,这与当前用户有关。添加到您的对象列表
..., PSPath | ogv
或PSParentPath
。你会看到两个重复的有
Certificate:LocalMachine
Certificate:CurrentUser
在他们的基地。因此,您会看到在两个不同路径中访问的相同证书。当然,当您远程运行时,当前用户证书将丢失,您只能看到本地机器(在这种情况下,本地机器是远程 SVRD,在该命令运行的地方,而不是您自己的机器)。
关于powershell - Get-ChildItem Cert :\(Locally executed) vs. Invoke-Command 结果差异混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64113038/