Preciso de ajuda porque estou tendo problemas para usar minhas variáveis em trabalhos do powershell.
Deixe-me explicar
quero criar um contador para recuperar o numero de ping OK
foreach($computer in $computers)
{
Start-ThreadJob -ThrottleLimit 100 -ScriptBlock {
if (Test-Connection $using:computer -count 1 -TimeoutSeconds 2 -Quiet)
{
$test_con = $test_con+1
}
}
}
write-host $test-con
Não tenho nenhum problema em obter a variável $computer em start threadjob usando o escopo $using. Mas não consigo incrementar a variável test_con cada vez que a conexão de teste é verdadeira, para obter no final o número de máquinas que executam ping.
Eu quero incrementar minha variável global 'test_con' de jobs
Estou usando o powershell 7, nunca me fiz a pergunta no bash linux
Alguém poderia me explicar como funciona com o powershell?
Você pode realmente usar o
using
modificador de escopo para resolver referências de variáveis no escopo de chamada, você só precisa de uma variável com um tipo de coleção thread-safe para gravar:Pessoalmente, prefiro saber em quais computadores poderíamos fazer ping com sucesso, então sugiro armazenar os
Test-Connection
resultados em entradas separadas na tabela: