Encrypted all

Admin version with Encrypt/Decrypt buttons
This commit is contained in:
AnD
2026-02-27 15:30:54 -07:00
parent 2e8bd6b90f
commit dc577a228d
20 changed files with 1322 additions and 705 deletions

View File

@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.2" newVersion="10.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@@ -25,6 +22,10 @@
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.2" newVersion="10.0.0.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -41,16 +41,16 @@
this.label5 = new System.Windows.Forms.Label();
this.textBoxTftpIP = new System.Windows.Forms.TextBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.checkBox_Local = new System.Windows.Forms.CheckBox();
this.label3 = new System.Windows.Forms.Label();
this.textBoxIDRACPassword = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.textBoxIDRACUsername = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.textBoxIDRACIP = new System.Windows.Forms.TextBox();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.buttonTasklistDec = new System.Windows.Forms.Button();
this.buttonTasklistEnc = new System.Windows.Forms.Button();
this.buttonEncryptTaskList = new System.Windows.Forms.Button();
this.checkBox_Encryption = new System.Windows.Forms.CheckBox();
this.openFileDialogTasklist = new System.Windows.Forms.OpenFileDialog();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
this.SuspendLayout();
//
// labelIP
@@ -61,7 +61,6 @@
this.labelIP.Size = new System.Drawing.Size(17, 13);
this.labelIP.TabIndex = 0;
this.labelIP.Text = "IP";
this.labelIP.Click += new System.EventHandler(this.label1_Click);
//
// textBoxSftpIP
//
@@ -69,7 +68,6 @@
this.textBoxSftpIP.Name = "textBoxSftpIP";
this.textBoxSftpIP.Size = new System.Drawing.Size(214, 20);
this.textBoxSftpIP.TabIndex = 1;
this.textBoxSftpIP.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
//
// groupBox1
//
@@ -85,7 +83,6 @@
this.groupBox1.TabIndex = 3;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Sftp";
this.groupBox1.Enter += new System.EventHandler(this.groupBox1_Enter);
//
// label2
//
@@ -95,7 +92,6 @@
this.label2.Size = new System.Drawing.Size(53, 13);
this.label2.TabIndex = 4;
this.label2.Text = "Password";
this.label2.Click += new System.EventHandler(this.label2_Click);
//
// textBoxSftpPassword
//
@@ -159,85 +155,79 @@
//
// groupBox3
//
this.groupBox3.Controls.Add(this.checkBox_Local);
this.groupBox3.Controls.Add(this.label3);
this.groupBox3.Controls.Add(this.textBoxIDRACPassword);
this.groupBox3.Controls.Add(this.label4);
this.groupBox3.Controls.Add(this.textBoxIDRACUsername);
this.groupBox3.Controls.Add(this.label6);
this.groupBox3.Controls.Add(this.textBoxIDRACIP);
this.groupBox3.Controls.Add(this.groupBox4);
this.groupBox3.Controls.Add(this.buttonEncryptTaskList);
this.groupBox3.Controls.Add(this.checkBox_Encryption);
this.groupBox3.Location = new System.Drawing.Point(307, 12);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(278, 152);
this.groupBox3.Size = new System.Drawing.Size(240, 177);
this.groupBox3.TabIndex = 6;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "IDRAC";
this.groupBox3.Text = "Encryption";
//
// checkBox_Local
// groupBox4
//
this.checkBox_Local.AutoSize = true;
this.checkBox_Local.Location = new System.Drawing.Point(23, 19);
this.checkBox_Local.Name = "checkBox_Local";
this.checkBox_Local.Size = new System.Drawing.Size(52, 17);
this.checkBox_Local.TabIndex = 6;
this.checkBox_Local.Text = "Local";
this.checkBox_Local.UseVisualStyleBackColor = true;
this.checkBox_Local.CheckedChanged += new System.EventHandler(this.checkBox_Local_CheckedChanged);
this.groupBox4.Controls.Add(this.buttonTasklistDec);
this.groupBox4.Controls.Add(this.buttonTasklistEnc);
this.groupBox4.Location = new System.Drawing.Point(8, 42);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(220, 62);
this.groupBox4.TabIndex = 8;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Tasklist, Profile, Powershell Script File";
//
// label3
// buttonTasklistDec
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(20, 105);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(53, 13);
this.label3.TabIndex = 4;
this.label3.Text = "Password";
this.buttonTasklistDec.Location = new System.Drawing.Point(123, 19);
this.buttonTasklistDec.Name = "buttonTasklistDec";
this.buttonTasklistDec.Size = new System.Drawing.Size(86, 37);
this.buttonTasklistDec.TabIndex = 8;
this.buttonTasklistDec.Text = "Decrypt";
this.buttonTasklistDec.UseVisualStyleBackColor = true;
this.buttonTasklistDec.Click += new System.EventHandler(this.buttonTasklistDec_Click);
//
// textBoxIDRACPassword
// buttonTasklistEnc
//
this.textBoxIDRACPassword.Location = new System.Drawing.Point(83, 102);
this.textBoxIDRACPassword.Name = "textBoxIDRACPassword";
this.textBoxIDRACPassword.Size = new System.Drawing.Size(186, 20);
this.textBoxIDRACPassword.TabIndex = 5;
this.textBoxIDRACPassword.UseSystemPasswordChar = true;
this.buttonTasklistEnc.Location = new System.Drawing.Point(11, 19);
this.buttonTasklistEnc.Name = "buttonTasklistEnc";
this.buttonTasklistEnc.Size = new System.Drawing.Size(86, 37);
this.buttonTasklistEnc.TabIndex = 7;
this.buttonTasklistEnc.Text = "Encrypt";
this.buttonTasklistEnc.UseVisualStyleBackColor = true;
this.buttonTasklistEnc.Click += new System.EventHandler(this.buttonTasklistEnc_Click);
//
// label4
// buttonEncryptTaskList
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(20, 79);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(57, 13);
this.label4.TabIndex = 2;
this.label4.Text = "UserName";
this.buttonEncryptTaskList.Location = new System.Drawing.Point(23, 43);
this.buttonEncryptTaskList.Name = "buttonEncryptTaskList";
this.buttonEncryptTaskList.Size = new System.Drawing.Size(75, 23);
this.buttonEncryptTaskList.TabIndex = 7;
this.buttonEncryptTaskList.Text = "Encrypt";
this.buttonEncryptTaskList.UseVisualStyleBackColor = true;
//
// textBoxIDRACUsername
// checkBox_Encryption
//
this.textBoxIDRACUsername.Location = new System.Drawing.Point(83, 76);
this.textBoxIDRACUsername.Name = "textBoxIDRACUsername";
this.textBoxIDRACUsername.Size = new System.Drawing.Size(186, 20);
this.textBoxIDRACUsername.TabIndex = 3;
this.checkBox_Encryption.AutoSize = true;
this.checkBox_Encryption.Location = new System.Drawing.Point(23, 19);
this.checkBox_Encryption.Name = "checkBox_Encryption";
this.checkBox_Encryption.Size = new System.Drawing.Size(59, 17);
this.checkBox_Encryption.TabIndex = 6;
this.checkBox_Encryption.Text = "Enable";
this.checkBox_Encryption.UseVisualStyleBackColor = true;
this.checkBox_Encryption.CheckedChanged += new System.EventHandler(this.checkBox_Local_CheckedChanged);
//
// label6
// openFileDialogTasklist
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(56, 53);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(17, 13);
this.label6.TabIndex = 0;
this.label6.Text = "IP";
//
// textBoxIDRACIP
//
this.textBoxIDRACIP.Location = new System.Drawing.Point(83, 50);
this.textBoxIDRACIP.Name = "textBoxIDRACIP";
this.textBoxIDRACIP.Size = new System.Drawing.Size(186, 20);
this.textBoxIDRACIP.TabIndex = 1;
this.openFileDialogTasklist.DefaultExt = "json";
this.openFileDialogTasklist.FileName = "tasklisk.json";
this.openFileDialogTasklist.Filter = "json file|*.json|Powershell scrips|*.ps1";
this.openFileDialogTasklist.Title = "Task list file";
//
// FormConfiguration
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(586, 228);
this.ClientSize = new System.Drawing.Size(552, 228);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.buttonOK);
@@ -252,6 +242,7 @@
this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -270,12 +261,11 @@
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox textBoxTftpIP;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox textBoxIDRACPassword;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBoxIDRACUsername;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox textBoxIDRACIP;
private System.Windows.Forms.CheckBox checkBox_Local;
private System.Windows.Forms.CheckBox checkBox_Encryption;
private System.Windows.Forms.Button buttonEncryptTaskList;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Button buttonTasklistDec;
private System.Windows.Forms.Button buttonTasklistEnc;
private System.Windows.Forms.OpenFileDialog openFileDialogTasklist;
}
}

View File

