Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $local:reportElementList = @()
- foreach ($local:computer in $local:ComputerList)
- {
- $local:reportElement = New-Object -TypeName 'PSObject' -Property @{
- 'ComputerName' = $local:computer.DNSHostName;
- 'ReportData' = $null;
- 'Exception' = $null;
- }
- try {
- $local:reportElement.ReportData = Invoke-Command -ErrorAction Stop -ComputerName $local:reportElementList.ComputerName -ScriptBlock {
- <# SCRIPTBLOCK BEGIN #>
- $local:reportCollection = @()
- $local:instanceList = @(<# Как ты там инстансы получаешь #> )
- $local:wmiComputer = Get-WmiObject -Class 'Win32_ComputerSystem' -ErrorAction Stop
- $local:hardwareData = @{
- 'HostName' = $env:COMPUTERNAME
- 'TotalPhysicalMemory' = $local:wmiComputer.TotalPhysicalMemory
- 'NumberOfLogicalProcessors' = $local:wmiComputer.NumberOfLogicalProcessors
- <# ..... #>
- }
- foreach ($local:instance in $local:instanceList)
- {
- $local:instanceData = @{
- 'Instance' = 'SampleInstance'<# ... как ты там данные по инстансу берешь #>
- 'Version' = 'SampleVersion'<# ... как ты там данные по инстансу берешь #>
- <# ..... #>
- }
- $local:reportCollectionItem = New-Object -TypeName 'PSObject' -Property ($local:hardwareData + $local:instanceData) -ErrorAction Stop
- $local:reportCollection += @( $local:reportCollectionItem )
- }
- return $local:reportCollection;
- <# SCRIPTBLOCK END #> }
- }
- catch
- {
- $local:reportElement.Exception = $_.Exception
- }
- $local:reportElementList += @( $local:reportElement )
- }
- # ВЫВОД
- # Все компы где не удалось получить данные или при получении были ошибки
- $local:reportElementList |
- Where-Object { $_.Exception -ne $null } |
- Select-Object @('ComputerName', 'Exception') |
- Out-GridView
- # Все компы где удалось получить данные, но инстансов было найдено 0
- $local:reportElementList |
- Where-Object { $_.Exception -eq $null } |
- Where-Object { ( $_.ReportData -eq $null ) -or ($_.ReportData.Count -eq 0) } |
- Select-Object @('ComputerName') |
- Out-GridView
- # Все компы где удалось получить данные, но инстансов было найдено больше 0
- $local:reportElementList |
- Where-Object { $_.Exception -eq $null } |
- Where-Object { ( $_.ReportData -ne $null ) -or ($_.ReportData.Count -gt 0) } |
- ForEach-Object { return $_.ReportData } |
- Select-Object * |
- Out-GridView
Advertisement
Add Comment
Please, Sign In to add comment