From c57b9d088c962bed88fada6766ef82b33885cf9f Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Fri, 27 Mar 2020 16:51:24 -0700 Subject: [PATCH] Added DNSComputerName node --- windows/client-management/mdm/accounts-csp.md | 3 + .../client-management/mdm/devdetail-csp.md | 140 ++++++++++-------- .../images/provisioning-csp-devdetail-dm.png | Bin 32174 -> 1560 bytes 3 files changed, 80 insertions(+), 63 deletions(-) diff --git a/windows/client-management/mdm/accounts-csp.md b/windows/client-management/mdm/accounts-csp.md index d6d6a9fc16..78d113e641 100644 --- a/windows/client-management/mdm/accounts-csp.md +++ b/windows/client-management/mdm/accounts-csp.md @@ -39,6 +39,9 @@ Available naming macros: Supported operation is Add. +> [!Note] +> For Desktop PCs on Windows 10, version 1903 or later, use the **Ext/Microsoft/DNSComputerName** node in [DevDetail CSP](devdetail-csp.md). + **Users** Interior node for the user account information. diff --git a/windows/client-management/mdm/devdetail-csp.md b/windows/client-management/mdm/devdetail-csp.md index 9292eb002c..ad3361c19f 100644 --- a/windows/client-management/mdm/devdetail-csp.md +++ b/windows/client-management/mdm/devdetail-csp.md @@ -9,7 +9,7 @@ ms.topic: article ms.prod: w10 ms.technology: windows author: manikadhiman -ms.date: 07/11/2018 +ms.date: 03/27/2020 --- # DevDetail CSP @@ -29,121 +29,121 @@ The following diagram shows the DevDetail configuration service provider managem ![devdetail csp (dm)](images/provisioning-csp-devdetail-dm.png) **DevTyp** -

Required. Returns the device model name /SystemProductName as a string. +Required. Returns the device model name /SystemProductName as a string. -

Supported operation is Get. +Supported operation is Get. **OEM** -

Required. Returns the name of the Original Equipment Manufacturer (OEM) as a string, as defined in the specification SyncML Device Information, version 1.1.2. +Required. Returns the name of the Original Equipment Manufacturer (OEM) as a string, as defined in the specification SyncML Device Information, version 1.1.2. -

Supported operation is Get. +Supported operation is Get. **FwV** -

Required. Returns the firmware version, as defined in the registry key HKEY_LOCAL_MACHINE\System\Platform\DeviceTargetingInfo\PhoneFirmwareRevision. +Required. Returns the firmware version, as defined in the registry key HKEY_LOCAL_MACHINE\System\Platform\DeviceTargetingInfo\PhoneFirmwareRevision. -

For Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), it returns the BIOS version as defined in the registry key HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BIOSVersion. +For Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), it returns the BIOS version as defined in the registry key HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BIOSVersion. -

Supported operation is Get. +Supported operation is Get. **SwV** -

Required. Returns the Windows 10 OS software version in the format MajorVersion.MinorVersion.BuildNumber.QFEnumber. Currently the BuildNumber returns the build number on the desktop and mobile build number on the phone. In the future, the build numbers may converge. +Required. Returns the Windows 10 OS software version in the format MajorVersion.MinorVersion.BuildNumber.QFEnumber. Currently the BuildNumber returns the build number on the desktop and mobile build number on the phone. In the future, the build numbers may converge. -

Supported operation is Get. +Supported operation is Get. **HwV** -

Required. Returns the hardware version, as defined in the registry key HKEY_LOCAL_MACHINE\System\Platform\DeviceTargetingInfo\PhoneRadioHardwareRevision. +Required. Returns the hardware version, as defined in the registry key HKEY_LOCAL_MACHINE\System\Platform\DeviceTargetingInfo\PhoneRadioHardwareRevision. -

For Windows 10 for desktop editions, it returns the BIOS version as defined in the registry key HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BIOSVersion. +For Windows 10 for desktop editions, it returns the BIOS version as defined in the registry key HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BIOSVersion. -

Supported operation is Get. +Supported operation is Get. **LrgObj** -

