いいえdeviceIdを使用して配列をループする必要があります。すべてがうまく挿入されますが、問題は、配列であり、デバイスIDに結びついているため、objタグがAPIから引き出されないということです。だから私は別のテーブルを作成することを決めましたが、スクリプトが実行されてデバイスIDを取得して挿入することができるので、タグをAPIから引き出し、後で別のテーブルに挿入することができます。問題は、それぞれ別のIDを作成して、最後のIDを挿入するだけで、タグも引っ張られていないことです。助言がありますか? $DeviceIdentifier = $obj.deviceid
/$DeviceIdentifier = $Tags.deviceid
:あなたは$DeviceIdentifier
で1つの値を格納し、両方のループの各パスでpowershellで配列をループすることができません
#For loop giving variables to the objects
foreach($obj in $Json.devices)
{
$DeviceIdentifier = $obj.deviceid
$DeviceNombre = $obj.deviceName
$DomainNombre = $obj.domainName
$Description = $obj.description
$Tags = $obj.tags
$location = $obj.location
$Os = $obj.os
Write-Host ($obj.devicename) -BackgroundColor White -ForegroundColor red
Write-Host ($obj.domainname) -BackgroundColor White -ForegroundColor red
Write-Host ($obj.deviceid) -BackgroundColor White -ForegroundColor DarkGreen
Write-Host ($obj.tags) -BackgroundColor White -ForegroundColor black
Write-Host ($obj.description) -BackgroundColor White -ForegroundColor blue
Write-Host ($obj.os) -BackgroundColor White -ForegroundColor DarkBlue
#Inserting into MYSQL database
$cmd = $connection.CreateCommand()
$insert_stmt = "INSERT INTO [dbo].[Tags]([DeviceID],[Device Name],[Domain Name],[Description],[Tags],[Location],[Os])
VALUES ('$DeviceIdentifier','$DeviceNombre', '$DomainNombre','$Description','$tags','$location','$Os')" -replace "\s+"," "
$cmd.CommandText = $insert_stmt
write-host $insert_stmt -BackgroundColor White -ForegroundColor DarkBlue
$cmd.ExecuteNonQuery()
}
foreach($Tags in $DeviceIdentifier)
{
$DeviceIdentifier = $Tags.deviceid
$Tags = $obj.tags
Write-Host ($obj.deviceid) -BackgroundColor White -ForegroundColor DarkGreen
Write-Host ($obj.tags) -BackgroundColor White -ForegroundColor black
#Inserting into MYSQL database
$cmd = $connection.CreateCommand()
$insert_stmt = "INSERT INTO [dbo].[TagsTable]([DeviceID],[Tags])
VALUES ('$DeviceIdentifier','$tags')" -replace "\s+"," "
$cmd.CommandText = $insert_stmt
write-host $insert_stmt -BackgroundColor White -ForegroundColor DarkBlue
$cmd.ExecuteNonQuery()
}
$Connection.Close()