У меня есть файл запускающий виндовс 10 на github actions и дающий данные для удаленного управления им как через RDP. Твоя задача используя готовый код за основу изменить код так, чтобы он использовал для RDP передачи не RustDesk, а AnyDesk. Вот код
сделай защиту скрипта от вылетов виндовса без посторонних программ. Все в 1 файле с кодом. Дай готовый код с фиксами(оставь rustdesk и другие функции передающие данные RDP). Github actions
name: Windows - RustDesk

on:
  workflow_dispatch:

jobs:
  build:
    name: Start Building...
    runs-on: windows-latest
    timeout-minutes: 360  # Установка таймаута на 6 часов

    steps:
      - name: Downloading & Installing Essentials
        run: |
          Invoke-WebRequest -Uri "https://www.dropbox.com/scl/fi/qdyd4p9t6xoabl95n5o3g/Downloads.bat?rlkey=snr74vv1vr8k5suujugvrhjtm&dl=1" -OutFile "Downloads.bat"
          cmd /c Downloads.bat

      - name: Log In To RustDesk
        run: cmd /c show.bat

      - name: Start and Protect Chrome
        run: |
          # Запуск chrome.exe в скрытом режиме
          Start-Process "chrome.exe" -ArgumentList @("--no-sandbox") -WindowStyle Hidden

          # Запуск фонового задания для мониторинга chrome.exe
          Start-Job -ScriptBlock {
              while ($true) {
                  Start-Sleep -Seconds 15
                  $chrome = Get-Process -Name "chrome" -ErrorAction SilentlyContinue
                  if (-not $chrome) {
                      Start-Process "chrome.exe" -ArgumentList @("--no-sandbox") -WindowStyle Hidden
                      Write-Output "chrome.exe был перезапущен."
                  }
              }
          }

      - name: Start and Protect RustDesk
        run: |
          # Запуск rustdesk.exe в скрытом режиме
          Start-Process "rustdesk.exe" -WindowStyle Hidden

          # Запуск фонового задания для мониторинга rustdesk.exe
          Start-Job -ScriptBlock {
              while ($true) {
                  Start-Sleep -Seconds 15
                  $rustdesk = Get-Process -Name "rustdesk" -ErrorAction SilentlyContinue
                  if (-not $rustdesk) {
                      Start-Process "rustdesk.exe" -WindowStyle Hidden
                      Write-Output "rustdesk.exe был перезапущен."
                  }
              }
          }

      - name: Prevent Termination of Critical Processes
        run: |
          # Создание PowerShell скрипта для дополнительного мониторинга
          $monitorScript = @"
          while ($true) {
              Start-Sleep -Seconds 20
              \$processes = @("chrome", "rustdesk")
              foreach (\$proc in \$processes) {
                  if (-not (Get-Process -Name \$proc -ErrorAction SilentlyContinue)) {
                      Start-Process "\$proc.exe" -WindowStyle Hidden
                      Write-Output "\$proc.exe был обнаружен как завершённый и перезапущен."
                  }
              }
          }
          "@

          # Сохранение скрипта в файл
          $monitorScript | Out-File -FilePath "C:\MonitorProcesses.ps1" -Encoding UTF8

          # Запуск мониторингового скрипта в фоновом режиме
          Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File C:\MonitorProcesses.ps1" -WindowStyle Hidden

      - name: Time Counter
        run: python time.py