RDG логи – часть 3
Решил обновить тематику RDG логов, а конкретней выложить ту самую формочку, что обещал в конце прошлой статьи. Изменений в коде нет, за исключением появления формы, которая создавалась средствами PowerShell Studio.
Сам код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 |
#------------------------------------------------------------------------ # Source File Information (DO NOT MODIFY) # Source ID: bdbef03b-504b-47ad-bc09-c217cfc0bb53 # Source File: MainForm.psf #------------------------------------------------------------------------ #region File Recovery Data (DO NOT MODIFY) <#RecoveryData: 9QQAAB+LCAAAAAAABABllMeuowoMhvdIvMNotkhDgFAinTkSJfROaNlB6DX08vQ3M3dzpeuV5V+W bOv392Wnr35Nx4OL5ujHJ5nKvvv9E/uF/PwGgR8/voyxzMsuaviySfWoTb+1qOz4fmx/vafsC/6f /Lfpj/5tXUoOmW89x0g0zRocS/8bDM01LY8saE1b+40abxbhd4hIh7Ts5vxDKgi1pVHBMetINd0W 84PYTmu0YNBqBQFXabDjvmTDEmpnfyHmvC64V6R6kaw0jqc2XYaaOInDQTLrFCSIFO9l64oolN7L RSq0PVo8H/0ZUHwPAviJNd1a1eS+SYY7GoxvemMo73SidPmYTZ0nX3hpXzbeyvuXW7iysuXzXS36 gyBRGr1zGe1TelR5jwQEiIH0Br2whirRclyzlQYuMhO9bdRaTRdT1PXNbMTaKfA52Z6ue3JZFXNi 1hV2VQs9WmFTrBjCtdDuKQiIlmC+JqFYtoAbKkflLsZp1dCdQWPyc6ojJAeNbl4GHG5MMvia0UWo yztj9aZT557pPmvzb4jGG546QeCgN0jyNMIaUaMVpDwMcPRg2/TMnof90Dnx7tdE3mbKcORoSpYW qqBj/sjb+M617HB2DvHZMd8FS41BwGilya1qHolENrkwhnWPeOOtiwRWqJsTCiHLcjiFXMWOngJZ cZFYslvlLTi6yiCShTzr/JjZN+Ip+xsEKgayrraI0Ux7Jm4sqk+oe67FHq/3+Y+Lqo+LHqK4WEiq 7U35lEK9XysiX2v78WYc1Hd3+jK9hrbwZhCYMH8Tu+UU3EYNeavSpjF6cttADKY1MI72auuK58Mp tiest7Vezio/vdGweUX97rbpA9+FuSwb6VMyQOA0g8uBwOwjaks8Qngo8K4tC0Ho3Eyxunguslvm QU/YdCF2FXuz5bNO1xNi1PSxb5i7enWdMU32mXgHgVI/JNHt7YqHWUJP7QvPaAdW7wqe2FgSY5Ar Wy2pH6ztD/5iTYZqXuxqVipdT61EpTkV4hNIWCktu4FAc6B762Ki2Ny3Tc448S0Jr2XRSFFb3eUs 08PLKqomXGG4CrMXmAIVKdoy+K14elGTOrfaRVbheL0DCgQ2MoDXvp0xceG718oZJamSqKhXDzQo SEic4STbbuv2xCpsJfMrXJAEexLGWluxAFfXIcWFx0DAuWxkIBC0NhZ7N0Xy+OLjucAXhwBJZEi4 P24S7nAdlxxHxt8WWp0maxrhS+3ym4e7o6w7kGKx9mkRn+cNU5n4fNYZ7G56VfB4D8+6T68H363w JfaT6jptm/PByu8v+C92/gKInqa0jZsynX7An8oX/F/Mff8DSyLHZvUEAAA=#> #endregion <# .NOTES -------------------------------------------------------------------------------- Code generated by: SAPIEN Technologies, Inc., PowerShell Studio 2020 v5.7.172 Generated on: 01.10.2020 11:36 Generated by: flammlin.com -------------------------------------------------------------------------------- .DESCRIPTION GUI script generated by PowerShell Studio 2020 #> #---------------------------------------------- # Generated Form Function #---------------------------------------------- function Show-MainForm_psf { #---------------------------------------------- #region Import the Assemblies #---------------------------------------------- [void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') [void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a') #endregion Import Assemblies #---------------------------------------------- #region Generated Form Objects #---------------------------------------------- [System.Windows.Forms.Application]::EnableVisualStyles() $formRDG_LOGS = New-Object 'System.Windows.Forms.Form' $labelNetBiosServerNameOrI = New-Object 'System.Windows.Forms.Label' $ServerName = New-Object 'System.Windows.Forms.TextBox' $RUN_LOG = New-Object 'System.Windows.Forms.Button' $groupbox2 = New-Object 'System.Windows.Forms.GroupBox' $EndDateCalen = New-Object 'System.Windows.Forms.DateTimePicker' $groupbox1 = New-Object 'System.Windows.Forms.GroupBox' $StartDateCalen = New-Object 'System.Windows.Forms.DateTimePicker' $ErrorProvider = New-Object 'System.Windows.Forms.ErrorProvider' $savefiledialog1 = New-Object 'System.Windows.Forms.SaveFileDialog' $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState' #endregion Generated Form Objects #---------------------------------------------- # User Generated Script #---------------------------------------------- $RUN_LOG_Click={ if ($ServerName.Text -eq "") { $ServerName.BackColor = [System.Drawing.Color]::FromArgb(255, 128, 128); $ErrorProvider.SetError($ServerName, "Введите имя или ip адрес") } if ($ServerName.Text -ne "") { $ErrorProvider.SetError($ServerName, "") $StartTime = Get-Date -Year $StartDateCalen.Value.ToString("yyyy") -Month $StartDateCalen.Value.ToString("MM") -Day $StartDateCalen.Value.ToString("dd") -Hour 00 -Minute 00 $EndTime = Get-Date -Year $EndDateCalen.Value.ToString("yyyy") -Month $EndDateCalen.Value.ToString("MM") -Day $EndDateCalen.Value.ToString("dd") -Hour 23 -Minute 59 $Events = Get-WinEvent -ComputerName $ServerName.Text -FilterHashtable @{ Logname = "Microsoft-Windows-TerminalServices-Gateway/Operational"; StartTime = $StartTime; EndTime = $EndTime; ID = 300, 302, 303 } $date = Get-Date -format yyyy-MM-dd $ArrayList = New-Object System.Collections.ArrayList Foreach ($Event in $Events) { [xml]$Xml = $Event.ToXml() $Row = "" | Select Username, TimeCreated, IPAddress $Row.Username = $Xml.Event.UserData.EventInfo.Username $Row.TimeCreated = $Event.TimeCreated.ToString() $Row.IPAddress = $Xml.Event.UserData.EventInfo.IpAddress [void]$ArrayList.Add($Row) } $savefiledialog1.FileName = "Export-Logs.csv" $savefiledialog1.Filter = "(*.csv)|*.csv" $savefiledialog1.ShowDialog() $ArrayList | Out-File $savefiledialog1.FileName } } # --End User Generated Script-- #---------------------------------------------- #region Generated Events #---------------------------------------------- $Form_StateCorrection_Load= { #Correct the initial state of the form to prevent the .Net maximized form issue $formRDG_LOGS.WindowState = $InitialFormWindowState } $Form_Cleanup_FormClosed= { #Remove all event handlers from the controls try { $RUN_LOG.remove_Click($RUN_LOG_Click) $formRDG_LOGS.remove_Load($Form_StateCorrection_Load) $formRDG_LOGS.remove_FormClosed($Form_Cleanup_FormClosed) } catch { Out-Null <# Prevent PSScriptAnalyzer warning #> } } #endregion Generated Events #---------------------------------------------- #region Generated Form Code #---------------------------------------------- $formRDG_LOGS.SuspendLayout() $groupbox2.SuspendLayout() $groupbox1.SuspendLayout() # # formRDG_LOGS # $formRDG_LOGS.Controls.Add($labelNetBiosServerNameOrI) $formRDG_LOGS.Controls.Add($ServerName) $formRDG_LOGS.Controls.Add($RUN_LOG) $formRDG_LOGS.Controls.Add($groupbox2) $formRDG_LOGS.Controls.Add($groupbox1) $formRDG_LOGS.AutoScaleDimensions = '6, 13' $formRDG_LOGS.AutoScaleMode = 'Font' $formRDG_LOGS.ClientSize = '432, 143' $formRDG_LOGS.FormBorderStyle = 'FixedSingle' $formRDG_LOGS.MaximizeBox = $False $formRDG_LOGS.Name = 'formRDG_LOGS' $formRDG_LOGS.StartPosition = 'CenterScreen' $formRDG_LOGS.Text = 'RDG_LOGS' # # labelNetBiosServerNameOrI # $labelNetBiosServerNameOrI.AutoSize = $True $labelNetBiosServerNameOrI.Location = '14, 15' $labelNetBiosServerNameOrI.Name = 'labelNetBiosServerNameOrI' $labelNetBiosServerNameOrI.Size = '138, 17' $labelNetBiosServerNameOrI.TabIndex = 4 $labelNetBiosServerNameOrI.Text = 'NetBios server name or ip:' $labelNetBiosServerNameOrI.UseCompatibleTextRendering = $True # # ServerName # $ServerName.Location = '154, 12' $ServerName.Name = 'ServerName' $ServerName.Size = '193, 20' $ServerName.TabIndex = 3 # # RUN_LOG # $RUN_LOG.Location = '171, 100' $RUN_LOG.Name = 'RUN_LOG' $RUN_LOG.Size = '106, 34' $RUN_LOG.TabIndex = 2 $RUN_LOG.Text = 'RUN_LOG' $RUN_LOG.UseCompatibleTextRendering = $True $RUN_LOG.UseVisualStyleBackColor = $True $RUN_LOG.add_Click($RUN_LOG_Click) # # groupbox2 # $groupbox2.Controls.Add($EndDateCalen) $groupbox2.Location = '220, 42' $groupbox2.Name = 'groupbox2' $groupbox2.Size = '200, 52' $groupbox2.TabIndex = 1 $groupbox2.TabStop = $False $groupbox2.Text = 'Конец' $groupbox2.UseCompatibleTextRendering = $True # # EndDateCalen # $EndDateCalen.Location = '7, 18' $EndDateCalen.Name = 'EndDateCalen' $EndDateCalen.Size = '187, 20' $EndDateCalen.TabIndex = 0 # # groupbox1 # $groupbox1.Controls.Add($StartDateCalen) $groupbox1.Location = '14, 42' $groupbox1.Name = 'groupbox1' $groupbox1.Size = '200, 52' $groupbox1.TabIndex = 0 $groupbox1.TabStop = $False $groupbox1.Text = 'Начало' $groupbox1.UseCompatibleTextRendering = $True # # StartDateCalen # $StartDateCalen.Location = '6, 19' $StartDateCalen.Name = 'StartDateCalen' $StartDateCalen.Size = '188, 20' $StartDateCalen.TabIndex = 0 # # ErrorProvider # $ErrorProvider.ContainerControl = $formRDG_LOGS # # savefiledialog1 # $groupbox1.ResumeLayout() $groupbox2.ResumeLayout() $formRDG_LOGS.ResumeLayout() #endregion Generated Form Code #---------------------------------------------- #Save the initial state of the form $InitialFormWindowState = $formRDG_LOGS.WindowState #Init the OnLoad event to correct the initial state of the form $formRDG_LOGS.add_Load($Form_StateCorrection_Load) #Clean up the control events $formRDG_LOGS.add_FormClosed($Form_Cleanup_FormClosed) #Show the Form return $formRDG_LOGS.ShowDialog() } #End Function #Call the form Show-MainForm_psf | Out-Null |
Опубликовал код на GitHub – https://github.com/Flammlin/RDG_LOGS