2014-03-04 23 views
0

我正在使用此表單帖子作爲我嘗試編寫的PowerCLI腳本的基準。PowerCLI和SQL導入問題與var

Powershell Get-QADUser results to SQL table

我修改紙條是這樣的:

Add-PSSnapin VMware.VimAutomation.Core 
Add-PSSnapin SqlServerCmdletSnapin100 
Add-PSSnapin SqlServerProviderSnapin100 

$db_server = "127.0.0.1\VIM_SQLEXP" 
$db = "Billing" 
$table = "vmdata" 
$username = "import" 
$pwd = "myPassWord" 

# First, clear existing table 
$sql_query_del = "DELETE FROM $table" 
Invoke-Sqlcmd -ServerInstance $db_server -Database $db -Username $username -Password $pwd -Query $sql_query_del 

# Get vms and resources add to DB 
Get-resourcepool -name finance | get-vm | foreach { 
    $name = $_.Name 
    $PowerState = $_.PowerState 
    $NumCPUs = $_.'Num CPUs' 
    $MemoryGB = $_.MemoryGB  
    Write-Host " Name : $Name  PowerState : $PowerState  MemoryGB : $MemoryGB  Num CPUs : $NumCPUs" 

    $sql_query = "INSERT INTO $table (Name, PowerState, MemoryGB, NumCPUs) VALUES ('$Name', '$PowerState', '$MemoryGB', '$NumCPUs')" 
    Invoke-Sqlcmd -ServerInstance $db_server -Database $db -Username $username -Password $pwd -Query $sql_query 

} 

我的問題是民的CPU已經在它的空間只是執行這個命令

Get-resourcepool -name finance | get-vm 


Name     PowerState Num CPUs MemoryGB 
----     ---------- -------- -------- 
GreatPlains01  PoweredOn 4  8.000 

是什麼時候適當的方法來引用此結果顯示?

當通過電源外殼執行此我得到以下結果:

Name : GreatPlains01  PowerState : PoweredOn  MemoryGB : 8  Num CPUs : 

所以我使用的變量是不正確的我已經試過[]「」和「」圍繞民的CPU,但沒有成功。

回答

0

雖然Get-VM cmdlet的輸出中的列標題是'Num CPU',但屬性名稱爲NumCPU。所以你應該使用:

$ NumCPUs = $ _。NumCPU