Author Posts

November 2, 2017 at 12:36 pm

Hi,

I have a powershell script that create a table with two columns. I would like use a conditional ( if ) and put de values searched into a news variables. See below:
SinaldBm Cliente
——– ——-
-19 16777472
-20 16777728
-19 16777984
-19 16778240
0.0 16778496
-19 16778752
-23 16779008
-18 16779264
-19 16779520
-22 16779776
-27 16780032
-18 16780288
-19 16780544
-19 16780800
-21 16781056
-24 16781568
-19 16781824
-22 16782080
-21 16782336
-21 16782592
0.0 16782848
-22 16783104
-23 16783360
0.0 16783616
-22 16783872
-24 16784128
-24 16784384
-26 16784640
-22 16784896
-22 16785152
-23 16785408
-21 16785664
-25 16785920

I Need to show only combined data with value less or equal to -25. Ex:
-26 16784640
-25 16785920

Thank you for advance...

rc.

November 2, 2017 at 12:48 pm

Hello.

If the output of your script is object, then:

your_script | where SinaldBm -le -25

November 2, 2017 at 1:12 pm

Hi,

My code is like below ( a part of)

$column1 = @($strcli)
$column2 = @($strnum)

$i=0
($column1,$column2 | sort length)[1] |
foreach {
new-object psobject -property @{
Cliente = $Column1[$i]
SinaldBm = $column2[$i++]
}
} | ft -auto

Where I must put your suggest?

tks.

November 2, 2017 at 1:30 pm

You should put it before "ft -auto".

November 2, 2017 at 2:20 pm

If you were reading it from a file, you could use import-csv:

$filename = ".\SignaldBm.txt"
$alllines = Import-Csv $filename -Delimiter ' '  | where SinaldBm -le 25
$alllines

November 2, 2017 at 5:45 pm

Thanks for your reply,

Actually, the script run a snmpwalk to a equipment. I need to show, after put the data in a table(s) only value minor that -25...or another after parametrization.

November 2, 2017 at 10:03 pm

Rules to remember in PowerShell. Filter as far to the left as possible and format to the right. Once you format your data you are done.

November 3, 2017 at 4:11 pm

Hi all,

With Where don't work. I tried with IF command but don't work too.

Below all script:

$target = @()
$ini| foreach {
    
    $strnum = (snmpwalk.exe -Ln -On -v 2c -c public $hostip ".1.3.6.1.4.1.3709.3.6.2.1.1.22")
    
    $strnum.Count
    $strcli = $strnum


    ##Remove String Chars from Uptime###
    $strNum = $strnum.Substring(51,3)
    $strcli = $strcli.Substring(31,9)
    
   
 
}
   
   $strnum
   $strcli
    
    #write-host "Total Clientes:$($strnum.count)Clientes Limite: $($strnum |sort)"
  
$column1 = @($strnum)
$column2 = @($strcli)

$i=0
($column1,$column2 | sort length)[1]|
foreach {
  new-object psobject -property @{
                                    Sinal = $Column1[$i]

                                    Cliente = $column2[$i++]
                                   
                                   }
   
                                   
   
    
    where $column1[$i] -le -28
  }  | ft -AutoSize

  

November 8, 2017 at 9:10 pm

Hi people,

My script don't work yet. Someone has an idea how I could do this?

Have another doubt: How I get the value of the first column? EX:
POP1 -25
POP2 -27
POP3 -25
POP4 -28
POP5 -24
POP6 -23
POP7 -24
POP8 -23

I need get this: POP4 -28

Thank you.

rc.

November 8, 2017 at 9:15 pm

Remember: POP4 is in a array, -28 is in another one.

November 9, 2017 at 3:56 am

Hey Rodrigo,
Like Sergey said, it should be before the ft -auto

Currently you have:

  }  | ft -AutoSize

It would go:

  }  | ‹here› | ft -AutoSize

November 10, 2017 at 2:27 pm

Hi people,

Thank you so much for the all help! Now, the code is working. Is possible to remove the first line of the result?

