Microsoft bringt neue Funktionen für OneDrive

Microsoft hat dem OneDrive-Client wieder einige Verbesserungen spendiert, die teilweise die Benutzung optimieren, und teilweise aus Administrationssicht interessant sind. Im einzelnen sind es ein zentraler Sync-Client pro Gerät, Live-Untertitel für PowerPoint Online und ein Skript zur Statusprüfung von KFM-Ordner-Migrationen.

Ein zentraler Sync-Client pro Gerät für Windows

Standardmäßig wird der OneDrive-Synchronisierungsclient bisher unter Windows für jeden Benutzer an einem PC einzeln installiert. Die OneDrive.exe befindet sich somit für jedes Benutzerkonto auf dem PC im Ordner %localappdata%. Mit der neuen Version kann OneDrive im Verzeichnis „Program Files (x86)“ installiert werden, um so von allen Profilen am Computer gemeinsam genutzt zu werden (so wie das bereits auf dem Mac der Fall ist). Für die Benutzer ändert sich nichts, die Migration auf „Client pro Maschine“ bleibt optional. Für Mehrbenutzermaschinen kann es vor allem dann hilfreich sein, wenn man keine Exe-Dateien aus dem Benutzerprofil ausführen möchte.

Der neue Client unterstützt die Synchronisierung von OneDrive- und SharePoint-Dateien in Office 365 und SharePoint Server 2019.

Automatische Live-Untertitel in PowerPoint Online

PowerPoint Online kann zukünftig während einer Präsentation Wörter transkribieren, wie sie präsentiert werden. Auf dem Bildschirm wird der Text dann als Bildunterschrift angezeigt, und zwar wahlweise in der Sprache des Vortrags, oder auch übersetzt in eine gewünschte andere Sprache (siehe Bild). Dafür wechselt man in die Diashow-Ansicht oder aktiviert es auf der Registerkarte Ansicht des Ribbons, während man das Dokument bearbeitet.

Skript für das Verschieben bekannter Ordner mit KFM

Seit letztem Sommer bietet Microsoft die Funktion „Known Folder Move“ (KFM) zum Auslagern zentraler Ordner auf OneDrive. Es geht dabei um einige Ordner aus dem lokalen persönlichen Profil, nämlich Desktop, Dokumente, Bilder und Downloads. Einer der Vorteile ist, dass man damit diese Ordner auf mehreren verwendeten Geräten immer auf dem selben Stand hält.

Um Administratoren beim Einsatz von KFM in Unternehmensumgebungen mehr Kontrolle zu bieten, hat Microsoft ein beispielhaftes PowerShell-Skript erstellt, damit Informationen über die Bereitstellung liefert. Das Skript erzeugt eine txt-Datei, die derzeit folgende drei Dinge anzeigt:

  • KFM-Eignung (für das Gerät, auf dem es ausgeführt wurde)
  • KFM-Status (welche Ordner auf OneDrive verschoben wurden)
  • KFM GPO-Status (welche Gruppenrichtlinien gesetzt wurden)

Das Skript ist so ausgelegt, dass es auf einem lokalen Gerät ausgeführt werden kann. Es lässt sich aber so abändern, dass es in einer Netzwerkumgebung ausgeführt werden kann. Dafür muss die TenantID sowie ein Ausgabepfad angeben werden. Microsoft will das Skript zukünftig weiter verbessern.

# 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:\Software\Microsoft\OneDrive\Accounts -name

$ODPath = foreach ($account in $ODAccounts){
    If($account -notlike 'Personal'){
        'HKCU:\Software\Microsoft\OneDrive\Accounts\' + $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:\SOFTWARE\Policies\Microsoft\OneDrive -name KFMOptInWithWizard
$KFMOptInWithWizardSet = ($PolictyState1 -ne $null) -and ($PolictyState1 -eq $GivenTenantID)

$PolictyState2 = Get-ItemPropertyValue -path HKLM:\SOFTWARE\Policies\Microsoft\OneDrive -name KFMSilentOptIn
$KFMSilentOptInSet = $PolictyState2 -eq $GivenTenantID

Try{
$PolictyState3 = Get-ItemPropertyValue -path HKLM:\SOFTWARE\Policies\Microsoft\OneDrive -name KFMBlockOptIn
$KFMBlockOptInSet = ($PolictyState3 -ne $null) -and ($PolictyState3 -eq 1)
}Catch{}

Try{
$PolictyState4 = Get-ItemPropertyValue -path HKLM:\SOFTWARE\Policies\Microsoft\OneDrive -name KFMBLockOptOut
$KFMBlockOptOutSet = ($PolictyState4 -ne $null) -and ($PolictyState4 -eq 1)
}Catch{}

$PolictyState5 = Get-ItemPropertyValue -path HKLM:\SOFTWARE\Policies\Microsoft\OneDrive -name KFMSilentOptInWithNotification
$SendNotificationWithSilent = $PolictyState5 -eq 1

$ODVersion = Get-ItemPropertyValue -Path HKCU:\Software\Microsoft\OneDrive -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" 
wm@sharepoin
1 Comment
älteste
neuste beste Bewertung
Inline Feedbacks
View all comments
Matt
4 Jahre her

Leider gibt es bei mir keinen Pfad in der Registry unter HKLM:\SOFTWARE\Policies\Microsoft\OneDrive. Lediglich unter HKCU finde ich den Eintrag, damit gibt das Script nur Fehler aus. Gibt es da eine Lösung? VG