#pragma autorecover
#pragma namespace("\\\\.\\root\\CIMV2")

[Dynamic : ToInstance DisableOverride,provider("Win32_FolderRedirectionConfiguration"),description("") : ToInstance ToSubclass,singleton,inpartition{"local-user"}] 
class Win32_FolderRedirectionUserConfiguration
{
  [read,description("Indicates if the settings configured through this WMI class are taking affect.")] boolean IsConfiguredByWMI;
  [read,write,description("The Primary Computer feature is enabled for this user")] boolean PrimaryComputerEnabled;
  [read,write,description("AppData\\Roaming folder, GUID is {3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}")] Win32_FolderRedirection AppDataRoaming;
  [read,write,description("Desktop folder, GUID is {B4BFCC3A-DB2C-424C-B029-7FE99A87C641}")] Win32_FolderRedirection Desktop;
  [read,write,description("Start Menu folder, GUID is {625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}")] Win32_FolderRedirection StartMenu;
  [read,write,description("Documents folder, GUID is {FDD39AD0-238F-46AF-ADB4-6C85480369C7}")] Win32_FolderRedirection Documents;
  [read,write,description("Pictures folder, GUID is {33E28130-4E1E-4676-835A-98395C3BC3BB}")] Win32_FolderRedirection Pictures;
  [read,write,description("Music folder, GUID is {4BD8D571-6D19-48D3-BE97-422220080E43}")] Win32_FolderRedirection Music;
  [read,write,description("Videos folder, GUID is {18989B1D-99B5-455B-841C-AB7C74E4DDFC}")] Win32_FolderRedirection Videos;
  [read,write,description("Favorites folder, GUID is {1777F761-68AD-4D8A-87BD-30B759FA33DD}")] Win32_FolderRedirection Favorites;
  [read,write,description("Contacts folder, GUID is {56784854-C6CB-462b-8169-88E350ACB882}")] Win32_FolderRedirection Contacts;
  [read,write,description("Downloads folder, GUID is {374DE290-123F-4565-9164-39C4925E467B}")] Win32_FolderRedirection Downloads;
  [read,write,description("Links folder, GUID is {BFB9D5E0-C6A9-404C-B2B2-AE6DB6AF4968}")] Win32_FolderRedirection Links;
  [read,write,description("Searches folder, GUID is {7D1D3A04-DEBB-4115-95CF-2F29DA2920DA}")] Win32_FolderRedirection Searches;
  [read,write,description("SavedGames folder, GUID is {4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4}")] Win32_FolderRedirection SavedGames;
};

[Dynamic : ToInstance DisableOverride,Embed,description(""),provider("Win32_FolderRedirectionConfiguration")] 
class Win32_FolderRedirection
{
  [key,read,description("known folder unique id (guid)")] string FolderId;
  [read,write,description("The type of folder redirection to be performed."),Values{"ToFullPath", "ToLocalUserProfile"},ValueMap{"0", "1"}] uint8 RedirectionType;
  [read,write,description("Redirection Path [may be used when RedirectionType == {0,1}"),MaxLen(260)] string RedirectionPath;
  [read,write,description("Grant the user exclusive rights to <folder>")] boolean ExclusiveRightsGranted;
  [read,write,description("When the redirection policy is removed, the folder's content will be moved to the local profileIf true, the folder will be moved back to the local user profile location when policy is removed.If false, the folder will remain in the redirected location after the redirection policy is removed.")] boolean ContentsMovedOnPolicyRemoval;
  [read,write,description("Move the contents of local <folder> to the new location. This will copy the redirected folder data into the local UNC location. Then this content will be synced with the server share content. Effectively, moving the content from the local location to the share")] boolean ContentsMoved;
  [read,write,description("Content is renamed from old to new location in Offline Files cache; assumes data on server is moved between names through other means")] boolean ContentsRenamedInLocalCache;
  [read,write,description("Do not automatically make redirected folders available offline")] boolean MakeFolderAvailableOfflineDisabled;
};

Instance of __Win32Provider as $FR1
{
  Name = "Win32_FolderRedirectionConfiguration";
  CLSID = "{c350f6ad-f45f-45c9-9e62-1f50bb3fc25f}";
  HostingModel = "LocalSystemHost";
  DefaultMachineName;
  ImpersonationLevel = 1;
  InitializationReentrancy = 0;
  InitializeAsAdminFirst = TRUE;
  PerLocaleInitialization = FALSE;
  PerUserInitialization = FALSE;
  Pure = TRUE;
  UnloadTimeout;
};

Instance of __InstanceProviderRegistration
{
  provider = $FR1;
  SupportsEnumeration = "TRUE";
  SupportsGet = "TRUE";
  SupportsPut = "TRUE";
  SupportsDelete = "FALSE";
  QuerySupportLevels = {"WQL:UnarySelect"};
};
