Как оказалось задачка из заголовка не так то просто реализуется. Вроде было бы логично если бы программы из HKLM:\Software\Microsoft\Windows\CurrentVersion\Run или RunOnce запускались бы при включении компьютера, ан нет – они стартуют при входе под учетной записью с административными полномочиями. Так что приходится искать другие пути.
Например стартап скрипт из групповых/локальных политик. Этот метод работает, но к сожалению сложновато создать политику из скрипта. Даже локальная политика состоит из немалого количества ключей, создавать которые с помощью reg.exe замучаешься, а импортировать – это уже отдельный .reg файл, что IMHO не слишком красиво ради такой простой (казалось бы) задачки…
В итоге из более менее «красивых» способов нашел только использование планировщика заданий. С помощью утилиты schtasks.exe (доступна на xp/2k3 и выше) добавить задачу, и указать выполнение при загрузке системы. Ну и до кучи я использовал учетную запись System (так как мне был необходим доступ на сетевые ресурсы, а соответственно программа должна использовать учетную запись компьютера из AD).
schtasks /create /ru SYSTEM /sc ONSTART /tn SetupDM /tr "c:\SetupDM.cmd"
Эту строчку уже не стыдно использовать в скрипте. Ну и если достаточно выполнить задачу однократно, то можно после запуска удалить её:
schtasks /delete /f /tn SetupDm








14.1.2009 в 11:39
[...] например с помощью планировщика задач (подробнее тут). Он проверяет наличие файла c:commandSharetrigger.txt и если он [...]