In Windows Phone 8 Silverlight I use
Environment.OSVersion.ToString()
to get Windows Phone version and
DeviceStatus.Device
For 8.1, you can use this project on Github https://github.com/Microsoft/phone-info that includes an example application for retrieving both static and dynamic properties of a Windows Phone device.
For Windows 10, the APIs that were used to gather these data on (8 and 8.1) have changed. I have found one blog post https://www.suchan.cz/2015/08/uwp-quick-tip-getting-device-os-and-app-info/ for someone who has created a helper class that retrieves the following properties from a Windows 10 UWP app
current OS family - phone/desktop/...
current OS build number - 10.0.10240.16413
current OS architecture - x86/x64/ARM
current App Display Name
current App Version - 3.0.2.0
current Device manufacturer - Nokia
current Device model - Lumia 1520
In his post he shows how to get basic data about current device, operating system and application.
give it a try maybe it helps
In Windows Phone 8.1:
Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation().FriendlyName
It worked for me!
This is currently not possible In Windows Runtime 8.1 (Phone and Windows). It does look like it might be planned thanks to Morten Nielsen and Pete Brown
EDIT: This is now possible in Windows 10. See this SO answer as well as this article for more useful features.