@@ -1,12 +1,16 @@
using System;
using log4net;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
namespace SSH_Test
{
@@ -16,53 +20,36 @@ namespace SSH_Test
public string Sftp_IP { get; set; }
public string Sftp_Username { get; set; }
public string Sftp_Password { get; set; }
public string IDRAC_IP { get; set; }
public string IDRAC_Username { get; set; }
public string IDRAC_Password { get; set; }
public bool IDRAC_Local { get; set; }
public bool bEncryption { get; set; }
public string sTasklistPath { get; set; }
public string sProfilePath { get; set; }
public Aes aes { get; set; }
public FormConfiguration(string tftp_IP, string sftpIP, string sftp_Username, string sftp_Password)
public static ILog log;
public FormConfiguration(string tftp_IP, string sftpIP, string sftp_Username, string sftp_Password, bool bencryption
, Aes aaes, ILog Log)
{
InitializeComponent();
this.textBoxTftpIP.Text = Tftp_IP = tftp_IP;
this.textBoxSftpIP.Text = Sftp_IP = sftpIP;
this.textBoxSftpUsername.Text = Sftp_Username = sftp_Username;
this.textBoxSftpPassword.Text = Sftp_Password = sftp_Password;
checkBox_Encryption.Checked = bEncryption = bencryption;
aes = aaes;
log = Log;
this.Update();
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void buttonOK_Click(object sender, EventArgs e)
{
Tftp_IP = textBoxTftpIP.Text;
Sftp_IP = textBoxSftpIP.Text;
Sftp_Username = textBoxSftpUsername.Text;
Sftp_Password = textBoxSftpPassword.Text;
IDRAC_IP = textBoxIDRACIP.Text;
IDRAC_Username= textBoxIDRACUsername.Text;
IDRAC_Password= textBoxIDRACPassword.Text;
IDRAC_Local=checkBox_Local.Checked;
bEncryption = checkBox_Encryption.Checked;
this.Close();
}
@@ -73,17 +60,81 @@ namespace SSH_Test
private void checkBox_Local_CheckedChanged(object sender, EventArgs e)
{
if (checkBox_Local.Checked)
if (checkBox_Encryption.Checked)
{
checkBox_Local.Checked = true;
IDRAC_Local = checkBox_Local.Checked;
checkBox_Encryption.Checked = true;
bEncryption = checkBox_Encryption.Checked;
}
else
{
checkBox_Local.Checked = false;
IDRAC_Local = checkBox_Local.Checked;
checkBox_Encryption.Checked = false;
bEncryption = checkBox_Encryption.Checked;
}
}
private void buttonTasklistEnc_Click(object sender, EventArgs e)
{
Utilities utilities = new Utilities(log);
if (openFileDialogTasklist.ShowDialog() == DialogResult.OK)
{
string Jsonfilename = openFileDialogTasklist.FileName;
string buttonTasklistPath = openFileDialogTasklist.SafeFileName;
if (File.Exists(Jsonfilename))
{
try
{
//read tasklist data from file
string sData = File.ReadAllText(Jsonfilename);
log.Info(string.Format("Read {0} to String", Jsonfilename));
//encrypt data
byte[] bData = Utilities.EncryptStringAES(sData, aes.Key);
//write encrypted data to file
File.WriteAllBytes(Jsonfilename, bData);
}
catch (Exception ex)
{
//could not read tasklist.json properly
log.Error(string.Format("Could not load {0} for encrypting", Jsonfilename));
log.Error(ex);
}
}
}
}
private void buttonTasklistDec_Click(object sender, EventArgs e)
{
Utilities utilities = new Utilities(log);
if (openFileDialogTasklist.ShowDialog() == DialogResult.OK)
{
string JsonFileName = openFileDialogTasklist.FileName;
string buttonTasklistPath = openFileDialogTasklist.SafeFileName;
if (File.Exists(JsonFileName))
{
try
{
//read json data from file
byte[] bData = File.ReadAllBytes(JsonFileName);
//decrypt data and save to file
File.WriteAllText(JsonFileName, Utilities.DecryptStringFromBytes(bData, aes.Key));
}
catch (Exception ex)
{
//could not read tasklist.json properly
log.Error(string.Format("Could not load {0} for encrypting", JsonFileName));
log.Error(ex);
}
}
}
}
}
}

View File

@@ -117,6 +117,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="openFileDialogTasklist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@@ -7,7 +7,7 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using TextBox = System.Windows.Forms.TextBox;

View File

@@ -4,8 +4,7 @@ using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using System.Web.Profile;
using System.Web.UI.WebControls;
using System.Xml.Linq;
namespace SSH_Test

View File

@@ -15,6 +15,7 @@
<IsWebBootstrapper>false</IsWebBootstrapper>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
<PublishUrl>D:\Shared\VS\Publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@@ -88,8 +89,8 @@
<Reference Include="log4net, Version=3.2.0.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>packages\log4net.3.2.0\lib\net462\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Bcl.AsyncInterfaces.10.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=10.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Bcl.AsyncInterfaces.10.0.2\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.2, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.2\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
@@ -109,8 +110,11 @@
<Reference Include="System.Formats.Asn1, Version=8.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Formats.Asn1.8.0.2\lib\net462\System.Formats.Asn1.dll</HintPath>
</Reference>
<Reference Include="System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.IO.Pipelines.10.0.0\lib\net462\System.IO.Pipelines.dll</HintPath>
<Reference Include="System.IO.Pipelines, Version=10.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.IO.Pipelines.10.0.2\lib\net462\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.PowerShell.5.1.ReferenceAssemblies.1.0.0\lib\net461\System.Management.Automation.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
@@ -131,14 +135,12 @@
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
@@ -193,12 +195,13 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="log4net.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
<None Include="profile.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Properties\app.manifest" />
<None Include="Properties\DataSources\Profile.datasource" />
@@ -216,9 +219,6 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
@@ -238,11 +238,11 @@
<Content Include="main256.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets" Condition="Exists('packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets'))" />
</Target>
<Import Project="packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets" Condition="Exists('packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" />
</Project>

65
TastList.Designer.cs generated
View File

@@ -54,6 +54,11 @@
this.buttonSave = new System.Windows.Forms.Button();
this.bRun = new System.Windows.Forms.Button();
this.checkBoxArrangeTask = new System.Windows.Forms.CheckBox();
this.openFileDialogTasklist = new System.Windows.Forms.OpenFileDialog();
this.buttonTasklistPath = new System.Windows.Forms.Button();
this.toolTipbuttonTasklist = new System.Windows.Forms.ToolTip(this.components);
this.toolTipGeneralConf = new System.Windows.Forms.ToolTip(this.components);
this.buttonAESString = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGridViewTask)).BeginInit();
this.contextMenuStripRow.SuspendLayout();
this.groupBox1.SuspendLayout();
@@ -62,7 +67,7 @@
//
// buttonConf
//
this.buttonConf.Location = new System.Drawing.Point(419, 12);
this.buttonConf.Location = new System.Drawing.Point(725, 12);
this.buttonConf.Name = "buttonConf";
this.buttonConf.Size = new System.Drawing.Size(96, 50);
this.buttonConf.TabIndex = 6;
@@ -96,6 +101,7 @@
this.Run,
this.Configuration,
this.Profile});
this.dataGridViewTask.ContextMenuStrip = this.contextMenuStripRow;
this.dataGridViewTask.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridViewTask.Location = new System.Drawing.Point(3, 16);
this.dataGridViewTask.Name = "dataGridViewTask";
@@ -118,6 +124,7 @@
this.TaskNum.Name = "TaskNum";
this.TaskNum.ReadOnly = true;
this.TaskNum.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.TaskNum.ToolTipText = "sfasfsfsfsaf";
this.TaskNum.Width = 50;
//
// contextMenuStripRow
@@ -130,6 +137,8 @@
//
// MoveToolStripMenuItem
//
this.MoveToolStripMenuItem.AutoToolTip = true;
this.MoveToolStripMenuItem.CheckOnClick = true;
this.MoveToolStripMenuItem.Image = global::SSH_Test.Properties.Resources.Arrange16;
this.MoveToolStripMenuItem.Name = "MoveToolStripMenuItem";
this.MoveToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
@@ -280,11 +289,11 @@
//
this.buttonLoad.Image = global::SSH_Test.Properties.Resources.Load24b;
this.buttonLoad.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonLoad.Location = new System.Drawing.Point(12, 9);
this.buttonLoad.Location = new System.Drawing.Point(6, 35);
this.buttonLoad.Name = "buttonLoad";
this.buttonLoad.Size = new System.Drawing.Size(80, 50);
this.buttonLoad.Size = new System.Drawing.Size(80, 30);
this.buttonLoad.TabIndex = 1;
this.buttonLoad.Text = "Load Tasklist";
this.buttonLoad.Text = "ReLoad";
this.buttonLoad.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonLoad.UseMnemonic = false;
this.buttonLoad.UseVisualStyleBackColor = true;
@@ -294,11 +303,11 @@
//
this.buttonSave.Image = global::SSH_Test.Properties.Resources.Save24b;
this.buttonSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonSave.Location = new System.Drawing.Point(97, 9);
this.buttonSave.Location = new System.Drawing.Point(91, 35);
this.buttonSave.Name = "buttonSave";
this.buttonSave.Size = new System.Drawing.Size(80, 50);
this.buttonSave.Size = new System.Drawing.Size(80, 30);
this.buttonSave.TabIndex = 2;
this.buttonSave.Text = "Save TaskList";
this.buttonSave.Text = "Save";
this.buttonSave.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonSave.UseVisualStyleBackColor = true;
this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click);
@@ -320,7 +329,7 @@
//
this.checkBoxArrangeTask.AutoSize = true;
this.checkBoxArrangeTask.Image = global::SSH_Test.Properties.Resources.Arrange24;
this.checkBoxArrangeTask.Location = new System.Drawing.Point(183, 12);
this.checkBoxArrangeTask.Location = new System.Drawing.Point(182, 38);
this.checkBoxArrangeTask.Name = "checkBoxArrangeTask";
this.checkBoxArrangeTask.Size = new System.Drawing.Size(119, 24);
this.checkBoxArrangeTask.TabIndex = 9;
@@ -329,11 +338,45 @@
this.checkBoxArrangeTask.UseVisualStyleBackColor = true;
this.checkBoxArrangeTask.CheckedChanged += new System.EventHandler(this.checkBoxArrangeTask_CheckedChanged);
//
// openFileDialogTasklist
//
this.openFileDialogTasklist.DefaultExt = "json";
this.openFileDialogTasklist.FileName = "tasklisk.json";
this.openFileDialogTasklist.Filter = "json file (*.json)|*.json";
this.openFileDialogTasklist.Title = "Task list file";
//
// buttonTasklistPath
//
this.buttonTasklistPath.AccessibleDescription = "Choose Task list file";
this.buttonTasklistPath.Location = new System.Drawing.Point(6, 2);
this.buttonTasklistPath.Margin = new System.Windows.Forms.Padding(1);
this.buttonTasklistPath.Name = "buttonTasklistPath";
this.buttonTasklistPath.Size = new System.Drawing.Size(165, 30);
this.buttonTasklistPath.TabIndex = 10;
this.buttonTasklistPath.Text = "tasklist.json";
this.buttonTasklistPath.UseVisualStyleBackColor = true;
this.buttonTasklistPath.Click += new System.EventHandler(this.buttonTasklistPath_Click);
//
// buttonAESString
//
this.buttonAESString.Image = global::SSH_Test.Properties.Resources.Encryption24;
this.buttonAESString.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.buttonAESString.Location = new System.Drawing.Point(182, 2);
this.buttonAESString.Name = "buttonAESString";
this.buttonAESString.Size = new System.Drawing.Size(80, 30);
this.buttonAESString.TabIndex = 11;
this.buttonAESString.Text = "AES";
this.buttonAESString.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.buttonAESString.UseVisualStyleBackColor = true;
this.buttonAESString.Click += new System.EventHandler(this.buttonAESString_Click);
//
// TastList
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1094, 794);
this.Controls.Add(this.buttonAESString);
this.Controls.Add(this.buttonTasklistPath);
this.Controls.Add(this.checkBoxArrangeTask);
this.Controls.Add(this.buttonUncheckAll);
this.Controls.Add(this.buttonCheckAll);
@@ -346,6 +389,7 @@
this.Controls.Add(this.bRun);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "TastList";
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "Task List";
this.Load += new System.EventHandler(this.fSSHTest_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridViewTask)).EndInit();
@@ -374,6 +418,9 @@
private System.Windows.Forms.ContextMenuStrip contextMenuStripRow;
private System.Windows.Forms.ToolStripMenuItem MoveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem DeleteToolStripMenuItem;
private System.Windows.Forms.OpenFileDialog openFileDialogTasklist;
private System.Windows.Forms.Button buttonTasklistPath;
private System.Windows.Forms.ToolTip toolTipbuttonTasklist;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskNum;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskDescription;
private System.Windows.Forms.DataGridViewTextBoxColumn TaskDevice;
@@ -382,6 +429,8 @@
private System.Windows.Forms.DataGridViewImageColumn Run;
private System.Windows.Forms.DataGridViewButtonColumn Configuration;
private System.Windows.Forms.DataGridViewComboBoxColumn Profile;
private System.Windows.Forms.ToolTip toolTipGeneralConf;
private System.Windows.Forms.Button buttonAESString;
}
}

View File

@@ -14,13 +14,15 @@ using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Runtime.InteropServices; // for moving console window
using System.Runtime.Remoting.Contexts;
using System.Security.Cryptography;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using System.Windows.Forms;
using System.Xml;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
@@ -35,42 +37,120 @@ namespace SSH_Test
public List<cTask> Tasks = new List<cTask>();
public cConInfo conInfo = new cConInfo("", "", "", "", "", "");
private List<Profile> Profiles = new List<Profile>();
private static ILog log = LogManager.GetLogger(typeof(Program));
private static Utilities utilities = new Utilities(log);
public static ILog log = LogManager.GetLogger(typeof(Program));
private int RowToDrag = -1; //for arrange tasks
private int RowToDrop = -1; // for arrange tasks
private string Tasklistfilename = "tasklist.json";
private string Profilefilename = "profile.json";
private bool bEncryption = true;
private static Aes aes ;
private static Utilities utilities = new Utilities(log);
//for moving console window
// Import the necessary Windows API functions
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
public TastList()
{
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(100,100);
var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
log4net.Util.LogLog.InternalDebugging = true;
XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
InitializeComponent();
//encryption
aes = Aes.Create();
//set default tasklist file
openFileDialogTasklist.InitialDirectory = System.IO.Directory.GetCurrentDirectory();
openFileDialogTasklist.FileName = Tasklistfilename;
buttonTasklistPath.Text = Tasklistfilename;
// set Tooltip
toolTipbuttonTasklist.ToolTipTitle = "Task List and Profile";
toolTipbuttonTasklist.SetToolTip(buttonTasklistPath, " Pick another, the default is tasklist.json");
toolTipbuttonTasklist.SetToolTip(buttonLoad, " Load or reload task list file");
toolTipbuttonTasklist.SetToolTip(buttonSave, "Save the current task list file");
toolTipbuttonTasklist.SetToolTip(buttonAESString, " Input or change EAS string");
toolTipGeneralConf.ToolTipTitle = "Configuration";
toolTipGeneralConf.SetToolTip(buttonConf, " Configure TFTP, Encrypion and more");
//move console window
int newX = this.Right; // to right size of the main form
int newY = this.Top; // align top
int NewWidth = 400;
int NewHeight = this.Height;
IntPtr consoleHandle = GetConsoleWindow();
if (consoleHandle != IntPtr.Zero)
{
bool success = MoveWindow(consoleHandle, newX, newY, NewWidth, NewHeight, true);
if (success)
{
Console.WriteLine($"Console to ({newX}, {newY}).");
}
else
{
Console.WriteLine("Failed to move console.");
}
SetForegroundWindow(consoleHandle);
}
else
{
Console.WriteLine("Failed get console window handle.");
}
//Initialize Gridview behaviours
dataGridViewTask.AllowDrop = true;
dataGridViewTask.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
dataGridViewTask.RowTemplate.ContextMenuStrip = contextMenuStripRow;
//Load Profile list from "profile.json"
Profiles = utilities.LoadProfile("profile.json");
Profiles = utilities.LoadProfile("profile.json", aes);
// Configure Profile list to dropdown menu
try
{
foreach (Profile p in Profiles)
{
log.Info(string.Format("Profile: {0}", p.ProfileName));
}
// AES button will update the dropdown menu when AES key is inputed.
//try
//{
// foreach (Profile p in Profiles)
// {
// log.Info(string.Format("Profile: {0}", p.ProfileName));
// }
var comboBoxColumn = (DataGridViewComboBoxColumn)dataGridViewTask.Columns[7];
comboBoxColumn.DataSource = Profiles; // Set the data source of the ComboBox column
comboBoxColumn.DisplayMember = "profileName"; // Displayed property name
comboBoxColumn.ValueMember = "profileName"; //The property name of the value
}
catch (Exception ex)
{
log.Error(ex.Message);
}
// var comboBoxColumn = (DataGridViewComboBoxColumn)dataGridViewTask.Columns[7];
// comboBoxColumn.DataSource = Profiles; // Set the data source of the ComboBox column
// comboBoxColumn.DisplayMember = "profileName"; // Displayed property name
// comboBoxColumn.ValueMember = "profileName"; //The property name of the value
//}
//catch (Exception ex)
//{
// log.Error(ex.Message);
//}
dataGridViewTask.Refresh();
@@ -85,6 +165,7 @@ namespace SSH_Test
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
log.Info("Run selected Tasks was called");
string listofruntasks = "Task(s) ran: \n";
foreach (DataGridViewRow row in dataGridViewTask.Rows)
{
Profile profile;
@@ -133,9 +214,11 @@ namespace SSH_Test
//clear richtextboxoutput
//richTextBoxOutput.Clear();
// Run a Task and display result on the textbox
richTextBoxOutput.AppendText(Utilities.RunaTask(currentTask, profile, conInfo));
// insert task name to listofruntasks
listofruntasks += string.Format(" Task {0}: {1}, profile: {2} \n", currentTask.iTaskNum, currentTask.sTaskDescription, currentTask.sProfile);
// Run a Task and display result on the textbox
richTextBoxOutput.AppendText(Utilities.RunaTask(currentTask, profile, conInfo,aes));
richTextBoxOutput.SelectionStart = richTextBoxOutput.Text.Length;
richTextBoxOutput.ScrollToCaret();
}
@@ -147,6 +230,7 @@ namespace SSH_Test
}
}
}
//dump output to file.txt
string filepath = string.Format("{0}\\{1}\\{2}_{3}.txt", Environment.CurrentDirectory,
Environment.MachineName, Environment.MachineName, DateTime.Now.ToString("yyyyMMdd_HHmmss"));
@@ -161,8 +245,8 @@ namespace SSH_Test
Directory.CreateDirectory(dir);
}
File.WriteAllText(filepath, richTextBoxOutput.Text.ToString());
File.WriteAllText(filepath, listofruntasks);
File.AppendAllText(filepath, richTextBoxOutput.Text.ToString());
log.Info(string.Format("Wrote to file: {0}", filepath));
}
catch (Exception ex)
@@ -173,6 +257,158 @@ namespace SSH_Test
log.Info("Run selected Tasks End");
}
private void buttonTasklistPath_Click(object sender, EventArgs e)
{
if (openFileDialogTasklist.ShowDialog() == DialogResult.OK)
{
Tasklistfilename = openFileDialogTasklist.FileName;
buttonTasklistPath.Text = openFileDialogTasklist.SafeFileName;
//load tasklist
buttonLoad_Click(null,null);
}
}
private void buttonSave_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
if (Tasks.Count >= 1)
{
utilities.SaveTasklist(Tasks, Tasklistfilename, aes);
}
}
private void buttonLoad_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
Tasks = utilities.LoadTaskList(Tasklistfilename, aes);
//clear TaskList
dataGridViewTask.Rows.Clear();
foreach (var task in Tasks)
{
try
{
DataGridViewRow row = (DataGridViewRow)dataGridViewTask.Rows[0].Clone();
row.Cells[0].Value = task.iTaskNum;
row.Cells[1].Value = task.sTaskDescription;
row.Cells[2].Value = task.sTaskDevice;
row.Cells[4].Value = task.bTaskSelect;
var comboBoxColumn = (DataGridViewComboBoxColumn)dataGridViewTask.Columns[7];
// test if task.sprofile name mach any in Profiles, if true, assign that name
if (Profiles.Any(pr => pr.ProfileName == task.sProfile))
row.Cells[7].Value = task.sProfile;
dataGridViewTask.Rows.Add(row);
}
catch (Exception ex)
{
log.Error(string.Format("Error while loading saved tasklist: \n {0}", ex.Message));
}
}
}
private void buttonConf_Click(object sender, EventArgs e)
{
FormConfiguration formConfiguration = new FormConfiguration(conInfo.sTftpIP, conInfo.sSftpIP,
conInfo.sSftpUsername, conInfo.sSftpPassword,
bEncryption, aes, log);
formConfiguration.ShowDialog();
conInfo.sTftpIP = formConfiguration.Tftp_IP;
conInfo.sSftpIP = formConfiguration.Sftp_IP;
conInfo.sSftpUsername = formConfiguration.Sftp_Username;
conInfo.sSftpPassword = formConfiguration.Sftp_Password;
}
private void dataGridViewTask_CellClick(object sender, DataGridViewCellEventArgs e)
{
// Ensure the click is on a valid celland not in arrange mode and not the header and start edit mode immediately
if ((!checkBoxArrangeTask.Checked) && (e.RowIndex >= 0) && (e.ColumnIndex > 0))
{
// Set the cell as the current cell (if not already)
dataGridViewTask.CurrentCell = dataGridViewTask.Rows[e.RowIndex].Cells[e.ColumnIndex];
dataGridViewTask.BeginEdit(true);
}
}
private void dataGridViewTask_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
{
//show tool tips for cells in Run column 5
log.Info("Handle showing tooltip at a cell");
if (e.ColumnIndex == 5)
{
e.ToolTipText = string.Format("Run Task {0}: {1}", dataGridViewTask.Rows[e.RowIndex].Cells[1], dataGridViewTask.Rows[e.RowIndex].Cells[2]);
}
}
private void buttonCheckAll_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
foreach (DataGridViewRow row in dataGridViewTask.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells[4] as DataGridViewCheckBoxCell;
if (cell.Value != null)
{
cell.Value = true;
Tasks[row.Index].bTaskSelect = true;
}
}
dataGridViewTask.Refresh();
}
private void buttonUncheckAll_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
foreach (DataGridViewRow row in dataGridViewTask.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells[4] as DataGridViewCheckBoxCell;
if (cell.Value != null)
{
cell.Value = false;
Tasks[row.Index].bTaskSelect = false;
}
}
dataGridViewTask.Refresh();
}
private void checkBoxArrangeTask_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxArrangeTask.Checked)
{
dataGridViewTask.AllowUserToAddRows = false;
// change mouse cursor to Hand
dataGridViewTask.Cursor = System.Windows.Forms.Cursors.Hand;
}
else
{
dataGridViewTask.AllowUserToAddRows = true;
// change mouse cursor back to Default
dataGridViewTask.Cursor = System.Windows.Forms.Cursors.Default;
}
}
private void dataGridViewTask_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
@@ -234,7 +470,7 @@ namespace SSH_Test
// Run a Task and display result on the textbox
richTextBoxOutput.AppendText(Utilities.RunaTask(currentTask, profile, conInfo));
richTextBoxOutput.AppendText(Utilities.RunaTask(currentTask, profile, conInfo,aes));
richTextBoxOutput.SelectionStart = richTextBoxOutput.Text.Length;
richTextBoxOutput.ScrollToCaret();
}
@@ -270,7 +506,7 @@ namespace SSH_Test
private void dataGridViewTask_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
Profile profile = new Profile() ;
Profile profile = new Profile();
if (e.ColumnIndex != 5)
{
if (Tasks.Count < (e.RowIndex + 1))
@@ -310,8 +546,8 @@ namespace SSH_Test
else
Tasks[e.RowIndex].sProfile = "Do nothing";
profile = Profiles.Find(x => x.ProfileName == Tasks[e.RowIndex].sProfile.ToString());
if (profile.ProfileParameters.Length > 0)
profile = Profiles.Find(x => x.ProfileName == Tasks[e.RowIndex].sProfile.ToString());
if ( (profile != null) && (profile.ProfileParameters.Length > 0))
{
//clear task profile parameters first
Tasks[e.RowIndex].dParameters.Clear();
@@ -331,166 +567,14 @@ namespace SSH_Test
}
}
}
private void buttonSave_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
if (Tasks.Count >= 1)
{
//using (Stream stream = File.Open("tasklist.dat", FileMode.Create))
//{
// log.Info("Saving Tasklist.dat");
// var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
// binaryFormatter.Serialize(stream, Tasks);
//}
//using (Stream stream = File.Open("ftpInfo.dat", FileMode.Create))
//{
// var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
// binaryFormatter.Serialize(stream, conInfo);
//}
utilities.SaveTasklist(Tasks, "tasklist.json");
}
}
private void buttonLoad_Click(object sender, EventArgs e)
{
//using (Stream stream = File.Open("tasklist.dat", FileMode.Open))
//{
// var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
// Tasks = (List<cTask>)binaryFormatter.Deserialize(stream);
//}
//using (Stream stream = File.Open("ftpInfo.dat", FileMode.Open))
//{
// var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
// conInfo = (cConInfo)binaryFormatter.Deserialize(stream);
//}
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
Tasks = utilities.LoadTaskList("tasklist.json");
//clear TaskList
dataGridViewTask.Rows.Clear();
foreach (var task in Tasks)
{
try
{
DataGridViewRow row = (DataGridViewRow)dataGridViewTask.Rows[0].Clone();
row.Cells[0].Value = task.iTaskNum;
row.Cells[1].Value = task.sTaskDescription;
row.Cells[2].Value = task.sTaskDevice;
row.Cells[4].Value = task.bTaskSelect;
var comboBoxColumn = (DataGridViewComboBoxColumn)dataGridViewTask.Columns[7];
// test if task.sprofile name mach any in Profiles, if true, assign that name
if (Profiles.Any(pr => pr.ProfileName == task.sProfile))
row.Cells[7].Value = task.sProfile;
dataGridViewTask.Rows.Add(row);
}
catch (Exception ex)
{
log.Error(string.Format("Error while loading saved tasklist: \n {0}", ex.Message));
}
}
}
private void buttonConf_Click(object sender, EventArgs e)
{
FormConfiguration formConfiguration = new FormConfiguration(conInfo.sTftpIP, conInfo.sSftpIP, conInfo.sSftpUsername, conInfo.sSftpPassword);
formConfiguration.ShowDialog();
conInfo.sTftpIP = formConfiguration.Tftp_IP;
conInfo.sSftpIP = formConfiguration.Sftp_IP;
conInfo.sSftpUsername = formConfiguration.Sftp_Username;
conInfo.sSftpPassword = formConfiguration.Sftp_Password;
}
private void dataGridViewTask_CellClick(object sender, DataGridViewCellEventArgs e)
{
// Ensure the click is on a valid cell and not the header
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
// Set the cell as the current cell (if not already)
dataGridViewTask.CurrentCell = dataGridViewTask.Rows[e.RowIndex].Cells[e.ColumnIndex];
// Start the edit mode immediately
dataGridViewTask.BeginEdit(true);
}
}
private void dataGridViewTask_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
{
//show tool tips for cells in Run column 5
log.Info("Handle showing tooltip at a cell");
if (e.ColumnIndex == 5)
{
e.ToolTipText = string.Format("Run Task {0}: {1}", dataGridViewTask.Rows[e.RowIndex].Cells[1], dataGridViewTask.Rows[e.RowIndex].Cells[2]);
}
}
private void buttonCheckAll_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
foreach (DataGridViewRow row in dataGridViewTask.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells[4] as DataGridViewCheckBoxCell;
if (cell.Value != null)
{
cell.Value = true;
Tasks[row.Index].bTaskSelect = true;
}
}
dataGridViewTask.Refresh();
}
private void buttonUncheckAll_Click(object sender, EventArgs e)
{
//Disable Arrange Tasks first
checkBoxArrangeTask.Checked = false;
foreach (DataGridViewRow row in dataGridViewTask.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells[4] as DataGridViewCheckBoxCell;
if (cell.Value != null)
{
cell.Value = false;
Tasks[row.Index].bTaskSelect = false;
}
}
dataGridViewTask.Refresh();
}
private void checkBoxArrangeTask_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxArrangeTask.Checked)
{
dataGridViewTask.AllowUserToAddRows = false;
}
else
{
dataGridViewTask.AllowUserToAddRows = true;
}
}
private void dataGridViewTask_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (checkBoxArrangeTask.Checked)
{
// start "drag" handle with mouse left click
@@ -501,6 +585,10 @@ namespace SSH_Test
// start to catch "drag"
dataGridViewTask.DoDragDrop(dataGridViewTask.Rows[e.RowIndex], DragDropEffects.Move);
// move focus to Dropped Cell
dataGridViewTask.CurrentCell = dataGridViewTask.Rows[RowToDrop].Cells[e.ColumnIndex];
dataGridViewTask.Rows[RowToDrop].Cells[e.ColumnIndex].Selected = true;
return;
}
}
@@ -511,7 +599,7 @@ namespace SSH_Test
if (e.Button == MouseButtons.Right)
{
//select the firt cell of the row if click is at the first cell of the row
//select the first cell of the row
if (e.RowIndex >= 0)
{
@@ -556,6 +644,7 @@ namespace SSH_Test
}
}
private void dataGridViewTask_DragDrop(object sender, DragEventArgs e)
{
if (checkBoxArrangeTask.Checked)
@@ -565,7 +654,8 @@ namespace SSH_Test
Point clientPoint = dataGridViewTask.PointToClient(new Point(e.X, e.Y));
DataGridView.HitTestInfo hitpoint = dataGridViewTask.HitTest(clientPoint.X, clientPoint.Y);
if (hitpoint.Type == DataGridViewHitTestType.Cell || hitpoint.Type == DataGridViewHitTestType.RowHeader)
if (hitpoint.Type == DataGridViewHitTestType.Cell)
{
RowToDrop = hitpoint.RowIndex;
@@ -581,12 +671,7 @@ namespace SSH_Test
Tasks.RemoveAt(RowToDrag);
Tasks.Insert(RowToDrop, data);
// move focus to Dropped Cell
dataGridViewTask.ClearSelection();
dataGridViewTask.CurrentCell = dataGridViewTask.Rows[RowToDrop].Cells[hitpoint.ColumnIndex];
dataGridViewTask.Rows[RowToDrop].Cells[hitpoint.ColumnIndex].Selected = true;
// regenerate Task Num
RegenerateTaskNum();
}
}
@@ -597,7 +682,7 @@ namespace SSH_Test
private void MoveToolStripMenuItem_Click(object sender, EventArgs e)
{
checkBoxArrangeTask.Checked = true;
checkBoxArrangeTask.Checked = !checkBoxArrangeTask.Checked;
}
private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
@@ -608,8 +693,8 @@ namespace SSH_Test
if ( MessageBox.Show(string.Format("Remove Task: {0} ?", dataGridViewTask.CurrentRow.Cells[0].Value),
"Confirm to Delete Task", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)
{
dataGridViewTask.Rows.RemoveAt(dataGridViewTask.CurrentRow.Index);
Tasks.RemoveAt(dataGridViewTask.CurrentRow.Index);
dataGridViewTask.Rows.RemoveAt(dataGridViewTask.CurrentRow.Index);
dataGridViewTask.Refresh();
RegenerateTaskNum();
}
@@ -627,8 +712,53 @@ namespace SSH_Test
}
}
private void buttonDeleteSelected_Click(object sender, EventArgs e)
private void buttonAESString_Click(object sender, EventArgs e)
{
//Get or show current AES String
var dictionary = new Dictionary<string, string>();
dictionary.Add("AES string", Convert.ToBase64String(aes.Key));
FormParameters formParameter = new FormParameters(dictionary, richTextBoxOutput.Text,
string.Format("{0}: {1}", "EAS String", "Edit to update with a different EAS String"));
if (formParameter.ShowDialog() == DialogResult.Cancel)
{
log.Info("AES formParameter returns with Cancel");
}
else
{
try
{
aes.Key = Convert.FromBase64String(formParameter.dParameters["AES string"]);
//try reloading profile.json
Profiles.Clear();
Profiles = utilities.LoadProfile("profile.json", aes);
// Configure Profile list to dropdown menu
try
{
foreach (Profile p in Profiles)
{
log.Info(string.Format("Profile: {0}", p.ProfileName));
}
var comboBoxColumn = (DataGridViewComboBoxColumn)dataGridViewTask.Columns[7];
comboBoxColumn.DataSource = Profiles; // Set the data source of the ComboBox column
comboBoxColumn.DisplayMember = "profileName"; // Displayed property name
comboBoxColumn.ValueMember = "profileName"; //The property name of the value
}
catch (Exception ex)
{
log.Error(ex.Message);
}
dataGridViewTask.Refresh();
}
catch
{
log.Error("Cannot load AES key");
}
}
}
}

