þÿAdd-PSSnapin Quest.ActiveRoles.ADManagement [reflection.assembly]::LoadWithPartialName( "System.Windows.Forms") $slastTime = @() #Get DC list $dcs = Get-QADComputer -ComputerRole DomainController # Create the form $form = New-Object Windows.Forms.Form $form.Size = New-Object Drawing.Point 480,400 #Set the dialog title $form.text = "Get last user or Computer Logon Time" # Create the label control and set text, size and location $lsearch = New-Object Windows.Forms.Label $lsearch.Location = New-Object Drawing.Point 10,10 $lsearch.Size = New-Object Drawing.Point 110,15 $lsearch.text = "ObjectName:" $objsName = New-Object Windows.Forms.TextBox $objsName.Location = New-Object Drawing.Point 150,10 $objsName.Size = New-Object Drawing.Point 250,18 #-------------------------------------------------------- $radio1 = New-Object Windows.Forms.RadioButton $radio1.Location = New-Object Drawing.Point 150,35 $radio1.Size = New-Object Drawing.Point 70,18 $radio1.Text = "User" $radio1.Checked = $true $radio2 = New-Object Windows.Forms.RadioButton $radio2.Location = New-Object Drawing.Point 230,35 $radio2.Size = New-Object Drawing.Point 100,18 $radio2.Text = "Computer" #-------------------------------------------------------- $lrez = New-Object Windows.Forms.Label $lrez.Location = New-Object Drawing.Point 10,60 $lrez.Size = New-Object Drawing.Point 110,18 $lrez.text = "Last logon time:" $objsRez = New-Object Windows.Forms.TextBox $objsRez.Location = New-Object Drawing.Point 150,60 $objsRez.Size = New-Object Drawing.Point 250,18 #-------------------------------------------------------- $progress = New-Object Windows.Forms.ProgressBar $progress.Location = New-Object Drawing.Point 30,90 $progress.Size = New-Object Drawing.Point 400,18 $progress.Minimum = 0 $progress.Maximum = $dcs.count #-------------------------------------------------------- $ferr = New-Object Windows.Forms.Label $ferr.Location = New-Object Drawing.Point 30,110 $ferr.Size = New-Object Drawing.Point 400,18 # Create the label control and set text, size and location $ltxt = New-Object Windows.Forms.Label $ltxt.Location = New-Object Drawing.Point 10,130 $ltxt.Size = New-Object Drawing.Point 90,18 $ltxt.text ="Log:" $lftxt = New-Object Windows.Forms.TextBox $lftxt.Location = New-Object Drawing.Point 100,130 $lftxt.Multiline = $true $lftxt.Size = New-Object Drawing.Point 350, 200 # Create Button and set text and location $button = New-Object Windows.Forms.Button $button.text = "Find:" $button.Location = New-Object Drawing.Point 10,190 # Set up event handler to extarct text from TextBox and display it on the Label. $button.add_click({ $ferr.text = "Working..." $ferr.ForeColor = "Black" $lftxt.text = "" $form.Refresh ($radio1.Checked -eq $true) if ($radio1.Checked -eq $true){$user = Get-QADUser -SamAccountName $objsName.text} else {$user = Get-QADComputer -Name $objsName.text} if ($user -eq $null) { $ferr.text = "not found"; return } $a = 1; $terror = $null foreach ($dc in $dcs) { $progress.value = $a $lftxt.text+= $dc.Name + " " $lasttime = $null try { if ($radio1.Checked -eq $true){$lasttime = (Get-QADUser -Service $dc.Name -SamAccountName $objsName.text -includedproperties lastlogon).LastLogon} else {$lasttime = (Get-QADComputer -Service $dc.Name -Name $objsName.text -includedproperties lastlogon).LastLogon} } catch { $terror += $dc.Name; $terror += " "; } if ($lasttime -eq $null) { $lftxt.text += "X `r`n" } else { $lftxt.text += $lasttime.toString(); $lftxt.text+="`r`n";$slastTime += $lasttime } $a+=1 } if ($slasttime.count -eq 1) { $objsRez.text = $slasttime[0].toString() } else{ $slasttime = $slasttime | sort-object -desc $objsRez.text = $slasttime[0].toString() } if ($error -eq $null) {$ferr.text = "Finished" } else { $ferr.text = "Finished, rrror while connect to: " + $terror $ferr.ForeColor = "Red" } #$lftxt.text = "found" #$form.close() }) # Create Button and set text and location $Abutton = New-Object Windows.Forms.Button $Abutton.text = "B<5=0" $Abutton.Location = New-Object Drawing.Point 10,220 # Set up event handler to extarct text from TextBox and display it on the Label. $Abutton.add_click({$form.close()}) # Add the controls to the Form $form.controls.add($lsearch) $form.controls.add($objsName) $form.controls.add($lrez) $form.controls.add($objsRez) $form.controls.add($lftxt) $form.controls.add($ltxt) $form.controls.add($button) $form.controls.add($progress) $form.controls.add($ferr) $form.controls.add($radio1) $form.controls.add($radio2) #ForeColor = [Syste.Drawing.Color]::FromArgb() $form.ShowDialog()