Powershell和SQL - 必须声明标量变量" @"

时间:2018-05-07 12:19:27

标签: sql powershell

当我执行代码"必须声明标量变量" @"回到我的身边。我试图将值从winevent插入到DB,当变量是" text"工作正常,但是当我从数组中插入变量时,无法正常工作。

foreach ($servidor in $listadoServidores) {
$prueba = Get-WinEvent -ComputerName $servidor -FilterHashtable @{
    logname   = $logAuditar;
    StartTime = $fechaInicioBusqueda;
    EndTime   = $fechaFinBusqueda;
    Level     = $nivelEvento;} | select Id, LevelDisplayName, MachineName, TimeCreated, ContainerLog, ProviderName, Message

    foreach ($x in $prueba) {
        $contador++
        $SQLinsert = "use $SQLbd 
                      insert into $SQLtabla (id, eventid, servidor, log, nivel, origen, descripcion, fecha, hora)
                      values('$contador',$x.Id,'servidor','system','prueba','OrigenPrueba','pruebaDescripcion','$fechaActual','$horaActual');"

        invoke-sqlcmd -query $SQLinsert -ServerInstance $SQLinstancia -Username $SQLusuario -Password $SQLpassword
    }

}

1 个答案:

答案 0 :(得分:2)

如果您对字符串中的任何变量使用点表示法,请使用$(...)来获取值。例如,在插入查询中使用

 $($x.Id)

从变量$ x获取Id。