Мне действительно интересно, поскольку вопрос сформулирован, но мне нужен механизм для временного отключения запланированного запуска (на нескольких серверах с общим диском), но при этом иметь возможность запускать его в интерактивном режиме (если сценарий может быть сделано, чтобы сказать, запущено ли оно из планировщика задач или нет). Внешний флаг (наличие файла) казался простым способом сделать это.
Первым вариантом было использование «% SESSIONNAME%», который кажется пустым при запуске из планировщика, хотя это также имеет место при запуске из powershell (с Start-Process, который может быть вариантом для разрешенного использования при отключении).
РЕДАКТИРОВАТЬ: второй вариант с использованием команды whoami
cmd кажется более многообещающим, он сообщает, что пользователь принадлежит к группе NT AUTHORITY\BATCH при запуске из планировщика задач (но не при интерактивном запуске). Могу ли я выстрелить себе в ногу, используя это - можно ли добавить пользователя в эту группу «навсегда» за моей спиной?
Мы на Windows Server 2012 R2. Решение PowerShell было бы интересным, так как, вероятно, можно было бы использовать оболочку (или даже модифицировать/переписать с .bat на .ps1).