问题标签 [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.
powershell - 使用 PSObject 传递时,管道表达式中的计算属性在作业中返回 null
我正在尝试将计算属性的哈希表传递给查询,以便与Select-Object
. 它在控制台中运行时有效。我可以确认该作业正在读取哈希表,因为它在结果中列出了选定的属性,但它们的所有值都是空的。
注意:我知道我不需要对这些属性进行类型转换。我只是展示我的问题。
如果我运行以下代码(看起来很奇怪,但实际上有一个用例),输出包含我选择的属性(来自$globalConfig.SystemState.Processors.SelectProperties
)但计算的属性的值为null
,唯一返回正确值的属性是name
:
然而,如果我运行相同的作业,但使用硬编码的相同计算属性(未使用 PSObject 传递给 Select-Object),它会按预期工作(值1
并12
在输出中返回):
如何在Select-Object
工作中将计算属性的对象内联传递给?
powershell - Select-Object -First 影响管道中的先前 cmdlet
Strongly Encouraged Development Guidelines
cmdlet 应该为管道中间实现的 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-Host
cmdlet 或将结果发送到变量时也会发生这种情况,例如:
这显示在 Windows Powershell ( 5.1.18362.628
) 和 PowerShell Core ( 7.0.0
) 上。
这是一个错误吗?
powershell - 在 PowerShell 中从 CSV 分组和选择对象
我有一个用户列表,他们的设备和他们的经理。manager 和 user 可以重复,但 deviceID 是唯一的。我如何获得一份清单,以便我可以向每位经理发送一封电子邮件,让他们知道他们的员工正在使用多少个单位和哪个单位?我只对拥有 2 台或更多设备的人感兴趣。
想要的输出将是这样的(如果有人想给我一个更好的输出建议,我会全力以赴)。
我的代码现在的样子:
azure - 使用 Select-Object 更改属性的数据类型并添加计算属性
试图从对象中获取详细信息并希望将其保存到 SQL 表中。
问题1。上面的代码因错误而失败。删除类型列有效。但是有什么方法可以将 Type 属性转换为字符串?
Write-SqlTableData:未找到 .Net 类型“Microsoft.Azure.Commands.DataLakeStore.Models.DataLakeStoreEnums+FileType”和“Type”列的 SQL 类型之间的映射。考虑删除具有该类型的列并重复该操作。
问题2。我还想添加一个额外的列,比如 RowInsertedDate,它将具有当前时间戳,另外一个硬编码列说 LoadStatus,其值为“Started”。如何添加它的选择子句?
问题3。无论如何要截断这个表然后将数据写入它?
powershell - 从变量中选择对象计算的属性
我知道我们可以在 Select-Object-Property
参数的变量中指定一个逗号分隔的属性字符串 []。但是,我试图在该变量中包含计算的属性。尝试通过将它们括在单引号/双引号中来添加它,例如,
$selectProps = "distinguishedname", '@{n="lastlogontimestamp";e={[datetime]::FromFileTime($_.lastlogontimestamp).ToString()}}'
和
$selectProps = "distinguishedname","@{n=`"lastlogontimestamp`";e={[datetime]::FromFileTime(`$_.lastlogontimestamp).ToString()}}"
但无济于事。任何帮助都感激不尽。
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。
这里发生了什么?为什么我会使用如此相似的代码得到两种不同类型的输出,我该如何纠正这些问题?
json - 在 JSON 数组中,如何搜索 ConvertFrom-Json 返回的某条记录?
使用 Powershell 6,我可以下载 JSON 格式的文件:
keys
(并且数组中有更多记录......)
我怎样才能搜索记录kid = "SsZsBNhZcF3Q9S4trpQBTByNRRI"
然后返回它的x5c
属性?
以下是查找记录的好方法(我很困惑-expand
,它是否会剥离外部 JSON 对象并仅返回keys
数组?)然后如何访问它的x5c
属性?
powershell - Powershell 脚本在结果中缺少属性
我不确定脚本有什么问题。我有一个 3 列的 csv 文件,其中包含Name,Count,Owner
. 目标是获得每个名称的最高计数,然后输出所有 3 列,但是该Owner
列没有输出。我只是得到Name, Total
。如果有人能帮助我告诉我出了什么问题,我将不胜感激,非常感谢。
csv文件内容:
powershell - 在 Select-Object cmdlet 中输出可变数量的字段
假设我有一个带有描述多个实体的数据的 Obj。我想像这样输出它(CSV、HTML、Format-Table 等):
我会使用类似的东西:
但是如果我的对象有可变数量的实体怎么办?假设这些属性都在一个数组中:
如何,基于$EntityList
我可以构造相应的Select-Object
命令?
更新。:基于帮助Select-Object
:
这是否意味着我应该能够使用Select-Object -Property $EntityList
?