Result of script:
Sinal Cliente
—– ——-
-18 16777472
-20 16777728
-19 16777984
-19 16778240
0.0 16778496
-19 16778752
-24 16779008
-17 16779264
-19 16779520
-22 16779776
0.0 16780032
-18 16780288
-19 16780544
-19 16780800
-21 16781056
-25 16781568
-19 16781824
-22 16782080
-21 16782336
-21 16782592
-22 16783104
-22 16783360
-22 16783616
-22 16783872
-24 16784128
-24 16784384
0.0 16784640
0.0 16784896
-22 16785152
-23 16785408
-21 16785664
-25 16785920
-22 16786176
-24 16786432
0.0 16786688
-25 16786944
-30 16787200
-22 16787456
-24 16787712
-25 16787968
0.0 16788224
-22 16788480
-24 16788736
-24 16788992
-22 16789248
-21 16789504
-24 16789760
-26 16789762
-22 16790016
0.0 16790272
-22 16790528
-23 16790784
-22 16791040
-22 16791296
-21 16791552
0.0 16791808

Result After applied the filter
Sinal Cliente
—– ——-
-25 16781568
-25 16785920
-25 16786944
-30 16787200
-25 16787968
-26 16789762

Result expected for my monitoring system
-25 16781568
-25 16785920
-25 16786944
-30 16787200
-25 16787968
-26 16789762

November 10, 2017 at 3:31 pm

Instead of

| ft -AutoSize

Use

| %{write-output "$($_.Sinal) $($_.Cliente)"}

November 10, 2017 at 3:53 pm

Thank you all! The script works fine!!!

rc.

August 13, 2018 at 7:24 pm

Hello people, I hop you are fine!!

 

There is another challenge, well, for me, because for you is very easy.. 🙂

 

Here a code that I need.

$i=0
$PortStatus = ($column1,$column2,$column3,$column4)[3]|
foreach {
  new-object psobject -property @{
                                    TX_Signal = $Column1[$i]
                                    RX_Signal = $column2[$i]
                                    Temperature = $column3[$i]
                                    Port_ID = $column4[$i++]
                                   
                                   
                                   }
   
                                   
  
}#|where $_.TX_Signal -ge 0 | %{write-output "[$($_.Port_ID)]"} | sort

write-host ""
$x = 0
Foreach ($d in ($PortStatus.Port_ID)){Foreach ($c in ($PortStatus.RX_Signal)){


write-host ""
write-host "RX Signal ETH-$d"
write-host "$($c)"
Write-host "1"
write-host ""
$x++
}}

The result is:

RX Signal ETH-1
-6.6
1

RX Signal ETH-1
-10.3
1

RX Signal ETH-1
-7.1
1

RX Signal ETH-1
-8.0
1

RX Signal ETH-1
-12.9
1

RX Signal ETH-1
-8.8
1

RX Signal ETH-1
-8.3
1

RX Signal ETH-1
-9.7
1

RX Signal ETH-1
-9.5
1

RX Signal ETH-1
-9.1
1

RX Signal ETH-1
-6.1
1

RX Signal ETH-1
-2.1
1

RX Signal ETH-1
-4.0
1

RX Signal ETH-2
-6.6
1

RX Signal ETH-2
-10.3
1

RX Signal ETH-2
-7.1
1

RX Signal ETH-2
-8.0
1

RX Signal ETH-2
-12.9
1

RX Signal ETH-2
-8.8
1

RX Signal ETH-2
-8.3
1

RX Signal ETH-2
-9.7
1

RX Signal ETH-2
-9.5
1

RX Signal ETH-2
-9.1
1

RX Signal ETH-2
-6.1
1

RX Signal ETH-2
-2.1
1

RX Signal ETH-2
-4.0
1

RX Signal ETH-3
-6.6
1

RX Signal ETH-3
-10.3
1

RX Signal ETH-3
-7.1
1

RX Signal ETH-3
-8.0
1

RX Signal ETH-3
-12.9
1

RX Signal ETH-3
-8.8
1

RX Signal ETH-3
-8.3
1

RX Signal ETH-3
-9.7
1

RX Signal ETH-3
-9.5
1

RX Signal ETH-3
-9.1
1

RX Signal ETH-3
-6.1
1

RX Signal ETH-3
-2.1
1

RX Signal ETH-3
-4.0
1

RX Signal ETH-4
-6.6
1

RX Signal ETH-4
-10.3
1

RX Signal ETH-4
-7.1
1

RX Signal ETH-4
-8.0
1

RX Signal ETH-4
-12.9
1

RX Signal ETH-4
-8.8
1

RX Signal ETH-4
-8.3
1

