OneDrive Roadmap Round-up: March 2019

April 2, 2019
The original article is published on the Microsoft Tech Community OneDrive Blog.

Hi everyone,

Want to know what happened to OneDrive in March of 2019? Well read on to learn how your experience is getting better each and every week!

We had some great improvements come to the product this month including:

  • Per Machine Sync Client preview
  • Live captions in PowerPoint
  • A new OneDrive personalized provisioning flow
  • A script to check Known Folder Move status in your organization

As always, feel free to share your feedback in the comments below.

Per Machine Sync Client is now available for Windows

Available Now; Roadmap ID : 49424

By default, the OneDrive sync client installs per user on Windows, meaning OneDrive.exe needs to be installed for each user account on the PC under the %localappdata% folder. With the new per-machine installation option, you can install OneDrive under the “Program Files (x86)” directory, meaning all profiles on the computer will use the same OneDrive.exe binary (Note that this is the default behavior for the OneDrive sync client on Mac). Other than where the sync client is installed, everything else stays the same. Migrating to the per-machine client is optional, but it can be helpful for multi-user machines and when you don’t want exe files running from the user profile.

The new per-machine sync client provides:

  • Automatic transitioning from the previous OneDrive sync client (Groove.exe)
  • Automatic conversion from per-user to per-machine
  • Automatic updates when a new version is available

The per-machine sync client supports syncing OneDrive and SharePoint files in Microsoft 365 and in SharePoint Server 2019. You can learn more here.

Live Captions & Subtitles in PowerPoint 

Available Now to Targeted Release; Roadmap: 49958

We are excited to roll out Live Captions & Subtitles to Targeted Release audience of PowerPoint Online! Now PowerPoint can transcribe your words as you present and display them on-screen as captions in the same language you are speaking, or as subtitles translated to another language. Just toggle it in Slide Show view or enable on the View tab of the ribbon while editing the document.

Resized.gifLive Captions in PowerPointResized Copy 01.gifLive Captions & Translation in PowerPoint

As you might imagine, Live Captions & Subtitles lets you improve the accessibility of your presentations and make your point more easily than ever. You can learn more here.

Personalized OneDrive Provisioning

Rolling Out; Roadmap ID: 27547

We have introduced a more engaging, personalized the provisioning experience on OneDrive for Business web to help new customers feel more connection with their OneDrive. We added an optional survey for customers while their OneDrive is provisioning. We ask users two questions: one about their role in their organization, and the second about the features in OneDrive they are most interested in. This survey is completely optional and although we do collect responses to the questions, we do not store any user data connected to them – the responses are completely anonymous.

Updated Personalized.pngPersonalized Provisioning

Known Folder Move status script

Known Folder Move is getting popular among our enterprise users and we have heard a lot of feedback with regards to keeping admins aware of what their deployment.  We have created a sample PowerShell script for you to know more about your deployment.  The script will create a txt file that shows 3 things:

  • KFM eligibility (for whatever device it was run on)
  • KFM status (have the known folders been moved to OneDrive)
  • KFM GPO state (what GPOs have been set)

This script is set up to be run on a single device but you can modify it for to be run across your workplace.  You will need to provide your TenantID as well as an output path.  With this level of detail you should have a better sense of where your deployment of KFM is and how devices within your workplace are not technically eligible for KFM.  We are continuing to do our best to increase Technical Eligibility and you should continue to see announcements from us enabling KFM for more devices.

# This Sample Code is provided for the purpose of illustration only and is not intended to be used in a production environment.
# THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
# We grant You a nonexclusive, royalty-free right to use and modify the Sample Code and to reproduce and distribute the object
# code form of the Sample Code, provided that You agree: (i) to not use Our name, logo, or trademarks to market Your software
# product in which the Sample Code is embedded; (ii) to include a valid copyright notice on Your software product in which the
# Sample Code is embedded; and (iii) to indemnify, hold harmless, and defend Us and Our suppliers from and against any claims
# or lawsuits, including attorneys’ fees, that arise or result from the use or distribution of the Sample Code.inst

#CODE STARTS HERE
#--TODO: Put your Tenant ID here, similar to $GivenTenantID =  'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
#--TODO: Put a designated location here for logs $OutputPath = 'example file path C:...Desktop' + $env:USERNAME + "_" + $env:COMPUTERNAME + '.txt'


