このフォーム投稿を、作成しようとしている PowerCLI スクリプトのベースラインとして使用しています。
Powershell Get-QADUser の結果を SQL テーブルに
私の変更されたスクリプトは次のようになります。
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 :
そのため、使用している変数が正しくありません。 [] "" と ' ' を Num CPU で試しましたが、成功しませんでした。