View File

@@ -144,6 +144,15 @@
<metadata name="Profile.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="openFileDialogTasklist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>188, 17</value>
</metadata>
<metadata name="toolTipbuttonTasklist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>359, 17</value>
</metadata>
<metadata name="toolTipGeneralConf.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>457, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@@ -1,13 +1,19 @@
using log4net;
using log4net.Core;
using Renci.SshNet;
using Renci.SshNet.Security;
using SSH_Test;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Management.Automation; //for powershell
using System.Collections.ObjectModel;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -15,6 +21,9 @@ using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using Microsoft.Win32.SafeHandles;
using System.Diagnostics.Eventing.Reader;
namespace SSH_Test
{
@@ -25,12 +34,13 @@ namespace SSH_Test
public Utilities(ILog Log)
{
log = Log;
}
public static string RunaTask(cTask currentTask, Profile profile, cConInfo conInfo)
public static string RunaTask(cTask currentTask, Profile profile, cConInfo conInfo, Aes aes)
{
string result = "-------------------------------------------------------------------------\n";
result += string.Format("{0:s} Task: {1}, profile: {2} \n", DateTime.Now, currentTask.sTaskDescription, currentTask.sProfile);
result += string.Format("{0:s} Task {1}: {2}, profile: {3} \n", DateTime.Now, currentTask.iTaskNum, currentTask.sTaskDescription, currentTask.sProfile);
result += "-------------------------------------------------------------------------\n";
cHostInfo hostInfo = new cHostInfo();
log.Info(string.Format("Run task: {0}, profile: {1}", currentTask.sTaskDescription, currentTask.sProfile));
@@ -44,7 +54,7 @@ namespace SSH_Test
hostInfo.host = currentTask.dParameters["{IP Address}"];
hostInfo.username = currentTask.dParameters["{User Name}"];
hostInfo.password = currentTask.dParameters["{Password}"];
hostInfo.device = currentTask.sTaskDevice.ToString();
hostInfo.device = currentTask.sTaskDevice.ToString();
hostInfo.dParameters = new Dictionary<string, string>();
hostInfo.Commands = profile.ProfileCommands;
@@ -243,77 +253,157 @@ namespace SSH_Test
log.Info(command);
Process process = new Process();
process.StartInfo.FileName = "powershell";
process.StartInfo.UseShellExecute = false; // Required for 'runas' verb
process.StartInfo.Verb = "runas"; // Request administrator privileges
process.StartInfo.RedirectStandardOutput = true;
string folderPathPS = Environment.CurrentDirectory + "\\PS\\";
process.StartInfo.WorkingDirectory = folderPathPS; // current working dir
log.Info(process.StartInfo.WorkingDirectory);
// check if Powershell Script folder "PS" exists, if not , create one.
if (!Directory.Exists(folderPathPS))
using (PowerShell ps = PowerShell.Create())
{
Directory.CreateDirectory(folderPathPS);
log.Info(string.Format("Cound not find folder PS, create new {0}", folderPathPS));
}
try
{
// will create temporary ps script file from command for better compatibility
string tempfile = Path.GetRandomFileName() + ".ps1";
if (command.Contains("-File") || command.Contains("-file"))
{
// command contains "-File" for running a script, do nothing
command = "-NoProfile -ExecutionPolicy Bypass " + command;
// command contains "-File" for running a script, check if file was encrypted with USI prefix.
string PSPath = Environment.CurrentDirectory + "\\PS\\";
//contruct the path, remove -File|-file from command:
string pattern = "-file";
command = command.Replace("\"","");
PSPath += Regex.Replace(command, pattern, "", RegexOptions.IgnoreCase).Trim();
try
{
string data = File.ReadAllText(PSPath);
//check if PS file is encrypted
if (data.Contains("Unified Systems Inc."))
{
byte[] bData = File.ReadAllBytes(PSPath);
string ddata = DecryptStringFromBytes(bData,aes.Key);
ps.AddScript(ddata);
}
else
{
result += " Cannot open Powershell script file.";
}
}
catch {
log.Error(string.Format("Failed to open PS file at: {0}", PSPath));
}
}
else
{
//create ps script file from command
try
// FOR more detailed output, uncommend the below
//ps.AddScript(string.Format("{0}|OUt-String",command));
//Comment the below if the above is used.
ps.AddScript(command);
}
Collection<PSObject> results = ps.Invoke();
foreach (PSObject Item in results)
{
if (Item != null)
{
File.WriteAllText(".\\PS\\" + tempfile, command);
// Access the underlying object for its actual value
result += string.Format("{0} \n", Item.ToString());
}
catch
{
log.Error(string.Format("Cannot create or write temporary Powershell script file {0}", tempfile));
}
command = string.Format("-NoProfile -ExecutionPolicy Bypass -File {0}", tempfile);
}
//log.Info(string.Format(command));
process.StartInfo.Arguments = command;
process.Start();
string temp = process.StandardOutput.ReadToEnd();
log.Info(string.Format("From Powershell {0}: {1}", currentTask.sTaskDevice.ToString(), temp));
result += temp;
// Check for errors
if (ps.Streams.Error.Count > 0)
{
log.Error("\nErrors encountered:");
foreach (ErrorRecord error in ps.Streams.Error)
{
process.WaitForExit();
try
{
File.Delete(".\\PS\\" + tempfile);
log.Info(string.Format("Deleted temporary PS file: ", tempfile));
}
catch (Exception ex)
{
log.Error(string.Format("Cannot delete temporary PS file: ", tempfile));
log.Error(ex);
log.Error(error.ToString());
result += string.Format("Failed to execute \n {0}", error.ToString());
}
}
}
catch (Win32Exception ex)
{
log.Error(ex);
}
////////////////// OLD - NEED TO REWRITE TO WORK WITH ENCRYPTED PS SCRIPTS 20260223 ////////////////
//Process process = new Process();
//process.StartInfo.FileName = "powershell";
//process.StartInfo.UseShellExecute = false; // Required for 'runas' verb
//process.StartInfo.Verb = "runas"; // Request administrator privileges
//process.StartInfo.RedirectStandardOutput = true;
//string folderPathPS = Environment.CurrentDirectory + "\\PS\\";
//process.StartInfo.WorkingDirectory = folderPathPS; // current working dir
//log.Info(process.StartInfo.WorkingDirectory);
//// check if Powershell Script folder "PS" exists, if not , create one.
//if (!Directory.Exists(folderPathPS))
//{
// Directory.CreateDirectory(folderPathPS);
// log.Info(string.Format("Cound not find folder PS, create new {0}", folderPathPS));
//}
//try
//{
//// // will create temporary ps script file from command for better compatibility
//// string tempfile = Path.GetRandomFileName() + ".ps1";
//// if (command.Contains("-File") || command.Contains("-file"))
//// {
//// // command contains "-File" for running a script, do nothing
//// command = "-NoProfile -ExecutionPolicy Bypass " + command;
//// }
//// else
//// {
//// //create ps script file from command
//// try
//// {
//// File.WriteAllText(".\\PS\\" + tempfile, command);
//// }
//// catch
//// {
//// log.Error(string.Format("Cannot create or write temporary Powershell script file {0}", tempfile));
//// }
//// command = string.Format("-NoProfile -ExecutionPolicy Bypass -File {0}", tempfile);
//// }
//// //log.Info(string.Format(command));
//// process.StartInfo.Arguments = command;
//// process.Start();
//// string temp = process.StandardOutput.ReadToEnd();
// //log.Info(string.Format("From Powershell {0}: {1}", currentTask.sTaskDevice.ToString(), temp));
// //result += temp;
// //process.WaitForExit();
// //try
// //{
// // File.Delete(".\\PS\\" + tempfile);
// // log.Info(string.Format("Deleted temporary PS file: ", tempfile));
// //}
// //catch (Exception ex)
// //{
// // log.Error(string.Format("Cannot delete temporary PS file: ", tempfile));
// // log.Error(ex);
// //}
//}
//catch (Win32Exception ex)
//{
// log.Error(ex);
//}
i++;
}
break;
@@ -572,7 +662,7 @@ namespace SSH_Test
}
//Seriallize Tasklist to a Json file
public void SaveTasklist(List<cTask> data, string filePath)
public void SaveTasklist(List<cTask> data, string filePath, Aes aes)
{
JsonSerializerOptions options = new JsonSerializerOptions
{
@@ -585,10 +675,11 @@ namespace SSH_Test
};
string jsonString = JsonSerializer.Serialize(data, options);
File.WriteAllText(filePath, jsonString);
File.WriteAllBytes(filePath, EncryptStringAES(jsonString,aes.Key));
}
//Deseriallize Tasklist from a Json file
public List<cTask> LoadTaskList(string filePath)
public List<cTask> LoadTaskList(string filePath, Aes aes)
{
JsonSerializerOptions options = new JsonSerializerOptions
{
@@ -605,17 +696,39 @@ namespace SSH_Test
{
try
{
string jsonString = File.ReadAllText(filePath);
log.Info("Process tasklist.json");
log.Info(string.Format("Try loading {0}", filePath));
string jsonString = "";
if (File.Exists(filePath))
{
try
{
//read json data from file
byte[] bData = File.ReadAllBytes(filePath);
//decrypt data and save to file
jsonString = DecryptStringFromBytes(bData, aes.Key);
}
catch (Exception ex)
{
//could not read tasklist.json properly
log.Error(string.Format("Could not load {0} for decrypting", filePath));
log.Error(ex);
}
return JsonSerializer.Deserialize<List<cTask>>(jsonString,options);
log.Info("Process tasklist.json");
}
return JsonSerializer.Deserialize<List<cTask>>(jsonString, options);
}
catch (Exception ex)
{
//could not read tasklist.json properly
log.Error("Could not load tasklist.json");
log.Error(string.Format("Could not load {0}", filePath));
log.Error(ex);
//return an empty list if file could not be read
@@ -640,15 +753,31 @@ namespace SSH_Test
//Deseriallize Profile from a Json file
public List<Profile> LoadProfile(string filePath)
public List<Profile> LoadProfile(string filePath, Aes aes)
{
if (File.Exists(filePath))
{
try
{
string jsonString = File.ReadAllText(filePath);
log.Info("Process tasklist.json");
string jsonString = "";
try
{
//read json data from file
byte[] bData = File.ReadAllBytes(filePath);
//decrypt data and save to file
jsonString = DecryptStringFromBytes(bData, aes.Key);
}
catch (Exception ex)
{
//could not read tasklist.json properly
log.Error(string.Format("Could not load {0} for decrypting", filePath));
log.Error(ex);
}
log.Info("Process profile.json");
return JsonSerializer.Deserialize<List<Profile>>(jsonString);
}
catch (Exception ex)
@@ -666,10 +795,110 @@ namespace SSH_Test
}
return new List<Profile>(); // Return an empty list if file doesn't exist
}
//Encrypt a file with AES, append "Unified Systems Inc." + IV at the beginning of the file
public static byte[] EncryptStringAES(string sData, byte[] key)
{
// Check arguments
if (sData == null || sData.Length <= 0)
throw new ArgumentNullException(nameof(sData));
if (key == null || key.Length <= 0)
throw new ArgumentNullException(nameof(Key));
byte[] encrypted ;
byte[] USI = Encoding.UTF8.GetBytes("Unified Systems Inc.");
Aes aes = Aes.Create();
aes.Key = key;
// Create an encryptor.
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
// Use streams for encryption.
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
// Write all data to the stream.
swEncrypt.Write(sData);
}
encrypted = msEncrypt.ToArray();
}
}
//return encrypted data with USI + IV at the beginning
byte[] USIIV = USI.Concat(aes.IV).ToArray();
return USIIV.Concat(encrypted).ToArray();
}
//Decrypt a file with AES, with "Unified Systems Inc." + IV at the beginning of the file
public static string DecryptStringFromBytes(byte[] eDdata, byte[] Key)
{
// Check arguments.
if (eDdata == null || eDdata.Length <= 0)
throw new ArgumentNullException(nameof(eDdata));
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException(nameof(Key));
//extract IV and remove USI + IV
byte[] IV = new byte[16];
byte[] USI = Encoding.UTF8.GetBytes("Unified Systems Inc.");
byte[] USIIV = USI.Concat(IV).ToArray();
Array.Copy(eDdata, 0, USIIV, 0, USIIV.Length);
Array.Copy(USIIV,USI.Length,IV, 0, IV.Length);
//remove USIIV from bData:
int dataLength = eDdata.Length - USIIV.Length;
byte[] bdatanoIV = new byte[dataLength];
Array.Copy(eDdata, USIIV.Length, bdatanoIV, 0, dataLength);
// Declare the string used to hold the decrypted text.
string sData = null;
using (Aes aes = Aes.Create())
{
aes.Key = Key;
aes.IV = IV;
// Create a decryptor to perform the stream transform.
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(bdatanoIV))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
sData = srDecrypt.ReadToEnd();
}
}
}
}
return sData;
}
}
public class cHostInfo
public class cHostInfo
{
public string device { get; set; }
public string host { get; set; }

Binary file not shown.

View File

@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.2" newVersion="10.0.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
@@ -25,6 +22,10 @@
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.2" newVersion="10.0.0.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Binary file not shown.

Binary file not shown.

View File

@@ -1,187 +1,6 @@
[
{
"iTaskNum": 1,
"sTaskDescription": "Bios enable Power on AC Recovery",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_ACPwrRcvry_On",
"dParameters": {}
},
{
"iTaskNum": 2,
"sTaskDescription": "Change HostName",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Change Hostname",
"dParameters": {
"{New Host Name}": ""
}
},
{
"iTaskNum": 3,
"sTaskDescription": "Reboot by IDRAC",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_Commit_Changes_reboot_NOW",
"dParameters": {}
},
{
"iTaskNum": 4,
"sTaskDescription": "Server have 2nd power supply?",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_PS_status_dual",
"dParameters": {}
},
{
"iTaskNum": 5,
"sTaskDescription": "10GB ports",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_networkinterfaces",
"dParameters": {}
},
{
"iTaskNum": 6,
"sTaskDescription": "OS",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_OS_name",
"dParameters": {}
},
{
"iTaskNum": 7,
"sTaskDescription": "GPU",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_VideoController",
"dParameters": {}
},
{
"iTaskNum": 8,
"sTaskDescription": "Power redundancy",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_Power_redundancy",
"dParameters": {}
},
{
"iTaskNum": 9,
"sTaskDescription": "Raid volume check",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_storage_vdisks",
"dParameters": {}
},
{
"iTaskNum": 10,
"sTaskDescription": "Windows Activation Status",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Windows_Activation_status",
"dParameters": {}
},
{
"iTaskNum": 11,
"sTaskDescription": "Avigilon Version",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Avigilon_Version",
"dParameters": {}
},
{
"iTaskNum": 12,
"sTaskDescription": "Get Network Interface Name",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Get_NetworkInterface",
"dParameters": {}
},
{
"iTaskNum": 13,
"sTaskDescription": "Create NIC team for Cameras",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_NetworkInterface_Team_LACP_Dynamic",
"dParameters": {
"{Team Name}": "",
"{NIC1}": "",
"{NIC2}": ""
}
},
{
"iTaskNum": 14,
"sTaskDescription": "Create 2 Windows Admins",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Add_Local_2_Admin_Users",
"dParameters": {
"{Local Admin User 1}": "",
"{Password 1}": "",
"{Local Admin User 2}": "",
"{Password 2}": ""
}
},
{
"iTaskNum": 15,
"sTaskDescription": "IDRAC Assigned IP address",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Assign_IP_Network_Interface",
"dParameters": {
"{IP Address}": "",
"{Network Mask}": "",
"{Gateway}": ""
}
},
{
"iTaskNum": 16,
"sTaskDescription": "IDRAC Set User Password root, 3,4",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Configure_Users_at_234",
"dParameters": {
"{Password 2 root}": "",
"{Username 3}": "",
"{Password 3}": "",
"{Username 4}": "",
"{Password 4}": ""
}
},
{
"iTaskNum": 17,
"sTaskDescription": "Firewall",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Firewall Rule",
"dParameters": {}
},
{
"iTaskNum": 18,
"sTaskDescription": "ACC Antivirus Exclusions",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_ACC8 Antivirus Exclusions",
"dParameters": {}
},
{
"iTaskNum": 19,
"sTaskDescription": "Folder Options",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Folder Options",
"dParameters": {}
},
{
"iTaskNum": 20,
"sTaskDescription": "Power Options",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Power Options",
"dParameters": {}
},
{
"iTaskNum": 21,
"sTaskDescription": "Remote Desktop Enable",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -189,24 +8,223 @@
"dParameters": {}
},
{
"iTaskNum": 22,
"sTaskDescription": "Windows Update Restart",
"iTaskNum": 2,
"sTaskDescription": "Bios enable Power on AC Recovery",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Windows Update Restart",
"sProfile": "RAC9_ACPwrRcvry_On",
"dParameters": {}
},
{
"iTaskNum": 3,
"sTaskDescription": "Change HostName",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Change Hostname",
"dParameters": {
"{New Host Name}": "dfghdfhdfgh"
}
},
{
"iTaskNum": 4,
"sTaskDescription": "Create 2 Windows Admins",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Add_Local_2_Admin_Users",
"dParameters": {
"{Local Admin User 1}": "USI-Admin",
"{Password 1}": "",
"{Local Admin User 2}": "SIGA-Admin",
"{Password 2}": ""
}
},
{
"iTaskNum": 5,
"sTaskDescription": "Reboot by IDRAC",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_Commit_Changes_reboot_NOW",
"dParameters": {}
},
{
"iTaskNum": 6,
"sTaskDescription": "Get Service Tag",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Get_ServiceTag",
"dParameters": {}
},
{
"iTaskNum": 7,
"sTaskDescription": "Server have 2nd power supply?",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_PS_status_dual",
"dParameters": {}
},
{
"iTaskNum": 8,
"sTaskDescription": "10GB ports",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_networkinterfaces",
"dParameters": {}
},
{
"iTaskNum": 9,
"sTaskDescription": "OS",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_OS_name",
"dParameters": {}
},
{
"iTaskNum": 10,
"sTaskDescription": "GPU",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_VideoController",
"dParameters": {}
},
{
"iTaskNum": 11,
"sTaskDescription": "Power redundancy",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_Power_redundancy",
"dParameters": {}
},
{
"iTaskNum": 12,
"sTaskDescription": "Raid volume check",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_storage_vdisks",
"dParameters": {}
},
{
"iTaskNum": 13,
"sTaskDescription": "Windows Activation Status",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Windows_Activation_status",
"dParameters": {}
},
{
"iTaskNum": 14,
"sTaskDescription": "Avigilon Version",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Avigilon_Version",
"dParameters": {}
},
{
"iTaskNum": 15,
"sTaskDescription": "Get Network Interface Name",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Get_NetworkInterface",
"dParameters": {}
},
{
"iTaskNum": 16,
"sTaskDescription": "Create NIC team for Cameras",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_NetworkInterface_Team_LACP_Dynamic",
"dParameters": {
"{Team Name}": "Camera Lan",
"{NIC1}": "Integrated NIC 1 Port 1-1",
"{NIC2}": "Integrated NIC 1 Port 2-1"
}
},
{
"iTaskNum": 17,
"sTaskDescription": "IDRAC Assigned IP address",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Assign_IP_Network_Interface",
"dParameters": {
"{IP Address}": "192.168.39.2",
"{Network Mask}": "255.255.255.0",
"{Gateway}": "192.168.39.1"
}
},
{
"iTaskNum": 18,
"sTaskDescription": "IDRAC Set User Password root, 3,4",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Configure_Users_at_234",
"dParameters": {
"{Password 2 root}": "",
"{Username 3}": "USI-Admin",
"{Password 3}": "",
"{Username 4}": "SIGA-Admin",
"{Password 4}": ""
}
},
{
"iTaskNum": 19,
"sTaskDescription": "Firewall",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Firewall Rule",
"dParameters": {}
},
{
"iTaskNum": 20,
"sTaskDescription": "ACC Antivirus Exclusions",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_ACC8 Antivirus Exclusions",
"dParameters": {}
},
{
"iTaskNum": 21,
"sTaskDescription": "Folder Options",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Folder Options",
"dParameters": {}
},
{
"iTaskNum": 22,
"sTaskDescription": "Power Options",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Power Options",
"dParameters": {}
},
{
"iTaskNum": 23,
"sTaskDescription": "Show network Interface names, using CMD",
"sTaskDescription": "Show network Interface names, using CMD ",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Show_NetworkInterfaces",
"dParameters": {}
"dParameters": {
"{P00}": "",
"{P01}": "",
"{P02}": "",
"{P03}": ""
}
},
{
"iTaskNum": 24,
"sTaskDescription": "Assign an IPv4 address to an interface",
"sTaskDescription": "Assign an IPv4 address to an interface Camera Lan",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Assign_IPv4Address",
"dParameters": {
"{Name of Interface}": "LAN 1 (Workstation)",
"{IP Address}": "192.168.38.41",
"{Net mask}": "255.255.255.0",
"{Gateway}": "192.168.38.1"
}
},
{
"iTaskNum": 25,
"sTaskDescription": "Assign an IPv4 address to an interface Workstation",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Assign_IPv4Address",
@@ -218,11 +236,59 @@
}
},
{
"iTaskNum": 25,
"sTaskDescription": "Get Service Tag",
"iTaskNum": 26,
"sTaskDescription": "Enable ScreenSaver for current user",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Get_ServiceTag",
"sProfile": "CMD_ScreenSaver",
"dParameters": {}
},
{
"iTaskNum": 27,
"sTaskDescription": "Install Foxit Reader",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Install_FoxitReader",
"dParameters": {}
},
{
"iTaskNum": 28,
"sTaskDescription": "Set timezone to SK Canada Central Standard -6",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Timezone_CanCentralStandardTime_6",
"dParameters": {}
},
{
"iTaskNum": 29,
"sTaskDescription": "IPv6 Disable All",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Ipv6_Disable_ALL",
"dParameters": {
"{P00}": "",
"{P01}": "",
"{P02}": "",
"{P03}": ""
}
},
{
"iTaskNum": 30,
"sTaskDescription": "Install Meinberg ntp-4.2.8p",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Meinberg ntp-4.2.8",
"dParameters": {
"{IP Address 1}": "",
"{IP Address 2}": ""
}
},
{
"iTaskNum": 31,
"sTaskDescription": "Windows Update Restart",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Windows Update Restart",
"dParameters": {}
}
]

