问题标签 [select-object]

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 投票
2 回答
99 浏览

powershell - 使用 PSObject 传递时,管道表达式中的计算属性在作业中返回 null

我正在尝试将计算属性的哈希表传递给查询,以便与Select-Object. 它在控制台中运行时有效。我可以确认该作业正在读取哈希表,因为它在结果中列出了选定的属性,但它们的所有值都是空的。

注意:我知道我不需要对这些属性进行类型转换。我只是展示我的问题。

如果我运行以下代码(看起来很奇怪,但实际上有一个用例),输出包含我选择的属性(来自$globalConfig.SystemState.Processors.SelectProperties)但计算的属性的值为null,唯一返回正确值的属性是name

然而,如果我运行相同的作业,但使用硬编码的相同计算属性(未使用 PSObject 传递给 Select-Object),它会按预期工作(值112在输出中返回):

如何在Select-Object工作中将计算属性的对象内联传递给?

0 投票
1 回答
535 浏览

powershell - Select-Object -First 影响管道中的先前 cmdlet

Strongly Encouraged Development Guidelinescmdlet 应该为管道中间实现的 PowerShell ,但我怀疑-Last对于Select-Object. 仅仅是因为您无法预先确定最后一个条目。换句话说:您需要等待输入流完成,直到您定义最后一个条目。
为了证明这一点,我写了一个小脚本:

并将其与Select-Object *

结果(右:Select-Object -Last 5,左:)Select-Object *

尽管没有记录,但我认为我可以从中得出结论,该-Last参数确实阻塞了管道。
这没什么大不了的,但我也对-First参数进行了测试,得到了一些令人不安的结果。为了更好地展示这一点,我没有选择所有对象,而只是选择了 ** -First 2**

请注意,使用-First 2 参数不仅以下 cmdlet 显示两个对象,而且前面的 cmdlet ( ForEach-Object { Write-Host 'Before' $_.Index; $_ }) 仅显示 2 个对象(而不是 5 个)

显然,-First参数直接引用到先前 cmdlet 的对象,这与使用-Last 2参数不同:

Out-Host使用 cmdlet而不是Write-Hostcmdlet 或将结果发送到变量时也会发生这种情况,例如:

这显示在 Windows Powershell ( 5.1.18362.628) 和 PowerShell Core ( 7.0.0) 上。
这是一个错误吗?

0 投票
2 回答
142 浏览

powershell - 在 PowerShell 中从 CSV 分组和选择对象

我有一个用户列表,他们的设备和他们的经理。manager 和 user 可以重复,但 deviceID 是唯一的。我如何获得一份清单,以便我可以向每位经理发送一封电子邮件,让他们知道他们的员工正在使用多少个单位和哪个单位?我只对拥有 2 台或更多设备的人感兴趣。

想要的输出将是这样的(如果有人想给我一个更好的输出建议,我会全力以赴)。

我的代码现在的样子:

0 投票
1 回答
870 浏览

azure - 使用 Select-Object 更改属性的数据类型并添加计算属性

试图从对象中获取详细信息并希望将其保存到 SQL 表中。

问题1。上面的代码因错误而失败。删除类型列有效。但是有什么方法可以将 Type 属性转换为字符串?

Write-SqlTableData:未找到 .Net 类型“Microsoft.Azure.Commands.DataLakeStore.Models.DataLakeStoreEnums+FileType”和“Type”列的 SQL 类型之间的映射。考虑删除具有该类型的列并重复该操作。

问题2。我还想添加一个额外的列,比如 RowInsertedDate,它将具有当前时间戳,另外一个硬编码列说 LoadStatus,其值为“Started”。如何添加它的选择子句?

问题3。无论如何要截断这个表然后将数据写入它?

0 投票
1 回答
248 浏览

powershell - 从变量中选择对象计算的属性

我知道我们可以在 Select-Object-Property参数的变量中指定一个逗号分隔的属性字符串 []。但是,我试图在该变量中包含计算的属性。尝试通过将它们括在单引号/双引号中来添加它,例如,

  1. $selectProps = "distinguishedname", '@{n="lastlogontimestamp";e={[datetime]::FromFileTime($_.lastlogontimestamp).ToString()}}'

  2. $selectProps = "distinguishedname","@{n=`"lastlogontimestamp`";e={[datetime]::FromFileTime(`$_.lastlogontimestamp).ToString()}}"

    但无济于事。任何帮助都感激不尽。

0 投票
1 回答
432 浏览

regex - Powershell 在输出前修改 Select-Object 属性

我将如何从该 Select-Object 的 DiskAllocation 属性中删除前导“{Storage used:,”和尾随“}”,以便只保留大小?

例如:{Storage used:, 48.62 MB} 变为 48.62 MB

我知道我需要用正则表达式做一些替换语句,但我是 Powershell 的初学者。任何帮助,将不胜感激。

当前的输出如下所示:

输出

0 投票
1 回答
454 浏览

powershell - 自定义 PSObject 返回 Array 而不是 Object 属性

我很难弄清楚这段代码在哪里出错,以及为什么 Select-Object 没有返回所需的对象属性作为输出。非常感谢对这里发生的事情的任何输入,或任何潜在的修复。

我通过(单独的)处理程序脚本从 Sysmon 日志中收集所有唯一的 sha256 哈希值,然后处理程序脚本针对这些哈希值执行下面的脚本/代码。此处理程序脚本运行下面看到的代码,然后将其输出 (script.ps1 | export-csv) 输送到 Export-Csv 函数中。但是,我在 csv 输出中获取每个对象的数组,而不是带有列标题和所需对象属性的格式化 CSV 文件。

为了完整起见,运行此(下面的代码)script.ps1 文件的处理程序脚本是Kansa

示例输入文件 test.csv:

这会产生一个包含如下输出的 csv 文件:

为了增加我的困惑,我创建了一个功能几乎相同的测试脚本,减去添加 sha256Array @() 并且我能够毫无问题地将输出通过管道传输到 Format-Table。

这里发生了什么?为什么我会使用如此相似的代码得到两种不同类型的输出,我该如何纠正这些问题?

0 投票
2 回答
92 浏览

json - 在 JSON 数组中,如何搜索 ConvertFrom-Json 返回的某条记录?

使用 Powershell 6,我可以下载 JSON 格式的文件:

keys(并且数组中有更多记录......)

我怎样才能搜索记录kid = "SsZsBNhZcF3Q9S4trpQBTByNRRI"然后返回它的x5c属性?

以下是查找记录的好方法(我很困惑-expand,它是否会剥离外部 JSON 对象并仅返回keys数组?)然后如何访问它的x5c属性?

0 投票
2 回答
300 浏览

powershell - Powershell 脚本在结果中缺少属性

我不确定脚本有什么问题。我有一个 3 列的 csv 文件,其中包含Name,Count,Owner. 目标是获得每个名称的最高计数,然后输出所有 3 列,但是该Owner列没有输出。我只是得到Name, Total。如果有人能帮助我告诉我出了什么问题,我将不胜感激,非常感谢。

csv文件内容:

0 投票
1 回答
432 浏览

powershell - 在 Select-Object cmdlet 中输出可变数量的字段

假设我有一个带有描述多个实体的数据的 Obj。我想像这样输出它(CSV、HTML、Format-Table 等):

我会使用类似的东西:

但是如果我的对象有可变数量的实体怎么办?假设这些属性都在一个数组中:

如何,基于$EntityList我可以构造相应的Select-Object命令?

更新。:基于帮助Select-Object

这是否意味着我应该能够使用Select-Object -Property $EntityList