Читаю список инцидентов
нужен совет по ускорению
Выделенная строка работает медленно - около 22 сек для каждого инцидента; все остальное более-менее быстро
Кто знает, как в оператор Get-SCSMClassInstance список подставить?
1.
Get-SCSMClassInstance -Class $irClass | Where {$_.Id -eq "$Incident"}
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.
param ($Incidents)
$Incidents = $Incidents.Split(",")
$InstallConfig = 'HKLM:\SOFTWARE\Microsoft\System Center\2010\Service Manager\Setup'
if(Test-Path $InstallConfig)
{
$SCSMModule = (Get-ItemProperty -Path $InstallConfig -Name InstallDirectory).InstallDirectory + "Powershell\System.Center.Service.Manager.psd1"
Import-Module -Name $SCSMModule -Global
$SCSMDWModule = (Get-ItemProperty -Path $InstallConfig -Name InstallDirectory).InstallDirectory + "Microsoft.EnterpriseManagement.Warehouse.Cmdlets.psd1"
Import-Module -Name $SCSMDWModule -Global
}
else
{
throw "ERROR: Could not locate one, or both, Service Manager PowerShell modules."
}
$SCSMConfig = 'HKCU:\Software\Microsoft\System Center\2010\Service Manager\Console\User Settings'
$SCSMMS = (Get-ItemProperty -Path $SCSMConfig).SDKServiceMachine
New-SCManagementGroupConnection -ComputerName $SCSMMS
$irClass = Get-SCSMClass -DisplayName "Incident"
$relClass = Get-SCSMRelationshipClass -Name System.WorkItem.TroubleTicketHasActionLog -ComputerName $SCSMMS
ForEach ($Incident in $Incidents) {
Write-Host $Incident
$IR = Get-SCSMClassInstance -Class $irClass | Where {$_.Id -eq "$Incident"}
$relObjects = Get-SCSMRelatedObject -SMObject $IR -Relationship $relClass -ComputerName $SCSMMS
ForEach ($relObject in $relObjects) {
$Comments = $relObject.UserComment
$CsvDetails = @{
Comments = $Comments
Description = $IR.Description
Title = $IR.Title
ID = $IR.Id
}
$objList = @()
$objList += New-Object PSObject -Property $CsvDetails
}
$objList | Export-Csv -Path "c:\temp\SCSM - IR Comments\Test.csv" -NoType -Append
}