Required. Returns whether the device uses OMA DM Large Object Handling, as defined in the specification SyncML Device Information, version 1.1.2. +Required. Returns whether the device uses OMA DM Large Object Handling, as defined in the specification SyncML Device Information, version 1.1.2. -

Supported operation is Get. +Supported operation is Get. **URI/MaxDepth** -

Required. Returns the maximum depth of the management tree that the device supports. The default is zero (0). +Required. Returns the maximum depth of the management tree that the device supports. The default is zero (0). -

Supported operation is Get. +Supported operation is Get. -

This is the maximum number of URI segments that the device supports. The default value zero (0) indicates that the device supports a URI of unlimited depth. +This is the maximum number of URI segments that the device supports. The default value zero (0) indicates that the device supports a URI of unlimited depth. **URI/MaxTotLen** -

Required. Returns the maximum total length of any URI used to address a node or node property. The default is zero (0). +Required. Returns the maximum total length of any URI used to address a node or node property. The default is zero (0). -

Supported operation is Get. +Supported operation is Get. -

This is the largest number of characters in the URI that the device supports. The default value zero (0) indicates that the device supports a URI of unlimited length. +This is the largest number of characters in the URI that the device supports. The default value zero (0) indicates that the device supports a URI of unlimited length. **URI/MaxSegLen** -

Required. Returns the total length of any URI segment in a URI that addresses a node or node property. The default is zero (0). +Required. Returns the total length of any URI segment in a URI that addresses a node or node property. The default is zero (0). -

Supported operation is Get. +Supported operation is Get. -

This is the largest number of characters that the device can support in a single URI segment. The default value zero (0) indicates that the device supports URI segment of unlimited length. +This is the largest number of characters that the device can support in a single URI segment. The default value zero (0) indicates that the device supports URI segment of unlimited length. **Ext/Microsoft/MobileID** -

Required. Returns the mobile device ID associated with the cellular network. Returns 404 for devices that do not have a cellular network support. +Required. Returns the mobile device ID associated with the cellular network. Returns 404 for devices that do not have a cellular network support. -

Supported operation is Get. +Supported operation is Get. -

The IMSI value is returned for GSM and UMTS networks. CDMA and worldwide phones will return a 404 Not Found status code error if queried for this element. +The IMSI value is returned for GSM and UMTS networks. CDMA and worldwide phones will return a 404 Not Found status code error if queried for this element. **Ext/Microsoft/LocalTime** -

Required. Returns the client local time in ISO 8601 format. +Required. Returns the client local time in ISO 8601 format. -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/OSPlatform** -

Required. Returns the OS platform of the device. For Windows 10 for desktop editions, it returns the ProductName as defined in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName. +Required. Returns the OS platform of the device. For Windows 10 for desktop editions, it returns the ProductName as defined in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName. -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/ProcessorType** -

Required. Returns the processor type of the device as documented in SYSTEM_INFO. +Required. Returns the processor type of the device as documented in SYSTEM_INFO. -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/RadioSwV** -

Required. Returns the radio stack software version number. +Required. Returns the radio stack software version number. -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/Resolution** -

Required. Returns the UI screen resolution of the device (example: "480x800"). +Required. Returns the UI screen resolution of the device (example: "480x800"). -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/CommercializationOperator** -

Required. Returns the name of the mobile operator if it exists; otherwise it returns 404.. +Required. Returns the name of the mobile operator if it exists; otherwise it returns 404.. -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/ProcessorArchitecture** -

Required. Returns the processor architecture of the device as "arm" or "x86". +Required. Returns the processor architecture of the device as "arm" or "x86". -

Supported operation is Get. +Supported operation is Get. **Ext/Microsoft/DeviceName** -

Required. Contains the user-specified device name. +Required. Contains the user-specified device name. -

Support for Replace operation for Windows 10 Mobile was added in Windows 10, version 1511. Replace operation is not supported in the desktop or IoT Core. When you change the device name using this node, it triggers a dialog on the device asking the user to reboot. The new device name does not take effect until the device is restarted. If the user cancels the dialog, it will show again until a reboot occurs. +Support for Replace operation for Windows 10 Mobile was added in Windows 10, version 1511. Replace operation is not supported in the desktop or IoT Core. When you change the device name using this node, it triggers a dialog on the device asking the user to reboot. The new device name does not take effect until the device is restarted. If the user cancels the dialog, it will show again until a reboot occurs. -

