#Requires -RunAsAdministrator $ErrorActionPreference = 'Continue' $dte = New-Object -ComObject TcXaeShell.DTE.17.0 $dte.MainWindow.Visible = $true try { $dte.SuppressUI = $false } catch {} $dte.Solution.Open('C:\Users\tonycao\work\twincat3-auto-cli\TwinCAT_EL6695_Primary_2kHz\TwinCATProject1.sln') Start-Sleep 25 $sm = $null for ($i = 0; $i -lt 20; $i++) { try { $sm = $dte.Solution.Projects.Item(1).Object; if ($sm) { break } } catch {} Start-Sleep 3 } if (-not $sm) { Write-Host 'no sysmgr'; exit 1 } $root = $sm.QueryTreeItems('') Write-Host "root: '$($root.Name)' path='$($root.PathName)' cc=$($root.ChildCount)" for ($j = 1; $j -le [int]$root.ChildCount; $j++) { $ch = $root.Child($j) Write-Host "[$j] '$($ch.Name)' path='$($ch.PathName)' cc=$($ch.ChildCount)" for ($k = 1; $k -le [int]$ch.ChildCount; $k++) { $g = $ch.Child($k) Write-Host " - '$($g.Name)' path='$($g.PathName)' cc=$($g.ChildCount)" } }