RX Signal ETH-4
-9.7
1

RX Signal ETH-4
-9.5
1

RX Signal ETH-4
-9.1
1

RX Signal ETH-4
-6.1
1

RX Signal ETH-4
-2.1
1

RX Signal ETH-4
-4.0
1

RX Signal ETH-5
-6.6
1

RX Signal ETH-5
-10.3
1

RX Signal ETH-5
-7.1
1

RX Signal ETH-5
-8.0
1

RX Signal ETH-5
-12.9
1

RX Signal ETH-5
-8.8
1

RX Signal ETH-5
-8.3
1

RX Signal ETH-5
-9.7
1

RX Signal ETH-5
-9.5
1

RX Signal ETH-5
-9.1
1

RX Signal ETH-5
-6.1
1

RX Signal ETH-5
-2.1
1

RX Signal ETH-5
-4.0
1

RX Signal ETH-6
-6.6
1

RX Signal ETH-6
-10.3
1

RX Signal ETH-6
-7.1
1

RX Signal ETH-6
-8.0
1

RX Signal ETH-6
-12.9
1

RX Signal ETH-6
-8.8
1

RX Signal ETH-6
-8.3
1

RX Signal ETH-6
-9.7
1

RX Signal ETH-6
-9.5
1

RX Signal ETH-6
-9.1
1

RX Signal ETH-6
-6.1
1

RX Signal ETH-6
-2.1
1

RX Signal ETH-6
-4.0
1

RX Signal ETH-8
-6.6
1

RX Signal ETH-8
-10.3
1

RX Signal ETH-8
-7.1
1

RX Signal ETH-8
-8.0
1

RX Signal ETH-8
-12.9
1

RX Signal ETH-8
-8.8
1

RX Signal ETH-8
-8.3
1

RX Signal ETH-8
-9.7
1

RX Signal ETH-8
-9.5
1

RX Signal ETH-8
-9.1
1

RX Signal ETH-8
-6.1
1

RX Signal ETH-8
-2.1
1

RX Signal ETH-8
-4.0
1

RX Signal ETH-9
-6.6
1

RX Signal ETH-9
-10.3
1

RX Signal ETH-9
-7.1
1

RX Signal ETH-9
-8.0
1

RX Signal ETH-9
-12.9
1

RX Signal ETH-9
-8.8
1

RX Signal ETH-9
-8.3
1

RX Signal ETH-9
-9.7
1

RX Signal ETH-9
-9.5
1

RX Signal ETH-9
-9.1
1

RX Signal ETH-9
-6.1
1

RX Signal ETH-9
-2.1
1

RX Signal ETH-9
-4.0
1

RX Signal ETH-10
-6.6
1

RX Signal ETH-10
-10.3
1

RX Signal ETH-10
-7.1
1

RX Signal ETH-10
-8.0
1

RX Signal ETH-10
-12.9
1

RX Signal ETH-10
-8.8
1

RX Signal ETH-10
-8.3
1

RX Signal ETH-10
-9.7
1

RX Signal ETH-10
-9.5
1

RX Signal ETH-10
-9.1
1

RX Signal ETH-10
-6.1
1

RX Signal ETH-10
-2.1
1

RX Signal ETH-10
-4.0
1

RX Signal ETH-11
-6.6
1

RX Signal ETH-11
-10.3
1

RX Signal ETH-11
-7.1
1

RX Signal ETH-11
-8.0
1

RX Signal ETH-11
-12.9
1

RX Signal ETH-11
-8.8
1

RX Signal ETH-11
-8.3
1

RX Signal ETH-11
-9.7
1

RX Signal ETH-11
-9.5
1

RX Signal ETH-11
-9.1
1

RX Signal ETH-11
-6.1
1

RX Signal ETH-11
-2.1
1

RX Signal ETH-11
-4.0
1

RX Signal ETH-21
-6.6
1

RX Signal ETH-21
-10.3
1

RX Signal ETH-21
-7.1
1

RX Signal ETH-21
-8.0
1

RX Signal ETH-21
-12.9
1

RX Signal ETH-21
-8.8
1

RX Signal ETH-21
-8.3
1

RX Signal ETH-21
-9.7
1

RX Signal ETH-21
-9.5
1

RX Signal ETH-21
-9.1
1

RX Signal ETH-21
-6.1
1

RX Signal ETH-21
-2.1
1