Binary file not shown.

View File

@@ -2,13 +2,16 @@
<packages>
<package id="BouncyCastle.Cryptography" version="2.6.2" targetFramework="net48" />
<package id="log4net" version="3.2.0" targetFramework="net48" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="10.0.0" targetFramework="net48" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="10.0.2" targetFramework="net48" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="8.0.2" targetFramework="net48" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="8.0.3" targetFramework="net48" />
<package id="Microsoft.PowerShell.5.1.ReferenceAssemblies" version="1.0.0" targetFramework="net48" />
<package id="Microsoft.PowerShell.SDK" version="7.5.4" targetFramework="net48" />
<package id="SSH.NET" version="2025.1.0" targetFramework="net48" />
<package id="System.Buffers" version="4.6.1" targetFramework="net48" />
<package id="System.Formats.Asn1" version="8.0.2" targetFramework="net48" />
<package id="System.IO.Pipelines" version="10.0.0" targetFramework="net48" />
<package id="System.IO.Pipelines" version="10.0.2" targetFramework="net48" />
<package id="System.Management.Automation" version="7.5.4" targetFramework="net48" />
<package id="System.Memory" version="4.6.3" targetFramework="net48" />
<package id="System.Numerics.Vectors" version="4.6.1" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.1.2" targetFramework="net48" />

