问题标签 [psobject]

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 回答
734 浏览

powershell - 防止 PowerShell 在 PSObjects 中包装值类型

我有一个使用大量委托的 .NET API。我的 API 有几个类似于以下的方法:

现在在 PowerShell 中,我有以下内容:

问题是我的 PowerShell 脚本块返回的是 PSObject 而不是实际的双精度值。我的 .NET API 对 PowerShell 一无所知,我不想添加对 PowerShell DLL 的引用,以便为这个特定场景添加特殊处理。

有没有办法让我的脚本块返回实际值类型而不是 PSObjects?或者我的 .NET 库是否有与 PowerShell 无关的方式来处理 PSObject?

0 投票
1 回答
2283 浏览

powershell - 如果没有显式强制转换,对象会被包装在 PSObject 中

当显式转换我的新对象时(参见第一行代码),我新创建的 EntityReference 被存储而没有被包装在PSObject中,因此序列化它工作得很好:

但是,当我不使用演员表时:

当我想序列化它时,PowerShell 会抱怨: Exception calling "WriteObject" with "2" argument(s): "Type 'System.Management.Automation.PSObject' with data contract name 'PSObject:http://schemas.datacontract.org/2004/07/System.Management.Automation' is not expected.

现在,我已经阅读了为什么 Get-Date 似乎返回 DateTime 对象,但 BinarySerializer 表明它返回一个 PSObject?,并且看起来这是同一个问题....除了我使用 PowerShell 3.0$PSVersionTable.psversion生成版本 3.0.-1.-1)并且该帖子中的“错误”代码片段在我的 PowerShell 环境中运行良好。 ..

在那篇文章中,有人建议PowerShell 3 中基于DLR的新引擎不应再导致这些问题,所以他们对此过于乐观,还是我遇到了其他问题?


编辑:下面的代码产生相同的行为,而不依赖于 CRM SDK。使用强制转换,PowerShell 抱怨无法序列化System.UriBuilder,而没有强制转换,它抱怨获取System.Management.Automation.PSObject实例:

0 投票
1 回答
85 浏览

sql - powershell多值变量或sql表

我只想暂时将数据写入内存。该格式本质上与具有 5 列和 1,000 行的 sql 表相同,给或取。只是我想存储这些数据并对其运行查询以进行计算、排序、查询以生成图表报告和 Excel 数据。

我查看了自定义 psobjects,然后查看了 sql,但我不明白为什么我会在 sql 上使用自定义 psobjects,你怎么看?

我也看不到这样添加多行,使用 psobjects 就像在 sql 中添加另一行一样简单。

谢谢史蒂夫

0 投票
1 回答
1755 浏览

sorting - Sort Properties of Object Powershell

All i'm using this code to get data from SharePoint List and export it to txt file as you see i'm using New-Object PSObject to get this

my question is how can i sort the the properties by the name i gave or how to export this items sorted by those name Thanks in advance

0 投票
1 回答
1221 浏览

c# - Powershell:将 Get-WMIObject 动态转换为 PSObject

我能找到的大多数使用 Powershell 和 C# 的代码示例都涉及使用 PSobject 从 Powershell 脚本返回数据。创建 PSObject 的大量示例涉及从 Get-WMIObject 获取数据并将其转换为 PSObject。这是通过手动指定要从结果中转移到新 PSObject 中的每个属性来完成的。无论如何在Powershell中将结果从Get-WMIObject(我相信是ManagementObject)动态转换为PSObject?

基本上我想要一个函数,无论我使用什么类的 WMIObject,我都能够转换为 PSObject。我遇到了可用于 Get-WMIObject 调用结果的 .PSObject.Members 调用(只是 .PSObject 实际上似乎没有任何有效的东西)。所以我能够做到以下几点:

但这给了我更多的结果,我通常只需要调用 Get-WMIObject。有谁知道更好的转换方法或进一步缩小这些结果以更接近标准输出的方法?我希望它保持通用,我可以将 $class 的值更改为任何其他 WMIObject 类,它仍然可以工作。