Value type is string. +Value type is string. -

Supported operations are Get and Replace. +Supported operations are Get and Replace. **Ext/Microsoft/TotalStorage** -

Added in Windows 10, version 1511. Integer that specifies the total available storage in MB from first internal drive on the device (may be less than total physical storage). +Added in Windows 10, version 1511. Integer that specifies the total available storage in MB from first internal drive on the device (may be less than total physical storage). -

Supported operation is Get. +Supported operation is Get. > [!NOTE] > This is only supported in Windows 10 Mobile. **Ext/Microsoft/TotalRAM** -

Added in Windows 10, version 1511. Integer that specifies the total available memory in MB on the device (may be less than total physical memory). +Added in Windows 10, version 1511. Integer that specifies the total available memory in MB on the device (may be less than total physical memory). Supported operation is Get. @@ -152,46 +152,60 @@ Added in Windows 10, version 1809. SMBIOS Serial Number of the device. Value type is string. Supported operation is Get. -**Ext/WLANMACAddress** -

The MAC address of the active WLAN connection, as a 12-digit hexadecimal number. +**Ext/Microsoft/DNSComputerName** +Added in Windows 10, version 1903. This node specifies the DNS computer name for a device. The server must explicitly reboot the device for this value to take effect. A couple of macros can be embedded within the value for dynamic substitution. Using any of these macros will limit the new name to 63 characters. This node replaces the **Domain/ComputerName** node in [Accounts CSP](accounts-csp.md). -

Supported operation is Get. +The following are the available naming macros: +| Macro | Description | Example | Generated Name | +| -------| -------| -------| -------| +| %RAND:<# of digits> | Generates the specified number of random digits. | Test%RAND:6% | Test123456| +| %SERIAL% | Generates the serial number derived from the device. If the serial number causes the new name to exceed the 63 character limit, the serial number will be truncated from the beginning of the sequence.| Test-Device-%SERIAL% | Test-Device-456| + +Value type is string. Supported operations are Get and Replace. + +> [!Note] +> On desktop PCs, this setting specifies the DNS hostname of the computer (Computer Name) up to 63 characters. Use `%RAND:x%` to generate x number of random digits in the name, where x must be a number less than 63. For domain joined computers, the unique name must use `%RAND:x%`. Use `%SERIAL%` to generate the name with the `computer"s` serial number embedded. If the serial number exceeds the character limit, it will be truncated from the beginning of the sequence. The character restriction limit does not count the length of the macros, `%RAND:x%` and `%SERIAL%`. This setting is supported only in Windows 10, version 1803 and later. To change this setting in Windows 10, version 1709 and earlier releases, use the **ComputerName** setting under **Accounts** > **ComputerAccount**. + +**Ext/WLANMACAddress** +The MAC address of the active WLAN connection, as a 12-digit hexadecimal number. + +Supported operation is Get. > [!NOTE] > This is not supported in Windows 10 for desktop editions. **Ext/VoLTEServiceSetting** -

Returns the VoLTE service to on or off. This is only exposed to mobile operator OMA-DM servers. +Returns the VoLTE service to on or off. This is only exposed to mobile operator OMA-DM servers. -

Supported operation is Get. +Supported operation is Get. **Ext/WlanIPv4Address** -

Returns the IPv4 address of the active Wi-Fi connection. This is only exposed to enterprise OMA DM servers. +Returns the IPv4 address of the active Wi-Fi connection. This is only exposed to enterprise OMA DM servers. -

Supported operation is Get. +Supported operation is Get. **Ext/WlanIPv6Address** -

Returns the IPv6 address of the active Wi-Fi connection. This is only exposed to enterprise OMA-DM servers. +Returns the IPv6 address of the active Wi-Fi connection. This is only exposed to enterprise OMA-DM servers. -

Supported operation is Get. +Supported operation is Get. **Ext/WlanDnsSuffix** -