View File

@@ -1,8 +1,8 @@
[
{
"ProfileName": "Do nothing",
"ProfileType": "CMD",
"ProfileCommands": ["Do nothing"
"ProfileType": "",
"ProfileCommands": [
],
"ProfileParameters": [
"{P00}",
@@ -332,6 +332,26 @@
"ProfileParameters": []
},
{
"ProfileName": "CMD_Install_TeamViewer.msi",
"ProfileType": "CMD",
"ProfileCommands": [
"C:\\USI\\Apps\\TeamViewer.msi /qn",
"winget list --disable-interactivity --accept-source-agreements| FINDSTR /i \"TeamViewer\""
],
"ProfileParameters": []
},
{
"ProfileName": "CMD_ShowAllSoftwareVersion",
"ProfileType": "CMD",
"ProfileCommands": [
"winget list --disable-interactivity --accept-source-agreements "
],
"ProfileParameters": []
},
{
"ProfileName": "CMD_Timezone_CanCentralStandardTime_6",
"ProfileType": "CMD",

View File

@@ -1,6 +1,14 @@
[
{
"iTaskNum": 1,
"sTaskDescription": "Remote Desktop Enable",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Remote Desktop Enable",
"dParameters": {}
},
{
"iTaskNum": 2,
"sTaskDescription": "Bios enable Power on AC Recovery",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -8,7 +16,7 @@
"dParameters": {}
},
{
"iTaskNum": 2,
"iTaskNum": 3,
"sTaskDescription": "Change HostName",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -18,63 +26,68 @@
}
},
{
"iTaskNum": 3,
"iTaskNum": 4,
"sTaskDescription": "Create 2 Windows Admins",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Add_Local_2_Admin_Users",
"dParameters": {
"{Local Admin User 1}": "USI-Admin",
"{Password 1}": "",
"{Local Admin User 2}": "SIGA-Admin",
"{Password 2}": ""
}
},
{
"iTaskNum": 5,
"sTaskDescription": "Reboot by IDRAC",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_Commit_Changes_reboot_NOW",
"dParameters": {}
},
{
"iTaskNum": 4,
"sTaskDescription": "Server have 2nd power supply?",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_PS_status_dual",
"dParameters": {}
},
{
"iTaskNum": 5,
"sTaskDescription": "OS",
"sTaskDevice": "",
"bTaskSelect": true,
"sProfile": "CMD_OS_name",
"dParameters": {}
},
{
"iTaskNum": 6,
"sTaskDescription": "10GB ports",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_networkinterfaces",
"dParameters": {}
},
{
"iTaskNum": 7,
"sTaskDescription": "GPU",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_VideoController",
"dParameters": {}
},
{
"iTaskNum": 8,
"sTaskDescription": "Windows Activation Status",
"sTaskDevice": "",
"bTaskSelect": true,
"sProfile": "CMD_Windows_Activation_status",
"dParameters": {}
},
{
"iTaskNum": 9,
"sTaskDescription": "Get Service Tag",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Get_ServiceTag",
"dParameters": {}
},
{
"iTaskNum": 7,
"sTaskDescription": "Server have 2nd power supply?",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_PS_status_dual",
"dParameters": {}
},
{
"iTaskNum": 8,
"sTaskDescription": "10GB ports",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_networkinterfaces",
"dParameters": {}
},
{
"iTaskNum": 9,
"sTaskDescription": "OS",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_OS_name",
"dParameters": {}
},
{
"iTaskNum": 10,
"sTaskDescription": "GPU",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_VideoController",
"dParameters": {}
},
{
"iTaskNum": 11,
"sTaskDescription": "Power redundancy",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -82,7 +95,7 @@
"dParameters": {}
},
{
"iTaskNum": 11,
"iTaskNum": 12,
"sTaskDescription": "Raid volume check",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -90,7 +103,15 @@
"dParameters": {}
},
{
"iTaskNum": 12,
"iTaskNum": 13,
"sTaskDescription": "Windows Activation Status",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Windows_Activation_status",
"dParameters": {}
},
{
"iTaskNum": 14,
"sTaskDescription": "Avigilon Version",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -98,7 +119,7 @@
"dParameters": {}
},
{
"iTaskNum": 13,
"iTaskNum": 15,
"sTaskDescription": "Get Network Interface Name",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -106,58 +127,45 @@
"dParameters": {}
},
{
"iTaskNum": 14,
"iTaskNum": 16,
"sTaskDescription": "Create NIC team for Cameras",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_NetworkInterface_Team_LACP_Dynamic",
"dParameters": {
"{Team Name}": "fgdhdf",
"{NIC1}": "dfghdfgh",
"{NIC2}": "fdghfdgh"
"{Team Name}": "Camera Lan",
"{NIC1}": "Integrated NIC 1 Port 1-1",
"{NIC2}": "Integrated NIC 1 Port 2-1"
}
},
{
"iTaskNum": 15,
"sTaskDescription": "Create 2 Windows Admins",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Add_Local_2_Admin_Users",
"dParameters": {
"{Local Admin User 1}": "",
"{Password 1}": "",
"{Local Admin User 2}": "",
"{Password 2}": ""
}
},
{
"iTaskNum": 16,
"iTaskNum": 17,
"sTaskDescription": "IDRAC Assigned IP address",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Assign_IP_Network_Interface",
"dParameters": {
"{IP Address}": "",
"{Network Mask}": "",
"{Gateway}": ""
"{IP Address}": "192.168.39.2",
"{Network Mask}": "255.255.255.0",
"{Gateway}": "192.168.39.1"
}
},
{
"iTaskNum": 17,
"iTaskNum": 18,
"sTaskDescription": "IDRAC Set User Password root, 3,4",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "RAC9_IDRAC_Configure_Users_at_234",
"dParameters": {
"{Password 2 root}": "",
"{Username 3}": "",
"{Username 3}": "USI-Admin",
"{Password 3}": "",
"{Username 4}": "",
"{Username 4}": "SIGA-Admin",
"{Password 4}": ""
}
},
{
"iTaskNum": 18,
"iTaskNum": 19,
"sTaskDescription": "Firewall",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -165,7 +173,7 @@
"dParameters": {}
},
{
"iTaskNum": 19,
"iTaskNum": 20,
"sTaskDescription": "ACC Antivirus Exclusions",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -173,7 +181,7 @@
"dParameters": {}
},
{
"iTaskNum": 20,
"iTaskNum": 21,
"sTaskDescription": "Folder Options",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -181,7 +189,7 @@
"dParameters": {}
},
{
"iTaskNum": 21,
"iTaskNum": 22,
"sTaskDescription": "Power Options",
"sTaskDevice": "",
"bTaskSelect": false,
@@ -189,40 +197,47 @@
"dParameters": {}
},
{
"iTaskNum": 22,
"sTaskDescription": "Show network Interface names, using CMD",
"iTaskNum": 23,
"sTaskDescription": "Show network Interface names, using CMD ",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Show_NetworkInterfaces",
"dParameters": {}
},
{
"iTaskNum": 23,
"sTaskDescription": "Remote Desktop Enable",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Remote Desktop Enable",
"dParameters": {}
"dParameters": {
"{P00}": "",
"{P01}": "",
"{P02}": "",
"{P03}": ""
}
},
{
"iTaskNum": 24,
"sTaskDescription": "Windows Update Restart",
"sTaskDescription": "Assign an IPv4 address to an interface Camera Lan",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Windows Update Restart",
"dParameters": {}
"sProfile": "CMD_Assign_IPv4Address",
"dParameters": {
"{Name of Interface}": "LAN 1 (Workstation)",
"{IP Address}": "192.168.38.41",
"{Net mask}": "255.255.255.0",
"{Gateway}": "192.168.38.1"
}
},
{
"iTaskNum": 25,
"sTaskDescription": "IPv06 disable All",
"sTaskDescription": "Assign an IPv4 address to an interface Workstation",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Ipv6_Disable_ALL",
"dParameters": {}
"sProfile": "CMD_Assign_IPv4Address",
"dParameters": {
"{Name of Interface}": "",
"{IP Address}": "",
"{Net mask}": "",
"{Gateway}": ""
}
},
{
"iTaskNum": 26,
"sTaskDescription": "Screen Saver for USI-Admin",
"sTaskDescription": "Enable ScreenSaver for current user",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_ScreenSaver",
@@ -230,15 +245,66 @@
},
{
"iTaskNum": 27,
"sTaskDescription": "hgkghk",
"sTaskDescription": "Install Foxit Reader",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Assign_IPv4Address",
"sProfile": "CMD_Install_FoxitReader",
"dParameters": {}
},
{
"iTaskNum": 28,
"sTaskDescription": "Set timezone to SK Canada Central Standard -6",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Timezone_CanCentralStandardTime_6",
"dParameters": {}
},
{
"iTaskNum": 29,
"sTaskDescription": "IPv6 Disable All",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Ipv6_Disable_ALL",
"dParameters": {
"{Name of Interface}": "",
"{IP Address}": "",
"{PrefixLength}": "",
"{Gateway}": ""
"{P00}": "",
"{P01}": "",
"{P02}": "",
"{P03}": ""
}
},
{
"iTaskNum": 30,
"sTaskDescription": "Install Meinberg ntp-4.2.8p",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Meinberg ntp-4.2.8",
"dParameters": {
"{IP Address 1}": "",
"{IP Address 2}": ""
}
},
{
"iTaskNum": 31,
"sTaskDescription": "Windows Update Restart",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "Powershell_Windows Update Restart",
"dParameters": {}
},
{
"iTaskNum": 32,
"sTaskDescription": "Install Teamviewer 15",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_Install_TeamViewer.msi",
"dParameters": {}
},
{
"iTaskNum": 33,
"sTaskDescription": "Show all software version",
"sTaskDevice": "",
"bTaskSelect": false,
"sProfile": "CMD_ShowAllSoftwareVersion",
"dParameters": {}
}
]