RX Signal ETH-21
-4.0
1

RX Signal ETH-25
-6.6
1

RX Signal ETH-25
-10.3
1

RX Signal ETH-25
-7.1
1

RX Signal ETH-25
-8.0
1

RX Signal ETH-25
-12.9
1

RX Signal ETH-25
-8.8
1

RX Signal ETH-25
-8.3
1

RX Signal ETH-25
-9.7
1

RX Signal ETH-25
-9.5
1

RX Signal ETH-25
-9.1
1

RX Signal ETH-25
-6.1
1

RX Signal ETH-25
-2.1
1

RX Signal ETH-25
-4.0
1

RX Signal ETH-26
-6.6
1

RX Signal ETH-26
-10.3
1

RX Signal ETH-26
-7.1
1

RX Signal ETH-26
-8.0
1

RX Signal ETH-26
-12.9
1

RX Signal ETH-26
-8.8
1

RX Signal ETH-26
-8.3
1

RX Signal ETH-26
-9.7
1

RX Signal ETH-26
-9.5
1

RX Signal ETH-26
-9.1
1

RX Signal ETH-26
-6.1
1

RX Signal ETH-26
-2.1
1

RX Signal ETH-26
-4.0
1

The foreach is running one time for each Port_ID getting a Information for RX_Signal for every loop. I Need that loop run a time once putting the Port_ID and RX_Signal.

August 13, 2018 at 7:33 pm

Hello people, here me again....

See the code below:

$i=0
$PortStatus = ($column1,$column2,$column3,$column4)[3]|
foreach {
  new-object psobject -property @{
                                    TX_Signal = $Column1[$i]
                                    RX_Signal = $column2[$i]
                                    Temperature = $column3[$i]
                                    Port_ID = $column4[$i++]
                                   
                                   
                                   }
   
                                   
  
}

$x = 0
Foreach ($d in ($PortStatus.Port_ID)){Foreach ($c in ($PortStatus.RX_Signal)){

write-host ""
write-host "RX Signal ETH-$d"
write-host "$($c)"
Write-host "1"
write-host ""
$x++
}}

The foreach is running one time for Port_ID for each data in RX_Signal. I need that run Only one time for RX_Signal and Port_ID.

That currently script, the result is like below:

RX Signal ETH-21
-6.6
1

RX Signal ETH-21
-10.3
1

RX Signal ETH-21
-7.1
1

RX Signal ETH-21
-8.0
1

RX Signal ETH-21
-12.9
1

RX Signal ETH-21
-8.8
1

RX Signal ETH-21
-8.3
1

RX Signal ETH-21
-9.7
1

RX Signal ETH-21
-9.5
1

RX Signal ETH-21
-9.1
1

RX Signal ETH-21
-6.1
1

RX Signal ETH-21
-2.1
1

RX Signal ETH-21
-4.0
1

RX Signal ETH-25
-6.6
1

RX Signal ETH-25
-10.3
1

RX Signal ETH-25
-7.1
1

RX Signal ETH-25
-8.0
1

RX Signal ETH-25
-12.9
1

RX Signal ETH-25
-8.8
1

RX Signal ETH-25
-8.3
1

RX Signal ETH-25
-9.7
1

RX Signal ETH-25
-9.5
1

RX Signal ETH-25
-9.1
1

RX Signal ETH-25
-6.1
1

RX Signal ETH-25
-2.1
1

RX Signal ETH-25
-4.0
1

RX Signal ETH-26
-6.6
1

RX Signal ETH-26
-10.3
1

RX Signal ETH-26
-7.1
1

RX Signal ETH-26
-8.0
1

RX Signal ETH-26
-12.9
1

RX Signal ETH-26
-8.8
1

RX Signal ETH-26
-8.3
1

RX Signal ETH-26
-9.7
1

RX Signal ETH-26
-9.5
1

RX Signal ETH-26
-9.1
1

RX Signal ETH-26
-6.1
1

RX Signal ETH-26
-2.1
1

RX Signal ETH-26
-4.0
1

August 14, 2018 at 7:18 pm

Hi, shouldn't SinaldBM be int?

import-csv example.csv | where { [int]$_.sinaldbm -le -25 }

August 14, 2018 at 9:14 pm

Hi Js, Thank you for your reply,

That issue was resolved. The next challenge is run foreach into another one.

rc.