Software Deployment Question

Managed Installation and Custom Inventory for OneDrive

06/29/2016 2408 views
OneDrive for Business shows up under Discovered Software and not Installed Programs.  How can I write a Custom Inventory Rule so I can add OneDrive to the Software list, attach our OneDrive installation package and roll it out through Managed Installation?  If I could write a rule that looked at the Application ID in the Software Catalog, that would work.  Looking at the documentation, I can't see how any of the possible rules will find it.

OneDrive DOES show up for Mac computers, but not Windows PCs.

OneDrive 17.x (current major version) DOES show up in the Software Catalog and reports all the minor versions and number of computers with it installed.

The executable is located in the user's AppData folder - c:\Users\[username]\AppData\Local\Microsoft\OneDrive.exe which makes it difficult to write a rule for file and version.  I tried using FileVersionGreaterThan(c:\users\%username%\appdata\local\Microsoft\OneDrive\OneDrive.exe,17.3) and FileVersionGreaterThan(%LocalAppData%\Microsoft\OneDrive\OneDrive.exe,17.3) but both come back with 0 instances.  I checked the file itself and it is versioned 17.3.x.x

Windows 7 shows OneDrive and version 17.3.x.x in Programs and Features as an installed program.  Windows 10 does not since it is essentially built-in but it also doesn't show up in Turn Windows Features On or Off

Answer Summary:
1 Comment   [ + ] Show comment


  • This will find the exe but not the version though.

    ShellCommandTextReturn(cmd /q /c dir /b /s c:\users | find /I "onedrive.exe")

Answer Chosen by the Author

As Flip1001 commented, there is a way to find the executable.  I ended up using a slightly more complicated string that I modified from another user looking for the Outlook folder in AppData.  Here was what I used checking for the exact location rather than anywhere in the users folder.

ShellCommandTextReturn(cmd /q /c for /f "tokens=2 delims=\" %a in ('wmic computersystem get username') do for %A in (%a) do if exist "C:\Users\%A\AppData\Local\Microsoft\OneDrive\OneDrive.exe" (dir "C:\Users\%A\AppData\Local\Microsoft\OneDrive"))
Answered 06/30/2016 by: swalker804
Yellow Belt

All Answers

look to see if that exists as c:\users\default\appdata\local\Microsoft\OneDrive\OneDrive.exe  it does on our machines but they are imaged so it could have been put there during sysprep
Answered 06/29/2016 by: SMal.tmcc
Red Belt

This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