Isso deve funcionar para você, com o PowerShell:
$CurrentHour = (Get-Date).Hour
if ($CurrentHour -ge 7 -and $CurrentHour -le 22)
{
<# Insert commands for 7 AM to 10 PM connection here. #>
}
else
{
<# Insert commands for 10 PM to 7 AM connection here. #>
}
O bom do PowerShell é que ele ainda mantém acesso aos comandos que você usaria normalmente com o CMD / batch. Portanto, você deve poder colocar seus comandos rasdial
no lugar das linhas de comentário acima.
Se você deseja executar um teste para garantir que as instruções if estejam funcionando corretamente, você pode definir o tempo usado por Get-Date
com o parâmetro -Hour
. Por exemplo, altere a primeira linha para $CurrentHour = (Get-Date -Hour 10).Hour
para testar os horários dentro das 10 horas da manhã.
Infelizmente, o PowerShell não recebe muitos comandos de rede nativos até que você atualize o sistema operacional para o Windows 8 ou o Windows 8.1. Pode haver algumas maneiras de fazer isso acessando os objetos subjacentes do .NET Framework, mas provavelmente é melhor ficar com rasdial
por enquanto.