diff --git a/WinVerEx/App.config b/WinVerEx/App.config
new file mode 100644
index 0000000..2d2a12d
--- /dev/null
+++ b/WinVerEx/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/WinVerEx/AssemblyInfo.cs b/WinVerEx/AssemblyInfo.cs
new file mode 100644
index 0000000..25a7507
--- /dev/null
+++ b/WinVerEx/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WinVerEx")]
+[assembly: AssemblyDescription("Command prompt utility that returns a fully qualified version of Windows 10")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("RandyRants LLC")]
+[assembly: AssemblyProduct("WinVerEx")]
+[assembly: AssemblyCopyright("Copyright © 2019 RandyRants.com")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b3ef68e0-4675-49a2-ac34-2705a43a9fdb")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/WinVerEx/Program.cs b/WinVerEx/Program.cs
new file mode 100644
index 0000000..4e9124a
--- /dev/null
+++ b/WinVerEx/Program.cs
@@ -0,0 +1,34 @@
+using System;
+using Microsoft.Win32;
+
+namespace WinVerEx
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ // All of the data we're looking for lives under the same Registry Key
+ RegistryKey currentVersion = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion");
+
+ // Grab the core of the version number but since minor version is always 1 here, pick up the real minor version from the UBR value
+ String buildLabEx = currentVersion.GetValue("BuildLabEx").ToString();
+ Console.WriteLine("Current version: " + buildLabEx.Replace(".1.", String.Format(".{0}.", currentVersion.GetValue("UBR").ToString())));
+
+ // Grab the product name, as this includes "SKU" information
+ Console.WriteLine("Product name: " + currentVersion.GetValue("ProductName"));
+
+ // This is a deeper dive on what "SKU" you're running
+ Console.WriteLine("Edition ID: " + currentVersion.GetValue("EditionID"));
+
+ // Grab the installation type as well
+ Console.WriteLine("Installation type: " + currentVersion.GetValue("InstallationType"));
+ currentVersion.Close();
+
+ if (args.Length > 0)
+ {
+ Console.WriteLine();
+ Console.WriteLine("Visit http://www.github.com/randyrants/winverex for more information or source code.");
+ }
+ }
+ }
+}
diff --git a/WinVerEx/WinVerEx.csproj b/WinVerEx/WinVerEx.csproj
new file mode 100644
index 0000000..02ff28b
--- /dev/null
+++ b/WinVerEx/WinVerEx.csproj
@@ -0,0 +1,60 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {DF277383-1A1F-4783-9A78-D70833CFDDF4}
+ Exe
+ Properties
+ WinVerEx
+ WinVerEx
+ v4.6
+ 512
+ true
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ false
+ false
+
+
+ WinVerEx.Program
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WinVerEx/WinVerEx.sln b/WinVerEx/WinVerEx.sln
new file mode 100644
index 0000000..f3836d7
--- /dev/null
+++ b/WinVerEx/WinVerEx.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28803.202
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinVerEx", "WinVerEx.csproj", "{DF277383-1A1F-4783-9A78-D70833CFDDF4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DF277383-1A1F-4783-9A78-D70833CFDDF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DF277383-1A1F-4783-9A78-D70833CFDDF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DF277383-1A1F-4783-9A78-D70833CFDDF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DF277383-1A1F-4783-9A78-D70833CFDDF4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F9E77DEC-307B-4217-B5DE-DE5BE1356C22}
+ EndGlobalSection
+EndGlobal