我是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可以用来使这更容易?谢谢你的帮助。
答案 0 :(得分:4)
你需要的只是一面旗帜:
$currSerial = Get-WMIObject -Class "Win32_BIOS" | select -ExpandProperty SerialNumber
-ExpandProperty
会将其转换为普通字符串。
答案 1 :(得分:3)
select
的输出是对象,只有指定的属性。要获取序列号 string ,请更改
Get-WMIObject -Class "Win32_BIOS" | select SerialNumber
到
(Get-WMIObject -Class "Win32_BIOS" | select SerialNumber).SerialNumber
答案 2 :(得分:2)
甚至更短
$currSerial = (Get-WMIObject -Class "Win32_BIOS").SerialNumber