Last active
August 14, 2024 13:56
-
-
Save f-steff/c776aa753e0c88edccee2f44ffe39047 to your computer and use it in GitHub Desktop.
How to set up OneDrive.exe as a Windows Service, allowing synchronization without a user is logged in.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OneDrive.exe as a Windows Service | |
================================= | |
Flemming Steffensen, 2017, 2021 | |
For our automatic build setup, we needed to fetch some files off a Sharepoint Library. | |
Sharepoint allows (if configured so) Lists and Libraries to be synchronized to a local folder by using the OneDrive application. | |
However, the OneDrive application is started when a user logs in, and in an automated build setup, this never happens. | |
The solusion were to disable the normal auto-start feature of OneDrive, and then install it as a service, and making sure the | |
service start as the computer starts. | |
========== | |
Edit February 2021: | |
While this has been working flawlessly for me, others have had problems when Onedrive.exe were updated. In the comments below, @useyourblinker has made some observations and workarounds to deal with these issues. I highly recommend following his advice! | |
Additionally, @adrian-alephit pointed out a copy-waste issue with the Onedrive.exe Startup Directory in the text below. This has been fixed. | |
Huge thanks to both @useyourblinker and @adrian-alephit for their contribution! | |
========== | |
To aid this setup, the excellent NSSM tool (https://nssm.cc/) will be used. | |
1. Log in to the computer using the user you wish to have OneDrive running as. Ensure this user has local admin rights. | |
2. Install the latest Onedrive from Microsofts download page: https://www.microsoft.com/en-us/microsoft-365/onedrive/download | |
3. Configure OneDrive so that syncing is working. | |
If there are security issues, you may have to add trusted sites using IE: IE-Settings→Internet Options→ Security, select Trusted Sites and click on Sites | |
4. Go to OneDrive settings and ensure to remove the option for OneDrive to start as the user logs in. | |
Note, in the future, if you need access to the GUI, you will have to ensure the service we create is stopped, before running the OneDrive.exe as normal. | |
5. Open a command prompt, and change directory to the place you have installed NSSM. | |
6. Install the Onedrive Service by issuing the following in the command prompt: nssm.exe install "Onedrive Sync NSSM-Service" | |
7. In the GUI that follows, configure the tabs as follows: | |
Application TAB | |
Path: C:\Users\<USER_NAME>\AppData\Local\Microsoft\OneDrive\OneDrive.exe | |
Startup Directory: C:\Users\<USER_NAME>\AppData\Local\Microsoft\OneDrive | |
Details Tab | |
Display Name: OneDrive Sync | |
Description: Onedrive Sync Service installed using NSSM. | |
Startup Type: Automatic | |
Log On | |
This Account: <USER_NAME> | |
Password: Correct password of <USER_NAME> | |
Confirm: Correct password of <USER_NAME> | |
Dependencies: Leave as default | |
Process | |
Priority: Normal | |
Affinity: Select "All processor" | |
Console window: Select | |
Shutdown: Leave as default | |
Exit actions: Leave as default | |
I/O | |
Input (stdin): | |
Output (stdout): C:\OnedriveService.log | |
Output (stderr): C:\OnedriveService.log | |
File rotation | |
Replace existing... Not selected | |
Rotate files Selected | |
Rotate while running Selected | |
Restrict rotation to older 0 seconds | |
Restrict rotation to bigger 100000 bytes | |
Environment: Leave as default | |
End by selecting: Install | |
8. In Windows Services, located the new OneDrive service, and change the startup settings to run as <USER_NAME> and provide the password. | |
9. In Windows Services, start the new OneDrive service. | |
10. Verify that the synchronozation is still working. | |
11. Log out of the account or even better, restart the computer. | |
12. Use your automatic build setup to verify that the synchronization is still working. | |
And thats all, Folks. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thank you for the detailed troubleshooting steps, @JoelLeach - they are very valuable!
Unfortunately I'm personally unable to support this further, but I'm happy that this is still useful for a lot of people - and even more happy that people like you and others are able to support it further. Thank you!!