Oi Matheus Mohr!
Bem-vindo ao Microsoft Q&A!
Parece que você está enfrentando dificuldades para automatizar a execução do RAMMap com o argumento -Et
usando o Agendador de Tarefas do Windows. Vamos tentar resolver isso.
Aqui estão alguns passos para garantir que o RAMMap seja executado corretamente com o argumento -Et
:
Verifique o Caminho do Executável: Certifique-se de que o caminho para o executável do RAMMap está correto e acessível. Você pode testar manualmente executando o comando no PowerShell:
& "C:\RAMMap\RAMMap.exe" -Et
Permissões e Privilégios: Verifique se a tarefa agendada está configurada para ser executada com privilégios elevados. Isso é crucial para que o RAMMap tenha as permissões necessárias para limpar a memória.
Log de Erros: Adicione um log para capturar qualquer erro que possa ocorrer durante a execução da tarefa. Isso pode ajudar a identificar o problema:
$action = New-ScheduledTaskAction -Execute $RAMMapPath -Argument "-Et" -ErrorAction SilentlyContinue -ErrorVariable err
if ($err) {
Write-Error "Erro ao executar RAMMap: $err"
}
Script Atualizado: Aqui está uma versão atualizada do seu script com algumas melhorias:
# Configurações iniciais
$DownloadUrl = "https://live.sysinternals.com/RAMMap.exe" # URL do RAMMap
$DestinationPath = "C:\RAMMap" # Pasta destino
$RAMMapPath = Join-Path -Path $DestinationPath -ChildPath "RAMMap.exe"
# Cria a pasta de destino, se não existir
if (-not (Test-Path -Path $DestinationPath)) {
New-Item -Path $DestinationPath -ItemType Directory -Force | Out-Null
}
# Baixa o RAMMap.exe
Write-Host "Baixando o RAMMap.exe..."
Invoke-WebRequest -Uri $DownloadUrl -OutFile $RAMMapPath -UseBasicParsing
if (-not (Test-Path -Path $RAMMapPath)) {
Write-Error "Falha ao baixar o RAMMap.exe. Verifique a URL ou a conexão de rede."
exit 1
}
Write-Host "RAMMap.exe baixado com sucesso para $RAMMapPath"
# Comando que será executado pela tarefa agendada
$action = New-ScheduledTaskAction -Execute $RAMMapPath -Argument "-Et"
# Configuração de disparador para repetir a cada 10 minutos, por tempo indeterminado
$repetitionTrigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 10) -Once -At (Get-Date).AddMinutes(1)
# Configuração de execução com privilégios elevados, sem a condição de ociosidade
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
# Adiciona a configuração para execução com privilégios elevados (administração)
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
# Registra a tarefa agendada
Register-ScheduledTask -TaskName "Clear Standby Memory" -Action $action -Trigger $repetitionTrigger -Settings $settings -Principal $Principal -Force
Write-Host "Tarefa agendada criada com sucesso! Ela começará imediatamente, se repetirá a cada 10 minutos."
Testar Manualmente: Antes de registrar a tarefa, teste o comando manualmente no PowerShell para garantir que o RAMMap está funcionando corretamente com o argumento -Et
.
Documentação e Recursos: Consulte a documentação oficial do RAMMap e do Agendador de Tarefas para verificar se há alguma configuração adicional necessária.
Espero que essas sugestões ajudem a resolver o problema. Se precisar de mais assistência, estou à disposição!
Espero que essas dicas ajudem a resolver o problema! Se precisar de mais assistência, estou à disposição.
Saudações
Jonathan.
-----------
Sua opinião é muito importante para nós! Se esta resposta resolveu sua consulta, por favor clique em ‘YES‘. Isso nos ajuda a melhorar continuamente a qualidade e relevância de nossas soluções. Obrigado pela sua colaboração!