Using EnterpriseExtFileSystem CSP to Deliver File to Windows 10 Mobile Device

%3CLINGO-SUB%20id%3D%22lingo-sub-1542300%22%20slang%3D%22en-US%22%3EUsing%20EnterpriseExtFileSystem%20CSP%20to%20Deliver%20File%20to%20Windows%2010%20Mobile%20Device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1542300%22%20slang%3D%22en-US%22%3E%3CP%3EI%20am%20attempting%20to%20deliver%20a%20file%20to%20my%20Windows%2010%20IoT%20Enterprise%20device%20using%20a%20custom%20Configuration%20profile.%20I%20am%20trying%20to%20follow%20the%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fclient-management%2Fmdm%2Fenterpriseextfilessystem-csp%3Fredirectedfrom%3DMSDN%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3EEnterpriseExtFileSystem%20CSP%20documentation%3C%2FA%3E%20but%20am%20having%20issues%20getting%20it%20to%20work.%20If%20you%20reference%20the%20docs%2C%20it%20shows%20the%20following%20XML%20file%20to%20create%20a%20file%20named%20new.txt%20with%20that%20simply%20contains%20%22Hello%20World.%22%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3E%3CADD%3E%0A%20%20%20%3CCMDID%3E2%3C%2FCMDID%3E%0A%20%20%20%3CITEM%3E%0A%20%20%20%20%20%20%3CTARGET%3E%0A%20%20%20%20%20%20%20%20%20%3CLOCURI%3E.%2FVendor%2FMSFT%2FEnterpriseExtFileSystem%2FPersistent%2Fnew.txt%3C%2FLOCURI%3E%0A%20%20%20%20%20%20%3C%2FTARGET%3E%0A%20%20%20%20%20%20%26lt%3Bmeta%20%2F%26gt%3B%0A%20%20%20%20%20%20%20%20%20%20%3CFORMAT%20xmlns%3D%22syncml%3Ametinf%22%3Eb64%3C%2FFORMAT%3E%0A%20%20%20%20%20%20%20%20%20%20%3CTYPE%20xmlns%3D%22syncml%3Ametinf%22%3Eapplication%2Foctet-stream%3C%2FTYPE%3E%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%3CDATA%3EaGVsbG8gd29ybGQ%3D%3C%2FDATA%3E%0A%20%20%20%3C%2FITEM%3E%0A%3C%2FADD%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EHere%20is%20how%20I%20am%20trying%20to%20deploy%20this%20file%20via%20an%20Intune%20Custom%20Configuration%20Profile%3A%3C%2FP%3E%3CDIV%20class%3D%22mceNonEditable%20lia-copypaste-placeholder%22%3E%26nbsp%3B%3C%2FDIV%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22EnterpriseExtFileSystem_Example2.PNG%22%20style%3D%22width%3A%20606px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F207526i69976A9F139B1BE8%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20title%3D%22EnterpriseExtFileSystem_Example2.PNG%22%20alt%3D%22EnterpriseExtFileSystem_Example2.PNG%22%20%2F%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22EnterpriseExtFileSystem_Example.PNG%22%20style%3D%22width%3A%20925px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F207525iDEF82A5C52234180%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20title%3D%22EnterpriseExtFileSystem_Example.PNG%22%20alt%3D%22EnterpriseExtFileSystem_Example.PNG%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EAfter%20this%20Configuration%20profile%20tries%20to%20apply%2C%20I%20get%20an%20error%20reading%3A%3CBR%20%2F%3E%22-2016345697%20(Syncml(415)%3A%20Unsupported%20media%20type%20or%20format.)%22%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EWhat%20is%20the%20correct%20way%20to%20do%20this%3F%20I%20was%20able%20to%20deliver%20files%20in%20this%20manner%20using%20the%20Airwatch%20MDM%20but%20can't%20seem%20to%20get%20it%20to%20work%20in%20Intune.%20I%20have%20also%20tried%20to%20paste%20just%20the%20Base64%20encoded%20text%20in%20as%20a%20string%20data%20type%20but%20that%20didnt%20work%20either.%20It%20looks%20like%20the%20only%20option%20for%20Base64%20encoded%20data%20is%20a%20certificate%20file.%20Any%20help%20would%20be%20appreciated.%20Thanks!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1542300%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EIntune%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMobile%20Device%20Management%20(MDM)%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1542563%22%20slang%3D%22en-US%22%3ERe%3A%20Using%20EnterpriseExtFileSystem%20CSP%20to%20Deliver%20File%20to%20Windows%2010%20Mobile%20Device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1542563%22%20slang%3D%22en-US%22%3E%3CP%3EHey%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F675877%22%20target%3D%22_blank%22%3E%40_PRyan%3C%2FA%3E%2C%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIntune%20doesn't%20allow%20you%20to%20use%20the%20SyncML%20XML%20to%20configure%20something.%20Intune%20does%20only%20allow%20OMA-URI%20and%20data%20value%20specified%20in%20integer%2C%20string%2C%20xml%2C%20...%3C%2FP%3E%0A%3CP%3EThis%20is%20different%20from%20Airwatch%20which%20allows%20you%20to%20specify%20the%20SyncML%20xml.%20Intune%20does%20not%20allow%20the%20raw%20SyncML%20xml%20to%20be%20used%20directly.%20So%2C%20my%20assumption%20would%20be%20to%20map%20the%20datatype%20as%20best%20as%20possible%2C%20just%20use%20the%20base64%20for%20the%20data%20field%2C%20but%20as%20you%20said%20you%20have%20already%20tried%20this%20one%20and%20it%20didn't%20work.%20Based%20on%20this%20test%20result%2C%20I%20don't%20see%20any%20real%20chance%20to%20configure%20it%20in%20the%20Intune%20portal.%20You%20can't%20specify%20the%20datatype%20octet-stream%20and%20base64%20by%20yourself%2C%20like%20you%20do%20when%20using%20the%20SyncML%20xml%20in%20Airwatch.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ELastly%2C%20to%20get%20confirmation%20from%20MS%20about%20this%20assumption%20you%20could%20open%20a%20support%20request%20in%20the%20Intune%20portal.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3Ebest%2C%3C%2FP%3E%0A%3CP%3EOliver%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1542925%22%20slang%3D%22en-US%22%3ERe%3A%20Using%20EnterpriseExtFileSystem%20CSP%20to%20Deliver%20File%20to%20Windows%2010%20Mobile%20Device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1542925%22%20slang%3D%22en-US%22%3EHi%20_PRyan%2C%3CBR%20%2F%3E%3CBR%20%2F%3EAre%20you%20try%20to%20copy%2Fplace%20the%20file%20to%20Windows%20Device%3F%20You%20can%20copy%2Fplace%20files%20using%20Win32%2C%20check%20this%20out.%3CBR%20%2F%3E%3CBR%20%2F%3EHope%20I%E2%80%99m%20not%20misunderstanding%20the%20scenario!%3CBR%20%2F%3E%3CBR%20%2F%3EMoe%3CBR%20%2F%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcloudbymoe.com%2Ff%2Fuse-intune-to-install-azure-vpn-client-and-import-xml-config-file%3Fblogcategory%3DAzure%2BVPN%2BClient%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fcloudbymoe.com%2Ff%2Fuse-intune-to-install-azure-vpn-client-and-import-xml-config-file%3Fblogcategory%3DAzure%2BVPN%2BClient%3C%2FA%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1542927%22%20slang%3D%22en-US%22%3ERe%3A%20Using%20EnterpriseExtFileSystem%20CSP%20to%20Deliver%20File%20to%20Windows%2010%20Mobile%20Device%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1542927%22%20slang%3D%22en-US%22%3EHi%20_PRyan%2C%3CBR%20%2F%3E%3CBR%20%2F%3EAre%20you%20try%20to%20copy%2Fplace%20the%20file%20to%20Windows%20Device%3F%20You%20can%20copy%2Fplace%20files%20using%20Win32%2C%20check%20this%20out.%3CBR%20%2F%3E%3CBR%20%2F%3EHope%20I%E2%80%99m%20understanding%20the%20scenario!%3CBR%20%2F%3E%3CBR%20%2F%3EMoe%3CBR%20%2F%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcloudbymoe.com%2Ff%2Fuse-intune-to-install-azure-vpn-client-and-import-xml-config-file%3Fblogcategory%3DAzure%2BVPN%2BClient%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fcloudbymoe.com%2Ff%2Fuse-intune-to-install-azure-vpn-client-and-import-xml-config-file%3Fblogcategory%3DAzure%2BVPN%2BClient%3C%2FA%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E
Highlighted
Occasional Contributor

