Powershell и SQL - необходимо объявить скалярную переменную "@" - PullRequest
0 голосов
/ 07 мая 2018

, когда я выполняю код "Должен объявить скалярную переменную", @ возвращается ко мне. Я пытаюсь вставить значения из winevent в БД, когда переменные "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 голосов
/ 07 мая 2018

Если вы используете точечную запись с любой переменной внутри строки, используйте $(...), чтобы получить значение. Например, в вашем запросе вставки используйте

 $($x.Id)

чтобы получить идентификатор из переменной $ x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...