👋 Привет, админы!

👋 Привет, админы!
Недавно попался кейс на проде: скрипты, запускаемые через планировщик задач, начали зависать без ошибок. Вручную всё работало идеально. Начал копать — оказалось, дело в окружении задачи, которое отличается от интерактивной сессии.
Чтобы быстрее дебажить такие ситуации, я добавил в скрипт логирование переменных окружения и директории запуска. Вот минимальный шаблон, который теперь всегда кладу в начало таких задач:
$log = "C:\Logs\startup-debug-$(Get-Date -Format 'yyyyMMdd-HHmmss').log"
@"
Start Time: $(Get-Date)
User: $env:USERNAME
Computer: $env:COMPUTERNAME
WorkingDir: $(Get-Location)
ScriptPath: $PSCommandPath
ENV_VARS:
$(Get-ChildItem env: | Out-String)
"@ | Out-File -FilePath $log -Encoding UTF8
🔥 Благодаря этому сразу видно, под кем и откуда запускается задача. Часто проблема оказывается в банальной нехватке прав или в том, что планировщик стартует скрипт из C:\Windows\System32, а не откуда мы ожидали.
💬 А у вас были случаи, когда скрипт в Task Scheduler вел себя не так, как вручную? Как отлавливаете такие баги? Делитесь своим опытом!
👉 @win_sysadmin