Яндекс Диск как служба Windows

Если кто-то делает/сделает лучше и "пушистее" — рассказывайте, делитесь, да воздастся вам по делам вашим. В общем welcome anytime! Моя задача была чтобы быстро и чтоб работало.

Пару слов про Яндекс Диск ( ЯД 🙂 ) — проект это коммерческий с бесплатной составляющей в виде заманухи. Да, здорово, что ЯД есть. Никто не ворчит, но истинные мотивы проекта понимать надо: продавать. Делать бесплатные расширенные "плюшки" в программе никто не собирался. Основные моменты:

  • программа устанавливается в каталог конкретного пользователя;
  • запускается автозапуском при входе пользователя в систему, либо вручную;
  • при включенной синхронизации, синхронизация начинается сразу после старта программы.

Получается для синхронизации файлов, пользователь должен быть все время залогинен в системе. Это не очень безопасно, куда хуже, что это ужасно неудобно. Нужно все время следить чтобы блокировать систему, а не выходить из нее.

Сначала полностью подготавливаете ЯД к работе. Скачиваете, устанавливаете, вводите регистрационные данные, назначаете нужную папку, проверяете синхронизацию и завершаете программу.

Затем скачиваете nssm, распаковываете, переносите в Program Files. Файл будет исполняться из того места, где он лежит, поэтому сразу переносим по месту. Мои комментарии относительно ЯД'а:

  • Запускаете командную строку от имени Администратора, переходите в каталог скачанной nssm;
  • Пишете nssm install YaDisk;
  • Указываете путь C:\Users\имя_пользователя\AppData\Roaming\Yandex\YandexDisk\YandexDisk.exe;
Яндекс Диск как служба Windows
  • Закладка Details, вбиваете Display name:
Яндекс Диск как служба Windows
  • Закладка Log on as, вбиваете имя и пароль пользователя, для которого установлена программа:
Яндекс Диск как служба Windows

У меня пользователь с правами Администратора, настроить под обычного пользователя можно. Мне это не нужно. Еще есть закладка, где можно выбрать используемые ядра процессора. Разумная вещь.

  • Нажимаете Install service:
Яндекс Диск как служба Windows
  • Заходите в Сервисы, находите YaDisk, нажимаете Запустить:
Яндекс Диск как служба Windows
  • Запускаете Диспетчер задач, переходите к Процессам. Наша служба "как пирожок" двухслойная:
Яндекс Диск как служба Windows

Первая часть это запуск nssm и скрипта, вторая — ЯД'а.

Яндекс Диск как служба Windows

При этом графически нигде ЯД не светится. Это очень хорошо, а синхронизация работает. Чтобы проверить нужно открыть ЯД в браузере и папку ЯД'а на компьютере, создавать/удалять и смотреть как в другой папке синхронно появляется/удаляется.

Запуск ЯД'а через ярлык программы стартует отдельный процесс с графической оболочкой. Вместе с нашим сервисом получается два одинаковых процесса, возможно отличающихся параметрами запуска:

Яндекс Диск как служба Windows

Насколько конфликтует или нет не проверял, синхронизация по прежнему работает. Лично я графической оболочкой буду пользоваться редко-редко, может быть для каких-то настроек, не более того. Вот в общем-то и всё. Осталось отключить запуск графической оболочки при входе пользователя.

Справедливости ради нужно поблагодарить человека, давшего наводку (прошу не путать с "на водку") на nssm, я лишь адаптировал к Яндекс Диску. Однако уверен 100%, что моя заметка будет полезна многим.


Добавление от 06.04.2016

Удаляем значок ЯД'а из Моего компьютера, так как щелчок на этом значке запускает графическую оболочку — HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\ удаляем
раздел {19170A69-A883-40D5-AF97-F6DC41495F15}

Яндекс Диск как служба Windows

Со временем номер может измениться. Не буду отслеживать этот момент.


Добавление от 22.05.2016

Сегодня увидел, что Яндекс Диск не синхронизируется. Служба работает.. Стал припоминать, вспомнил что менял пароль от ящика. Это важный момент. При смене пароля, нужно запустить программу ЯД'а и вбить новый пароль. Когда ЯД работает в фоновом режиме про это легко забыть.

17 thoughts on “Яндекс Диск как служба Windows”

  1. Андрей

    Nssm, спасибо, интересный вариант.

    А я закинул яд.ехе в шедулер, с перезапуском раз в час.

    1. Андрей

      Всегда пожалуйста. Да наверняка есть еще несколько вариантов.

  2. Максим

    1. Для начала вам понадобится пара файлов из состава Resource Kit. Скачать ResKit можно здесь или здесь.

    2. Копиpyете файлы instsrv.exe и srvany.exe в какyю-нибyдь системнyю диpектоpию, напpимеp, в winnt\system32\ В ResKit есть еще

    srvinstw – это пошаговая GUI-оболочка делающая то же, что и instsrv, но ещё умеет ставить/сносить службы удаленно ).

    3. Запyскаете из командной стpоки:
    instsrv MyService c:\path\to\srvany.exe

    где MyService — пpидyманное вами имя вновь созданного сеpвиса. Если в имени имеются пpобелы, то имя сеpвиса необходимо

    заключить в кавычки.

    4. Тепеpь надо сконфигypиpовать этот сеpвис. Идете в: Start -> Settings -> Control Panel -> Services (services.msc), находите свой новый

    сеpвис и заходите в свойства. В откpывшемся окошке отмечаете, каким способом ваш сеpвис бyдет запyскаться: Automatic – бyдет

    запyскаться автоматически пpи загpyзки компьютеpа, Manual – бyдет запyскаться только вручную (или по требованию других служб

    и приложений), Disabled – Отключен, запрещен к запуску. Если хотите видеть запущенный сеpвис в виде окна на десктопе, то

    отметьте чек-бокс «Allow Service to Interact with Desktop» (Разрешить взаимодействие с рабочим столом). Здесь же можно указать

    учетную запись от имени которой будет запускаться служба.

    5. Запyскаете regedit и создаёте key «Parameters» (без кавычек) в: HKLM \ SYSTEM \ CurrentControlSet \ Service \ Имя_Вашего_сеpвиса \

    6. Создаёте под созданным вами ключом «Parameters» (без кавычек) value «Application» (без кавычек) тип — REG_SZ: и прописываете

    там полный пyть к исполняемомy файлy.
    Hапpимеp, ApplicationName | REG_SZ | c:\path\to\application.exe

    7. Перезагружаете компьютер или стартуете сервис вручную.

    Источник: //wremya.org/index.php/faq/37-manwindows/111--windows

    1. Андрей

      Спасибо за материал, автоматически в спам улетело, сразу не заметил.

    1. Андрей

      Спасибо за благодарность. Делалось давно, уже не знаю насколько актуально с текущей версией Яндекс.Диск.

  3. Александр

    Пробую на Server2003, при запуске службы выходит ошибка:
    Тип события: Ошибка
    Источник события: Service Control Manager
    Категория события: Отсутствует
    Код события: 7024
    Дата: 04.02.2019
    Время: 11:02:38
    Пользователь: Н/Д
    Компьютер: BO
    Описание:
    Служба "YaDisk" завершена из-за внутренней ошибки 3 (0x3).

    Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".

  4. Александр Кобзев

    Небольшое замечавние на счет удаления ярлыка из Моего ПК. Путь немного изменился:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace{11C9DD7B-CCF5-4502-90A1-FEE8889976D5}

  5. Я использую AlwayUp для этого. С ней ЯД с GUI работает и всегда на виду.

Leave a Comment

Scroll to Top