Avatar of Albert Widjaja
Albert Widjaja
Flag for Australia asked on

Modifying PowerShell script to export to .CSV for the computer within specific OU

People,

Can anyone here please assist me in modifying the below powershell script so that it can be exported to CSV script for easy sorting ?

# This script shows the last time that a successfull Windows Update was installed.
cls
add-PSSnapin quest.activeroles.admanagement
$OnlineServers = @()

Get-QADComputer -SearchRoot 'domain.com/Terminal Servers/Production 1' -OSName "Windows*Server*" | where {$_.accountisdisabled -eq $false} | % {
  
  $PingResult = Get-WmiObject -Query "SELECT * FROM win32_PingStatus WHERE address='$($_.Name)'"
  
  If ($PingResult.StatusCode -eq 0) {
     # Add the current name to the array
    $OnlineServers += "$($_.Name)"
  }
}

foreach ($Server in $OnlineServers ) {
		$key = "SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install"
		$keytype = [Microsoft.Win32.RegistryHive]::LocalMachine
		$RemoteBase = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($keytype,$Server)
		$regKey = $RemoteBase.OpenSubKey($key)
		$KeyValue = $regkey.GetValue("LastSuccessTime")
	
		$System = (Get-Date -Format "yyyy-MM-dd hh:mm:ss") 
			
		if	($KeyValue -lt $System)	{
			Write-Host " "
			Write-Host $Server "Last time updates were installed was: " $KeyValue
		}
}

Open in new window


Note:

Feel free to replace the Get-QADComputerr with the builtin Get-ADComputerAccount and use Test-Connection instead of the existing convoluted way of doing it.

Ideally the exported result can just be:

ComputerName, last time windows updated, what KBnumber applied if possible.

Thanks in advance,
PowershellActive DirectoryScripting Languages

Avatar of undefined
Last Comment
Albert Widjaja

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
footech

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Albert Widjaja

ASKER
Foo,

Somehow it is failed with empty CSV result file and the below error message:

New-Object : A parameter cannot be found that matches parameter name 'properties'.
At C:\Users\Admin\AppData\Local\Temp\54d4cccd-5dae-4265-9685-9782db9edfe3.ps1:25 char:24
+             New-Object PsObject -properties @{
+                                 ~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

Open in new window

SOLUTION
footech

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Albert Widjaja

ASKER
You are awesomely cool Foo :-)
thank you.
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck