Если кто-то делает/сделает лучше и "пушистее" — рассказывайте, делитесь, да воздастся вам по делам вашим. В общем welcome anytime! Моя задача была чтобы быстро и чтоб работало.
Пару слов про Яндекс Диск ( ЯД 🙂 ) — проект это коммерческий с бесплатной составляющей в виде заманухи. Да, здорово, что ЯД есть. Никто не ворчит, но истинные мотивы проекта понимать надо: продавать. Делать бесплатные расширенные "плюшки" в программе никто не собирался. Основные моменты:
- программа устанавливается в каталог конкретного пользователя;
- запускается автозапуском при входе пользователя в систему, либо вручную;
- при включенной синхронизации, синхронизация начинается сразу после старта программы.
Получается для синхронизации файлов, пользователь должен быть все время залогинен в системе. Это не очень безопасно, куда хуже, что это ужасно неудобно. Нужно все время следить чтобы блокировать систему, а не выходить из нее.
Сначала полностью подготавливаете ЯД к работе. Скачиваете, устанавливаете, вводите регистрационные данные, назначаете нужную папку, проверяете синхронизацию и завершаете программу.
Затем скачиваете nssm, распаковываете, переносите в Program Files
. Файл будет исполняться из того места, где он лежит, поэтому сразу переносим по месту. Мои комментарии относительно ЯД'а:
- Запускаете командную строку от имени Администратора, переходите в каталог скачанной
nssm
; - Пишете
nssm install YaDisk
; - Указываете путь
C:\Users\имя_пользователя\AppData\Roaming\Yandex\YandexDisk\YandexDisk.exe
;

- Закладка
Details
, вбиваете Display name:

- Закладка
Log on as
, вбиваете имя и пароль пользователя, для которого установлена программа:

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

- Заходите в
Сервисы
, находитеYaDisk
, нажимаете Запустить:

- Запускаете Диспетчер задач, переходите к Процессам. Наша служба "как пирожок" двухслойная:

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

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

Насколько конфликтует или нет не проверял, синхронизация по прежнему работает. Лично я графической оболочкой буду пользоваться редко-редко, может быть для каких-то настроек, не более того. Вот в общем-то и всё. Осталось отключить запуск графической оболочки при входе пользователя.
Справедливости ради нужно поблагодарить человека, давшего наводку (прошу не путать с "на водку") на nssm
, я лишь адаптировал к Яндекс Диску. Однако уверен 100%, что моя заметка будет полезна многим.
Добавление от 06.04.2016
Удаляем значок ЯД'а из Моего компьютера, так как щелчок на этом значке запускает графическую оболочку — HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\ удаляем
раздел {19170A69-A883-40D5-AF97-F6DC41495F15}

Со временем номер может измениться. Не буду отслеживать этот момент.
Добавление от 22.05.2016
Сегодня увидел, что Яндекс Диск не синхронизируется. Служба работает.. Стал припоминать, вспомнил что менял пароль от ящика. Это важный момент. При смене пароля, нужно запустить программу ЯД'а и вбить новый пароль. Когда ЯД работает в фоновом режиме про это легко забыть.
Nssm, спасибо, интересный вариант.
А я закинул яд.ехе в шедулер, с перезапуском раз в час.
Всегда пожалуйста. Да наверняка есть еще несколько вариантов.
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
Спасибо за материал, автоматически в спам улетело, сразу не заметил.
Великолепная статья. Спасибо
Спасибо за благодарность. Делалось давно, уже не знаю насколько актуально с текущей версией Яндекс.Диск.
Актуальна до сих пор)) спасибо за идею!
На дворе 2022 - актуально до сих пор!
Актуально, спасибо!
Пробую на Server2003, при запуске службы выходит ошибка:
Тип события: Ошибка
Источник события: Service Control Manager
Категория события: Отсутствует
Код события: 7024
Дата: 04.02.2019
Время: 11:02:38
Пользователь: Н/Д
Компьютер: BO
Описание:
Служба "YaDisk" завершена из-за внутренней ошибки 3 (0x3).
Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".
Спасибо за совет! Пока работает на 2012 Server
а шифровальщик эти данные не достанет?
2020г. WinSrv 2019 Все работает как часы)
Небольшое замечавние на счет удаления ярлыка из Моего ПК. Путь немного изменился:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace{11C9DD7B-CCF5-4502-90A1-FEE8889976D5}
Спасибо, Александр!
Я использую AlwayUp для этого. С ней ЯД с GUI работает и всегда на виду.
Спасибо за инфу!