Commit cac3ec8fabc3be233138ede5b7d232a32235f8cb
1 parent
0cafa26d
v1.1.0
- Environmentinstall finomítása
Showing
8 changed files
with
87 additions
and
22 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/App.config
@@ -20,11 +20,15 @@ | @@ -20,11 +20,15 @@ | ||
20 | <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> | 20 | <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> |
21 | <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" /> | 21 | <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" /> |
22 | </dependentAssembly> | 22 | </dependentAssembly> |
23 | + <dependentAssembly> | ||
24 | + <assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | ||
25 | + <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> | ||
26 | + </dependentAssembly> | ||
23 | </assemblyBinding> | 27 | </assemblyBinding> |
24 | </runtime> | 28 | </runtime> |
25 | <system.web> | 29 | <system.web> |
26 | - <membership configSource="system.web.membership.config"/> | ||
27 | - <roleManager configSource="system.web.roleManager.config"/> | 30 | + <membership configSource="system.web.membership.config" /> |
31 | + <roleManager configSource="system.web.roleManager.config" /> | ||
28 | </system.web> | 32 | </system.web> |
29 | <entityFramework> | 33 | <entityFramework> |
30 | <providers> | 34 | <providers> |
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - ColorConsole.cs
@@ -100,24 +100,39 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS | @@ -100,24 +100,39 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS | ||
100 | /// <param name="b"></param> | 100 | /// <param name="b"></param> |
101 | /// <param name="bracket"></param> | 101 | /// <param name="bracket"></param> |
102 | /// <param name="prefix"></param> | 102 | /// <param name="prefix"></param> |
103 | + /// <param name="validitylist"></param> | ||
104 | + /// <param name="exitvalue"></param> | ||
103 | /// <returns></returns> | 105 | /// <returns></returns> |
104 | - public static string ReadLine(string text = null, ConsoleColor? f = null, ConsoleColor? b = null, string bracket = null, string prefix = "",string suffix = "") | 106 | + public static string ReadLine(string text = null, ConsoleColor? f = null, ConsoleColor? b = null, string bracket = null, string prefix = "",string suffix = "",List<string> validitylist=null,string exitvalue="EX",string defaultvalue=null) |
105 | { | 107 | { |
106 | - if (silentMode) | 108 | + string input; |
109 | + while (true) | ||
107 | { | 110 | { |
108 | - if (readlineList == null || readlineList.Length == 0) { return null; } | 111 | + string prompt = text; |
112 | + if (silentMode) | ||
113 | + { | ||
114 | + if (readlineList == null || readlineList.Length == 0) { return null; } | ||
115 | + else | ||
116 | + { | ||
117 | + var nextreadline = readlineList[0]; | ||
118 | + readlineList = readlineList.Skip(1).ToArray(); | ||
119 | + return nextreadline; | ||
120 | + } | ||
121 | + } | ||
109 | else | 122 | else |
110 | { | 123 | { |
111 | - var nextreadline = readlineList[0]; | ||
112 | - readlineList = readlineList.Skip(1).ToArray(); | ||
113 | - return nextreadline; | 124 | + if (validitylist != null && validitylist.Any()) { prompt += $" Valid values are {'\''+string.Join("','", validitylist)+'\''}."; } |
125 | + if (defaultvalue != null) { prompt += $" Default value is '{defaultvalue}'."; } | ||
126 | + if (exitvalue != null) { prompt += $" Enter EX to exit."; } | ||
127 | + | ||
128 | + Write(prompt, f, b, bracket, prefix, suffix); | ||
129 | + input = Console.ReadLine(); | ||
130 | + if (defaultvalue!=null && (input == null || input == "")) { input = defaultvalue; } | ||
131 | + if (exitvalue != null && input!=null && input.ToLower() == exitvalue || validitylist ==null || !validitylist.Any() || validitylist.Contains(input)) { break; } | ||
132 | + WriteLine($"Erroneous value!",ConsoleColor.Red); | ||
114 | } | 133 | } |
115 | } | 134 | } |
116 | - else | ||
117 | - { | ||
118 | - Write(text, f, b, bracket, prefix,suffix); | ||
119 | - return Console.ReadLine(); | ||
120 | - } | 135 | + return input; |
121 | } | 136 | } |
122 | 137 | ||
123 | /// <summary> | 138 | /// <summary> |
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs
@@ -17,6 +17,7 @@ using Vrh.XmlProcessing; | @@ -17,6 +17,7 @@ using Vrh.XmlProcessing; | ||
17 | using System.Xml.Linq; | 17 | using System.Xml.Linq; |
18 | using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; | 18 | using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; |
19 | using VRH.Common; | 19 | using VRH.Common; |
20 | +using Microsoft.Win32; | ||
20 | 21 | ||
21 | namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS | 22 | namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS |
22 | { | 23 | { |
@@ -209,5 +210,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS | @@ -209,5 +210,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS | ||
209 | Process.Start(startinfo); | 210 | Process.Start(startinfo); |
210 | } | 211 | } |
211 | public enum ShutDownMode { Sleep, Hibernation,Lock,Logoff,Restart,ShutDown,} | 212 | public enum ShutDownMode { Sleep, Hibernation,Lock,Logoff,Restart,ShutDown,} |
213 | + public static string HKLM_GetString(string path, string key) | ||
214 | + { | ||
215 | + try | ||
216 | + { | ||
217 | + RegistryKey rk = Registry.LocalMachine.OpenSubKey(path); | ||
218 | + if (rk == null) return ""; | ||
219 | + return (string)rk.GetValue(key); | ||
220 | + } | ||
221 | + catch { return ""; } | ||
222 | + } | ||
223 | + | ||
224 | + public static string OSFriendlyName() | ||
225 | + { | ||
226 | + string ProductName = HKLM_GetString(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName"); | ||
227 | + string CSDVersion = HKLM_GetString(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CSDVersion"); | ||
228 | + if (ProductName != "") | ||
229 | + { | ||
230 | + return (ProductName.StartsWith("Microsoft") ? "" : "Microsoft ") + ProductName + | ||
231 | + (CSDVersion != "" ? " " + CSDVersion : ""); | ||
232 | + } | ||
233 | + return ""; | ||
234 | + } | ||
212 | } | 235 | } |
213 | } | 236 | } |
Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs
@@ -9,7 +9,6 @@ using System.Threading; | @@ -9,7 +9,6 @@ using System.Threading; | ||
9 | using System.Threading.Tasks; | 9 | using System.Threading.Tasks; |
10 | 10 | ||
11 | using Microsoft.Web.Administration; | 11 | using Microsoft.Web.Administration; |
12 | -using System.Management; | ||
13 | using System.Diagnostics; | 12 | using System.Diagnostics; |
14 | 13 | ||
15 | using Vrh.Log4Pro.MaintenanceConsole.MenuNS; | 14 | using Vrh.Log4Pro.MaintenanceConsole.MenuNS; |
@@ -22,6 +21,7 @@ using Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS; | @@ -22,6 +21,7 @@ using Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS; | ||
22 | using Vrh.XmlProcessing; | 21 | using Vrh.XmlProcessing; |
23 | using System.Xml.Linq; | 22 | using System.Xml.Linq; |
24 | using System.Text.RegularExpressions; | 23 | using System.Text.RegularExpressions; |
24 | +using System.Collections.ObjectModel; | ||
25 | 25 | ||
26 | namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | 26 | namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS |
27 | { | 27 | { |
@@ -58,12 +58,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | @@ -58,12 +58,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | ||
58 | var config = (parameter as Menu.ExecutorParameter).GetConfig<InstallManagerXmlParser>(); | 58 | var config = (parameter as Menu.ExecutorParameter).GetConfig<InstallManagerXmlParser>(); |
59 | InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp; | 59 | InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp; |
60 | InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os; | 60 | InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os; |
61 | - string answer; | ||
62 | - foreach (var wfg in config.WindowsFeatureGroups) | 61 | + |
62 | + string osfrn = Tools.OSFriendlyName(); | ||
63 | + var defaultvalue = | ||
64 | + osfrn.StartsWith("Microsoft Windows 10") ? InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016.ToString() | ||
65 | + : osfrn.StartsWith("Microsoft Windows Server 2016") ? InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016.ToString() | ||
66 | + : osfrn.StartsWith("Microsoft Windows Server 2012") ? InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016.ToString() | ||
67 | + : null; | ||
68 | + var oslist = Enum.GetNames(typeof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values)).ToList(); | ||
69 | + string answer = ColorConsole.ReadLine($"Enter os code (friendly name is: '{osfrn}')!", ConsoleColor.Green, validitylist: oslist, defaultvalue: defaultvalue.ToString()); | ||
70 | + | ||
71 | + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values? selectedos = null; | ||
72 | + selectedos = (InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values)Enum | ||
73 | + .Parse(typeof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values), answer); | ||
74 | + foreach (var wfg in config.WindowsFeatureGroups.Where(x=>selectedos==null || x.OS== selectedos)) | ||
63 | { | 75 | { |
64 | grp = wfg.Group; | 76 | grp = wfg.Group; |
65 | os = wfg.OS; | 77 | os = wfg.OS; |
66 | - answer = ColorConsole.ReadLine($"Do You want to configure feature group '{grp}' for os '{os}'?(Y/N)", ConsoleColor.Yellow); | 78 | + answer = ColorConsole.ReadLine($"Do You want to configure feature group '{grp}' for os '{os}'?(Y/N)", ConsoleColor.Green); |
67 | if (answer.ToUpper() == "Y") { EnableWindowsFeatures(grp, os, config); } | 79 | if (answer.ToUpper() == "Y") { EnableWindowsFeatures(grp, os, config); } |
68 | }; | 80 | }; |
69 | return o; | 81 | return o; |
@@ -71,7 +83,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | @@ -71,7 +83,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | ||
71 | private static void EnableWindowsFeatures(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp | 83 | private static void EnableWindowsFeatures(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp |
72 | , InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser environmentinstallconfig) | 84 | , InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser environmentinstallconfig) |
73 | { | 85 | { |
74 | - ColorConsole.WriteLine($"Enableing {grp} features for os {os}...",ConsoleColor.Yellow); | 86 | + ColorConsole.WriteLine($"Enableing {grp} features for os {os}...",ConsoleColor.Green); |
75 | foreach (var fn in environmentinstallconfig.GetFeatureList(os,grp)) | 87 | foreach (var fn in environmentinstallconfig.GetFeatureList(os,grp)) |
76 | { | 88 | { |
77 | if (string.IsNullOrWhiteSpace(fn) || fn.StartsWith("#")) { continue; } | 89 | if (string.IsNullOrWhiteSpace(fn) || fn.StartsWith("#")) { continue; } |
@@ -80,7 +92,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | @@ -80,7 +92,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS | ||
80 | switch (os) | 92 | switch (os) |
81 | { | 93 | { |
82 | case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016: | 94 | case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016: |
83 | - response = Tools.ExecuteAndGetStdIo("Install-WindowsFeature", $"-Name {fn} -IncludeAllSubFeature -IncludeManagementTools"); | 95 | + |
96 | + //var cmd = "Powershell -Command {Import-Module ServerManager ; Install-WindowsFeature XXXX}"; | ||
97 | + response = Tools.ExecuteAndGetStdIo("Powershell", $"-Command {{Import - Module ServerManager ; Install-WindowsFeature -Name {fn} -IncludeAllSubFeature -IncludeManagementTools}}"); | ||
98 | + //response = Tools.ExecuteAndGetStdIo("Install-WindowsFeature", $"-Name {fn} -IncludeAllSubFeature -IncludeManagementTools"); | ||
84 | break; | 99 | break; |
85 | case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.W7: | 100 | case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.W7: |
86 | response = Tools.ExecuteAndGetStdIo("dism", $"/online /Enable-Feature /FeatureName:{fn}"); | 101 | response = Tools.ExecuteAndGetStdIo("dism", $"/online /Enable-Feature /FeatureName:{fn}"); |
Vrh.Log4Pro.MaintenanceConsole/Program.cs
@@ -134,9 +134,12 @@ namespace Vrh.Log4Pro.MaintenanceConsole | @@ -134,9 +134,12 @@ namespace Vrh.Log4Pro.MaintenanceConsole | ||
134 | ColorConsole.Write(System.Environment.OSVersion.ServicePack, ConsoleColor.Yellow, bracket: "[]", prefix: "Service pack:", suffix: ","); | 134 | ColorConsole.Write(System.Environment.OSVersion.ServicePack, ConsoleColor.Yellow, bracket: "[]", prefix: "Service pack:", suffix: ","); |
135 | ColorConsole.Write(System.Environment.OSVersion.VersionString, ConsoleColor.Yellow, bracket: "[]", prefix: "Version string:"); | 135 | ColorConsole.Write(System.Environment.OSVersion.VersionString, ConsoleColor.Yellow, bracket: "[]", prefix: "Version string:"); |
136 | ColorConsole.WriteLine(""); | 136 | ColorConsole.WriteLine(""); |
137 | + ColorConsole.Write(Tools.OSFriendlyName(), ConsoleColor.Yellow, bracket: "[]", prefix: " Friendly name:"); | ||
138 | + ColorConsole.WriteLine(""); | ||
137 | ColorConsole.WriteLine(""); | 139 | ColorConsole.WriteLine(""); |
138 | } | 140 | } |
139 | } | 141 | } |
142 | + | ||
140 | #region MaintenanceConsoleXmlProcessor class | 143 | #region MaintenanceConsoleXmlProcessor class |
141 | public class MaintenanceConsoleXmlProcessor : XmlParser | 144 | public class MaintenanceConsoleXmlProcessor : XmlParser |
142 | { | 145 | { |
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; | ||
32 | // You can specify all the values or you can default the Build and Revision Numbers | 32 | // You can specify all the values or you can default the Build and Revision Numbers |
33 | // by using the '*' as shown below: | 33 | // by using the '*' as shown below: |
34 | // [assembly: AssemblyVersion("1.0.*")] | 34 | // [assembly: AssemblyVersion("1.0.*")] |
35 | -[assembly: AssemblyVersion("1.0.1.0")] | ||
36 | -[assembly: AssemblyFileVersion("1.0.1.0")] | 35 | +[assembly: AssemblyVersion("1.1.0.0")] |
36 | +[assembly: AssemblyFileVersion("1.1.0.0")] |
Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj
@@ -215,6 +215,11 @@ | @@ -215,6 +215,11 @@ | ||
215 | <Reference Include="System.IO.FileSystem.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | 215 | <Reference Include="System.IO.FileSystem.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
216 | <HintPath>..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath> | 216 | <HintPath>..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath> |
217 | </Reference> | 217 | </Reference> |
218 | + <Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | ||
219 | + <HintPath>..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath> | ||
220 | + <Private>True</Private> | ||
221 | + <Private>True</Private> | ||
222 | + </Reference> | ||
218 | <Reference Include="System.Management" /> | 223 | <Reference Include="System.Management" /> |
219 | <Reference Include="System.Messaging" /> | 224 | <Reference Include="System.Messaging" /> |
220 | <Reference Include="System.Net.Http, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | 225 | <Reference Include="System.Net.Http, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
Vrh.Log4Pro.MaintenanceConsole/packages.config
@@ -39,7 +39,7 @@ | @@ -39,7 +39,7 @@ | ||
39 | <package id="System.IO.FileSystem" version="4.0.1" targetFramework="net462" /> | 39 | <package id="System.IO.FileSystem" version="4.0.1" targetFramework="net462" /> |
40 | <package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net462" /> | 40 | <package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net462" /> |
41 | <package id="System.Linq" version="4.1.0" targetFramework="net462" requireReinstallation="true" /> | 41 | <package id="System.Linq" version="4.1.0" targetFramework="net462" requireReinstallation="true" /> |
42 | - <package id="System.Linq.Expressions" version="4.1.0" targetFramework="net462" requireReinstallation="true" /> | 42 | + <package id="System.Linq.Expressions" version="4.3.0" targetFramework="net472" /> |
43 | <package id="System.Management" version="5.0.0" targetFramework="net462" /> | 43 | <package id="System.Management" version="5.0.0" targetFramework="net462" /> |
44 | <package id="System.Net.Http" version="4.1.0" targetFramework="net462" /> | 44 | <package id="System.Net.Http" version="4.1.0" targetFramework="net462" /> |
45 | <package id="System.Net.Primitives" version="4.0.11" targetFramework="net462" /> | 45 | <package id="System.Net.Primitives" version="4.0.11" targetFramework="net462" /> |