I am attempting to deliver a file to my Windows 10 IoT Enterprise device using a custom Configuration profile. I am trying to follow the EnterpriseExtFileSystem CSP documentation but am having issues getting it to work. If you reference the docs, it shows the following XML file to create a file named new.txt with that simply contains "Hello World."

 

 

<Add>
   <CmdID>2</CmdID>
   <Item>
      <Target>
         <LocURI>./Vendor/MSFT/EnterpriseExtFileSystem/Persistent/new.txt</LocURI>
      </Target>
      <Meta>
          <Format xmlns="syncml:metinf">b64</Format>
          <Type xmlns="syncml:metinf">application/octet-stream</Type>
      </Meta>
      <Data>aGVsbG8gd29ybGQ=</Data>
   </Item>
</Add>

 

 

 

Here is how I am trying to deploy this file via an Intune Custom Configuration Profile:

 

EnterpriseExtFileSystem_Example2.PNGEnterpriseExtFileSystem_Example.PNG

After this Configuration profile tries to apply, I get an error reading:
"-2016345697 (Syncml(415): Unsupported media type or format.)"

 

What is the correct way to do this? I was able to deliver files in this manner using the Airwatch MDM but can't seem to get it to work in Intune. I have also tried to paste just the Base64 encoded text in as a string data type but that didnt work either. It looks like the only option for Base64 encoded data is a certificate file. Any help would be appreciated. Thanks!