$PolictyState3 = ''
$PolictyState4 = ''
$KFMBlockOptInSet = 'False'
$KFMBlockOptOutSet = 'False'
$SpecificODPath = ''

$DesktopPath = [environment]::GetFolderPath("Desktop")
$DocumentsPath = [environment]::GetFolderPath("MyDocuments")
$PicturesPath = [environment]::GetFolderPath("MyPictures")

$ODAccounts = Get-ChildItem -Path HKCU:SoftwareMicrosoftOneDriveAccounts -name

$ODPath = foreach ($account in $ODAccounts){
    If($account -notlike 'Personal'){
        'HKCU:SoftwareMicrosoftOneDriveAccounts' + $account
    }
}

foreach ($path in $ODPath){
    $ConfiguredTenantID = Get-ItemPropertyValue -path $path -name ConfiguredTenantID
    If ($GivenTenantID -eq $ConfiguredTenantID){
        $SpecificODPath = (Get-ItemPropertyValue -path $path -name UserFolder) + "*"
        $KFMScanState = Get-ItemPropertyValue -path $path -name LastMigrationScanResult
        #$KFMPolicyState = Get-ItemPropertyValue -path $path -name LastMigrationScanResult
        break
    }
}

$DesktopInOD = ($DesktopPath -like $SpecificODPath)
$DocumentsInOD = ($DocumentsPath -like $SpecificODPath)
$PicturesInOD = ($PicturesPath -like $SpecificODPath)

$KFMGPOEligible = (($KFMScanState -ne 40) -and ($KFMScanState -ne 50))

$PolictyState1 = Get-ItemPropertyValue -path HKLM:SOFTWAREPoliciesMicrosoftOneDrive -name KFMOptInWithWizard
$KFMOptInWithWizardSet = ($PolictyState1 -ne $null) -and ($PolictyState1 -eq $GivenTenantID)

$PolictyState2 = Get-ItemPropertyValue -path HKLM:SOFTWAREPoliciesMicrosoftOneDrive -name KFMSilentOptIn
$KFMSilentOptInSet = $PolictyState2 -eq $GivenTenantID

Try{
$PolictyState3 = Get-ItemPropertyValue -path HKLM:SOFTWAREPoliciesMicrosoftOneDrive -name KFMBlockOptIn
$KFMBlockOptInSet = ($PolictyState3 -ne $null) -and ($PolictyState3 -eq 1)
}Catch{}

Try{
$PolictyState4 = Get-ItemPropertyValue -path HKLM:SOFTWAREPoliciesMicrosoftOneDrive -name KFMBLockOptOut
$KFMBlockOptOutSet = ($PolictyState4 -ne $null) -and ($PolictyState4 -eq 1)
}Catch{}

$PolictyState5 = Get-ItemPropertyValue -path HKLM:SOFTWAREPoliciesMicrosoftOneDrive -name KFMSilentOptInWithNotification
$SendNotificationWithSilent = $PolictyState5 -eq 1

$ODVersion = Get-ItemPropertyValue -Path HKCU:SoftwareMicrosoftOneDrive -Name Version

Set-Content $OutputPath "$KFMGPOEligible | Device_is_KFM_GPO_eligible`n"
Add-Content $OutputPath "$DesktopInOD | Desktop_is_in_OneDrive" 
Add-Content $OutputPath "$DocumentsInOD | Documents_is_in_OneDrive" 
Add-Content $OutputPath "$PicturesInOD | Pictures_is_in_OneDrive `n" 
Add-Content $OutputPath "$KFMOptInWithWizardSet | KFM_Opt_In_Wizard_Set"
Add-Content $OutputPath "$KFMSilentOptInSet | KFM_Silent_Opt_In_Set"
Add-Content $OutputPath "$SendNotificationWithSilent | KFM_Silent_With_Notification_Set"
Add-Content $OutputPath "$KFMBlockOptInSet | KFM_Block_Opt_In_Set"
Add-Content $OutputPath "$KFMBlockOptOutSet | KFM_Block_Opt_Out_Set `n"
Add-Content $OutputPath "$ODVersion | OneDrive Sync client version" 

As always, please leave your comments, feedback and questions below! 

Stephen Rice

Program Manager – OneDrive

Discuss this article in the Microsoft Technical Community.