2013-05-29 41 views
0

我是新來的PowerShell,我遇到了一個看似簡單的問題,我找不到解決方案。我正在編寫一個腳本,將序列號從當前計算機中提取出來,然後查詢數據庫並根據數據庫對該特定序列號所做的操作在計算機上執行功能。現在,這裏的問題,當我使用下面的代碼格式化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  }' 

我讀到一開始項目cmd,然後好像我已經知道該序列就是爲了尋找它。是否有一些我可以用來使這更簡單的cmdlet?謝謝您的幫助。

回答

4

所有你需要的是一個標誌:

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

-ExpandProperty將會把它在一個純老字符串。

3

select的輸出是對象只有指定的屬性。要獲得序列號改變

Get-WMIObject -Class "Win32_BIOS" | select SerialNumber 

(Get-WMIObject -Class "Win32_BIOS" | select SerialNumber).SerialNumber 
+0

有點OT,但似乎這是我用過的'第二次-ExpandProperty'不當。它究竟用於什麼? –

+1

我不會考慮'select -Expand SerialNumber'不合適。這只是獲得相同結果的不同方式。 –

+1

@ r.tanner.f使用「-ExpandProperty」是合適的。有不止一種方式來做事情。 – alroc

2

甚至更​​短的

$currSerial = (Get-WMIObject -Class "Win32_BIOS").SerialNumber