10 Replies
Highlighted

Hey @_PRyan,

 

Intune doesn't allow you to use the SyncML XML to configure something. Intune does only allow OMA-URI and data value specified in integer, string, xml, ...

This is different from Airwatch which allows you to specify the SyncML xml. Intune does not allow the raw SyncML xml to be used directly. So, my assumption would be to map the datatype as best as possible, just use the base64 for the data field, but as you said you have already tried this one and it didn't work. Based on this test result, I don't see any real chance to configure it in the Intune portal. You can't specify the datatype octet-stream and base64 by yourself, like you do when using the SyncML xml in Airwatch.

 

Lastly, to get confirmation from MS about this assumption you could open a support request in the Intune portal.

 

best,

Oliver

Highlighted
Hi _PRyan,

Are you try to copy/place the file to Windows Device? You can copy/place files using Win32, check this out.

Hope I’m understanding the scenario!

Moe

https://cloudbymoe.com/f/use-intune-to-install-azure-vpn-client-and-import-xml-config-file?blogcateg...
Highlighted

Hey @Moe_Kinani,

 

I thought exactly the same in the beginning :-), but then I realized he talked about Windows 10 IoT and this one is based on Windows 10 Mobile afaik. Furthermore he explained he succeeded with Airwatch with the CSP and the CSP is only supported/working on Windows 10 Mobile. So a kind of confirmation that it is based on Win10 Mobile then. IME is not working on Windows 10 Mobile, so not an option imho.

 

best,

Oliver

Highlighted

@Oliver Kieselbach @Moe_Kinani 

Yea sorry, the device runs Windows 10 Mobile Enterprise. The device manufacturer (Honeywell) lists the OS as Windows 10 IoT Mobile Enterprise, so it can get confusing at times when trying to describe the device. What I am really trying to do is push down a device scanner profile using the OMA-URI setting ./Vendor/MSFT/EnterpriseExtFileSystem/OEMProfile as described here.  It seems that this setting requires that the data be encoded in Base64, but there is no way to chose that as a data type in a custom configuration profile unless you are pushing a certificate. As mentioned before, I have tried inputting the Base64 value using a String data type but that didn't work either. 

Highlighted
File contents are embedded directly into the syncML message, so there is a limit to the size of the file that can be retrieved from the device. The default limit is 0x100000 (1 MB). You can configure this limit by using the following registry key: Software\Microsoft\Provisioning\CSPs\.\Vendor\MSFT\EnterpriseExtFileSystem\MaxFileReadSize.

The following diagram shows the EnterpriseExtFileSystem configuration service provider in tree format as used by the Open Mobile Alliance (OMA) Device Management (DM).

enterpriseextfilesystem csp

The following list describes the characteristics and parameters.

./Vendor/MSFT/EnterpriseExtFileSystem

The root node for the EnterpriseExtFileSystem configuration service provider. Supported operations are Add and Get.
Highlighted

Hey @Lewis-H,

 

that's the paragraph from the docs article. Not sure what you are trying to say, but it describes the CSP and how content is embedded into the syncML. But still the problem is we can't define the syncML by our own, Intune constructs it for us and we only have options for the OMA-URI and the data value... that's the problem. The only viable option would be base64 which was already tested and didn't work...

 

custom-profile.png

 

best,
Oliver

Highlighted

@Oliver Kieselbach 

I was able to get Intune to say that the configuration profile was successfully applied, but it did not seem to correctly deliver the file. What I did was I took the Base64 encoded data and saved it into a .txt file, then changed the file type to a .crt file. I then was able to import that file using the Base64(file) data type, which just pulled out the Base64 encoded data and displayed it below. EnterpriseExtFileSystem_Example3.PNG

 

The problem is that the device scanner isn't behaving as expected, so even though it was successfully delivered, the file conversion may have corrupted the data that was sent down. At this point I am out of new ideas, I thought I was on to something here for a minute. 

Highlighted

Interesting @_PRyan, I thought you already tried this and it still failed to deliver... That's the approach I had in mind initially. Did you convert the content back and forth just to double check that the content is valid?

Highlighted

@Oliver Kieselbach 

I enrolled one of our development devices that allows me to browse the file system. It looks like the file is getting delivered, but the contents of the file are still encoded in Base64 instead of plain text. 

Highlighted

@Oliver Kieselbach 

I was finally able to get it to work. I changed the .txt file containing the Base64 encoded data to a .bin file and uploaded that under the Base64(File) data type. The file delivered and was converted back to the plain text where the device could read the scanner settings. I would like to thank you for talking this through with me! Much Appreciated!