Returns the DNS suffix of the active Wi-Fi connection. This is only exposed to enterprise OMA-DM servers. +Returns the DNS suffix of the active Wi-Fi connection. This is only exposed to enterprise OMA-DM servers. -

Supported operation is Get. +Supported operation is Get. **Ext/WlanSubnetMask** -

Returns the subnet mask for the active Wi-Fi connection. This is only exposed to enterprise OMA-DM servers. +Returns the subnet mask for the active Wi-Fi connection. This is only exposed to enterprise OMA-DM servers. -

Supported operation is Get. +Supported operation is Get. **Ext/DeviceHardwareData** -

Added in Windows 10 version 1703. Returns a base64-encoded string of the hardware parameters of a device. +Added in Windows 10 version 1703. Returns a base64-encoded string of the hardware parameters of a device. > [!NOTE] > This node contains a raw blob used to identify a device in the cloud. It's not meant to be human readable by design and you cannot parse the content to get any meaningful hardware information. -

Supported operation is Get. +Supported operation is Get. ## Related topics diff --git a/windows/client-management/mdm/images/provisioning-csp-devdetail-dm.png b/windows/client-management/mdm/images/provisioning-csp-devdetail-dm.png index 69268012411c9906051beb7e04592798e19d1a41..5e7080550976b5f2e8832d678f8f343ba5850d75 100644 GIT binary patch literal 1560 zcmaKsYd8}M9L6WNu_TIImTTyQj*!i5Zj;F+)=XCB7VEgR2qUeG=_r?SErvWhI!W$Q zlVp|1Wz2oZh9bAI)skAAop0wu&-w8F-{<$dU;dwd8D5?)afGz4&P+~oB{5v~cgp0lbY)tH?ct7 zz2FI13F($y^pqNVe4yd4k$(-u{lVk$wgfKdGFk$IIb#=4zL|HFf4&Bny>piK8&u6_ zmS?=;M9krQLvZaWhLjlic07IbbLDvVjYtanb0}9P+d$w~Y`bb>_d%iEE?ec0wn-EyE zg!`!5I-J%rcb*&Tgugl`O}#k&#x{MSE@|8hM6_ytP{}fa-D3M0CbO*cFT5BN0x5OF z(wyEAqi`5F@HH6L}yKnc~#*y(w*D& zk$Sfs^EhtyTXa=wR<+Qcy8P$?w7JMA+Z*QOTQwo!xchl;Bgfq?dT)c@zWRkHD_hvC zgf#m&YYp3REHl5Qq$vEJO3i`KaVCXUa#UlD^RD#)>uQIGyHxeVq^%MQ@?w_VV7z2rEw` z@(AIUGo4Js8}#3H_mG<>LGZ>+^c#H4z!4R5TSMDst)vAqyA|2nr7YwLJRLRf>{^a( zXu%R*Z61(>fPX zV>3F6S?qd>#YNCNF;RSb?`UerkDQzyFSL44HQIE_qfnw~Z1e;X)^>*mnYj_x?mK^Q z%hN2xLqII3vr3H0o~bX+a(fbkn>yGQq!YLG{>$5R{+XAJ+H*+w;f{jiQOB4u=l*^2&H~8hn3^MW>>W0Rnx8t}x)z8>sH$t9 z@Ws;#|I)r$fYztNh%wKWHR9hD#$z%pkLW+FNX@ab+)wvWW}9E%OecTOoY8{T175V- z>Op{e&KU?L@Y29Nk&-0wvniYov}jZM4{jf!^A;ygT^kbL4x917^WES(m$oVcf@Sjp z{9!*Wg)axJue$j(GFup!S%8=lJ{w<7j>W2s-ww@FCCE3p2KT=LHbluDb?S-(nHIKJw(^Fr zPbL5C|8(5$dCA}vYcTXN45ytxVmU++DzU=O0U zVn*H!*-BxBt~5`UM+3nSpM18q%DCbv?DVdS;g49jjef}XCUZ@H5P4K7WmPEoj0#p)z+4(!*q{C}5< d)-0h=C|#|+Zjl%8UL#77*#S2BamGR=SaH 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 Uf}_