当我执行代码"必须声明标量变量" @"回到我的身边。我试图将值从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
}
}
答案 0 :(得分:2)
如果您对字符串中的任何变量使用点表示法,请使用$(...)
来获取值。例如,在插入查询中使用
$($x.Id)
从变量$ x获取Id。