问题标签 [pscustomobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
37 浏览

c# - 添加依赖于第一种类型的第二种类型时出错

我正在使用使用自定义对象的 PowerShell 编写脚本。但棘手的部分是这个自定义对象使用另一个自定义对象作为属性。我正在尝试使用 C# 语法来做到这一点。

当我尝试运行脚本时,出现此错误:

有没有办法在 PowerShell 中做到这一点?这是我在一个文件中的类代码:

我不限于 C# 语法,因此欢迎所有解决方案。

0 投票
2 回答
631 浏览

powershell - Powershell从多个文件创建对象

我正在从 json 文件制作 PSObject

bar.json

我可以使用 ConvertFrom-Json 从 json 中创建一个 PSCustomObject

但是,如果我尝试分解多个 json 文件,我会得到一个数组

为了迭代 $foo,我需要 2 个不同的代码路径,具体取决于对象类型。

我可以从多个 json 文件中获取单个对象吗?
如果不是,我将如何将一组对象压缩成一个对象?

我试图制作一个$bar包含所有数组项的新对象$foo


根据 Walter Mitty 的要求更新。如果我加载一个文件并运行$foo[0]

解决方案

我最初实现了 AP 的答案,但后来将其重构为使用 mklement0 答案。

虽然 $allObjects 是一个数组,但它仍然允许我按名称引用值,这是我正在寻找的

0 投票
1 回答
782 浏览

powershell - 格式表从花括号中的 pscustomobject 输出列表

格式表的输出
我正在尝试使用 PSCustomObject 来存储来自远程计算机的一堆信息。我似乎无法让 Format-Table 的输出按照我想要的方式工作。

如图所示,PSCustom 对象中的项目列表显示在大括号内,而不是列标题下的列表。

下面是我用来生成测试 PSCustomObject 并填充其中一个属性的代码。

0 投票
1 回答
1602 浏览

powershell - 将自定义对象数组转换为 HTML

我目前正在尝试将一些 XML 文档输入脚本并将它们初始化为[PSCustomObject]. XML 文档需要分成几个对象,然后添加到一起。

这是我的脚本:

这将 XML 结构正确地导入到对象数组的 2 个不同实例中——我应该提到 XML 最初来自规范化数据库,因此每个 XML 文档或多或少代表一个表——最终成为 PowerShell 中的多维数组。

我可以参考各个数组对象

我希望能够ConverTo-Html制作报告 - 但我不知道如何枚举这种类型的结构 - 我应该留下一个具有一对多关系的表(这是多维数组还是锯齿状数组?)可以有人给我一些关于如何输出这些类型的结构的指示吗?当输出是某种类型的矩阵时,遍历数组或对象很好 - 但是当结构对于某些列是多行而对于其他列是单行时,我们应该使用什么。

例如我的输出Format-Table

我已经尝试扩展属性并且已经在整个网络上阅读,所以任何指针将不胜感激。

以下是成员:

谢谢 - 我不能在这里分享 XML 文档,但我会从我的具体示例转移到一般示例。

假设我们有许多以下 XML 文档

我想把它转换成这种格式的表格(图片抱歉)

样品表

我还应该提到,一个文档中可能有很多书节点,所以我想要每本书都有一个表格。

0 投票
3 回答
1339 浏览

powershell - 如何避免使用字符串格式添加前导空格?

我有一个返回 PSCustomObject 的函数,如下所示:

稍后,我这样调用这个函数:

然后我想输出格式化字符串,包括该对象的属性值。与我想要的最接近的结果是使用下面的行输出:

问题是第一个字符后的空格|

它从何而来?如何以正确的方式摆脱它?

0 投票
1 回答
2500 浏览

powershell - 构建 PSCustomObject 时的 PowerShell 条件语句

我想在创建 PSCustomObject 时检查变量是否存在。我有很多对象要查询并将数据收集到我的新对象中,所以我不想用“if”语句复制整个代码块,因为我试图简洁。

我知道上面的块会产生一个错误,即“if”语句无法识别。在定义 PSCustomObject 时是否有另一种方法可以包含代码块?

0 投票
1 回答
89 浏览

powershell - 函数处理 PowerShell 管道中的意外行为

我创建了一个函数来处理我想要的对象中的项目并将它们分类到一个新的 PSCustomObject 中。如果我通过管道传递对象,我会得到一些重复和奇怪的结果,而不是将对象作为参数传递给函数并使用 ForEach-Object 循环。

这是我的示例(这将产生 3 条记录):

与此相反(产生六个,有些是重复的:

这是输出的差异: 在此处输入图像描述

知道为什么会发生这种情况吗?我将 3 个对象传递给 ProcessFeedback 函数,不是吗?为什么有些项目重复而有些则没有?

如果我选择将整个变量传递给函数并在其中循环,我会按预期从函数中取回 3 个对象:

然后,在我的函数中,我使用 Where-Object 语句进行过滤,结果如下:

注意:当我通过管道传递对象时,我删除了 ProcessFeedback 函数中的 Where-Object 语句,因为我一次只看到一个对象传递给它。

0 投票
0 回答
524 浏览

powershell - PowerShell 嵌套属性迭代

在下面的脚本中寻找一些输入。本质上,我正在检索一些 json 数据Invoke-WebRequest。我需要将许多属性导出到 CSV。从返回的数据Invoke-WebRequest包含在一个数组中:$devicedetails。此脚本适用于输出到 CSV。

好奇这是否是将属性输出到 CSV 的最佳方式。此外,我现在需要对正在创建的自定义对象执行一些额外的处理,但是如果我如下所示为该自定义对象分配一个变量,则需要几分钟才能完成,而仅导出到 CSV 则需要 12-13 秒. 为什么性能这么差?

0 投票
2 回答
17235 浏览

arrays - 如何将自定义属性添加到 PowerShell 数组?

假设我有一个 PowerShell 数组$Sessions = @(),我将用 PSCustomObjects 填充它。如何将自定义属性添加到数组本身?例如,我可以拥有$Sessions.Count哪个是内置的,以及$Sessions.Active我想将哪个设置为活动会话计数。

我知道我可以向 PSCustomObjects 添加属性(以一种肮脏的方式)

但是尽管在数组上这样做不会导致添加属性。

那么我怎样才能实现我的目标呢?有没有办法创建自定义数组?

0 投票
2 回答
156 浏览

powershell - Powershell - 通过远程连接的 WMI 错误

我在 powershell 中编写脚本,脚本收集有关某些系统服务状态的信息,例如远程主机上的 DHCP 服务。有时连接到远程主机和从 WMI 收集信息时会出现问题。下面的 WMI 命令:

我创建了具有两个属性的对象:

输出定向到 .csv 文件,文件内容如下所示:

在名为“srv2”和“srv3”的主机上,存在连接和从远程主机 WMI 收集信息的问题。我想代替空格来提供一些信息,例如“WMI 问题”,文件的内容应如下所示: