You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何两种PowerShell场景中一种无法获取PSComputerName值?

问题原因解析

核心差异在于对象类型与属性绑定逻辑

  • 直接返回Get-PSDrive C时,得到的是PowerShell原生的PSDriveInfo对象。在远程执行场景(比如Invoke-Command)中,PowerShell会自动给这类原生对象附加PSComputerName等远程执行相关的扩展属性——这些属性是PowerShell扩展类型系统(ETS)专为原生对象提供的附加元数据。
  • 用哈希表封装结果时,你是手动把Used、Free等属性值提取出来存入了通用的键值对哈希表。哈希表属于基础的.NET集合类型,PowerShell不会为这类通用类型自动注入PSComputerName这类远程相关的扩展属性,所以最终返回的哈希表里就没有这个字段。

额外说明

PSComputerName并非对象本身的固有属性,而是PowerShell在远程执行场景中,通过ETS为原生对象动态添加的元数据。只有当返回的是PowerShell原生类型对象时,才会触发这个自动添加逻辑;自定义的哈希表不在这个逻辑的覆盖范围内。

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 11:59:49