0 投票
2 回答
301 浏览

powershell - 优化 PSObject 创建

与下面的代码一样,处理脚本大约需要一个小时。我正在尝试寻找减少时间的方法,因为该脚本将被安排为每天运行。

我注意到在创建新对象时,它会$_.Tag.Substring为每个标签使用相同的 1440 次,并且有超过 200 个标签。

此外,使用 Measure-Object 3 次处理相同的 $_.Group 以获得最小值、平均值和最大值。

我如何以一种不会重复执行相同流程的方式设置它们?

0 投票
2 回答
3953 浏览

powershell - 创建 CSV 可导出对象数组时如何控制列名位置?

参考脚本:

脚本 1:

脚本 2(在编辑中添加以反映扩展使用):

问题:

虽然该脚本创建了我的 CSV 并将我需要的所有数据包含在正确的行中,但我无法弄清楚如何控制列位置。即使我通过name,accountname,mailPowershell 订购和添加数据,也订购了mail,name,accountname. 如何控制列顺序?

注意:如果我$csvList在导出之前对内容进行屏幕转储,则订单已经更改。

0 投票
1 回答
10628 浏览

powershell - 从 PowerShell 对象中删除重复条目,同时保持 PSObject 完整

我创建了一个具有多个属性的 PSObject。我想使用特定属性作为参考从 PSObject 中删除重复条目。

我想这样做,同时保持 PSObject 的原始格式。

我见过的示例提取非重复值。我想删除重复的值。

我试图把这个:

进入这个:

我有一种感觉,我在这里错过了一个技巧......

谢谢

0 投票
1 回答
865 浏览

xml - 自定义powershell对象和export-clixml的tostring()方法

1.我有这些 XML-文件,其中包含来自通过 export-clixml导出的3rd-Party cmdlet的数据作为备份。    它们看起来像这样(只有更多的对象):


2 . 我通常使用 import-clixml 导入它们,然后将它们再次通过管道传输到这些 3rd-party cmdlet 以重新创建数据。效果很好。

3 . 现在我需要用 *NewDomain* 替换 *OldDomain*,然后再使用它们。
所以我导入数据然后替换值:

这在理论上可行,如果我在更换后查看对象,它们看起来很好。
 
4 . 但是在将数据传输到 cmdlet 之后,我不断收到有关“ OldDomain” 不可用的错误消息。“OldDomain”甚至不应该在对象中了......
我花了一段时间,但后来我发现“OldDomain”一直来自哪里。当我在替换值后再次导出对象时,它变得很清楚:


该值在 tostring()-Method中。但是为什么tostring()-方法中有一个静态值?它应该是一种方法。 由于某种原因,cmdlet 在 tostring() 方法中使用了这个值。5.除了这个原因,我尝试替换 tostring() 中的值。但它是一种方法,所以我知道覆盖它的唯一方法是添加一个同名的新方法:




这只起作用了一半,因为它没有用变量 $replVal的内容(即 NewDomain”)替换 tostring() 的值,而是用变量$replVal本身。
所以当你调用 tostring() 方法时,$subobj.tostring() 就是你在 $replval 中拥有的任何东西,而不是一个固定值。
所以我需要的是 scriptmethod 像 noteproperty 一样工作,让我分配一个固定值,比如tostring() = $replvalue


所以我不明白。

A)为什么 tostring() 在 export-clixml - 文件中?

B)为什么存储的对象内部的方法 (tostring()) 有固定值?

C)最重要的是:如何替换 tostring() 中的固定值?

 
谢谢和最好的问候, ffm


   

0 投票
3 回答
5411 浏览

regex - netsh 结果到 PowerShell 对象

我正在尝试使用 PowerShell 中的NETSH。我想看到这个命令的结果,比如一个对象,但是netsh返回一个字符串:

我的脚本必须在具有相当本地化功能的系统上运行,并且我不能使用-match将字符串直接解析为对象。

我该如何解决我的烦恼?