0

我是 powershell 新手,遇到了一个看似简单的问题,但我找不到解决方案。我正在编写一个脚本,该脚本从当前计算机中提取序列号,然后它查询数据库并根据数据库对特定序列号所做的操作在计算机上执行功能。现在问题来了,当我使用以下代码时

$currSerial = Get-WMIObject -Class "Win32_BIOS" | select SerialNumber

我收到的输出是我很确定是一个表格,所以当我输出 $currSerial 时,我得到了这个:

SerialNumber                                                                                                                                                
------------                                                                                                                                                
AGR0Agh99481028

我想要的只是将文本“AGR0Agh99481028”保存到一个字符串中,以便我可以使用该号码查询服务器。现在我的查询看起来像这样:

$Query = "SELECT name FROM table WHERE serial = '$currSerial'"

输出解析为:

SELECT name FROM table WHERE serial = '@{SerialNumber=D1N0AS249667028     }'

我阅读了有关 get-item cmd 的信息,似乎我已经必须知道要搜索它的序列号是什么。是否有一些 cmdlet 可用于简化此操作?谢谢您的帮助。

4

3 回答 3

4

您只需要一面旗帜:

$currSerial = Get-WMIObject -Class "Win32_BIOS" | select -ExpandProperty SerialNumber

-ExpandProperty会将它变成一个普通的旧字符串。

于 2013-05-29T22:05:20.053 回答
3

的输出select是一个仅具有指定属性的对象。获取序列号字符串更改

Get-WMIObject -Class "Win32_BIOS" | select SerialNumber

进入

(Get-WMIObject -Class "Win32_BIOS" | select SerialNumber).SerialNumber
于 2013-05-29T22:17:07.737 回答
2

甚至更短

$currSerial = (Get-WMIObject -Class "Win32_BIOS").SerialNumber
于 2013-05-30T06:00:36.907 回答