Powershell和sql数据库中的Get-Disk值不同

dgtucam1  于 2022-12-13  发布在  Shell
关注(0)|答案(1)|浏览(82)

嗨,我是一个完全新的,我想以特定的格式存储容量。我的代码显示正确的格式,但在SQL数据库中,它的值被更改为默认值。
我的代码:

$SSDCapacity= Get-Disk | select Size
foreach($size in $SSDCapacity)
{
    $variable = $size.Size.ToString()
}
$result = $variable.SubString(0,3)
$result

以上代码在powershell中显示输出为512。
但是当我将其存储在数据库中时,它会以默认形式显示**@{Size=512110190590}**
我有SQL Part的插入查询

$InsertQuery="INSERT INTO [$($Database)].[dbo].[$($name)]
           ([ComputerName],[Model],[SSDCapacity])
     VALUES('$ComputerNameValue','$ModelValue','$result')
"

那么我就调用上面的插入查询

#Insert into Table
$SqlCmd.CommandText = $InsertQuery  
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter  
$SqlAdapter.SelectCommand = $SqlCmd   
#Creating Dataset  
$Datatable = New-Object "System.Data.Datatable"
$result = $SqlCmd.ExecuteNonQuery()
$conn.Close()

那么我怎么才能存储在格式powershell显示。
我可能错过了一些愚蠢的事情。任何帮助都将是感激不尽的。

bnlyeluc

bnlyeluc1#

您可以使用DBATOOLS在一行中完成此操作

Install-Module dbatools -Scope CurrentUser #only once

Get-DbaDiskSpace|select ComputerName, Name, Capacity, Free|Write-DbaDataTable -SqlInstance $sql -Database TEMPDB -Table disk -AutoCreateTable

相关问题