############################## #1.1 => Add CreationTime for PortInUse FilePath #1.2 => Show the owning process of the PortInUse file $PortInUse=0 $OutputFile="output.txt" $Version="1.2" "Script Version: $Version" | Tee-Object -FilePath $OutputFile '1. List all Eikon processes' | Tee-Object -FilePath $OutputFile -Append '===========================' | Tee-Object -FilePath $OutputFile -Append Get-Process -Name Eikon* | Tee-Object -FilePath $OutputFile -Append $EikonProcesses = Get-Process -name "Eikon*" | Select-Object Name | Get-Unique -AsString Foreach ($Obj in $EikonProcesses){ $Process = $Obj."Name" $EXEFile = "$Process.exe" "Process: $EXEFile" | Tee-Object -FilePath $OutputFile -Append Get-WmiObject Win32_Process -Filter "name = '$EXEFile'" | Select-Object ProcessId, CommandLine | Format-Table -AutoSize -Wrap | Tee-Object -FilePath $OutputFile -Append } '' | Tee-Object -FilePath $OutputFile -Append '2. List all listening ports of Eikon processes' | Tee-Object -FilePath $OutputFile -Append '==============================================' | Tee-Object -FilePath $OutputFile -Append Get-NetTCPConnection -state Listen -OwningProcess (Get-Process -name Eikon*).Id | Select-Object -Property LocalAddress, LocalPort, State, OwningProcess | Tee-Object -FilePath $OutputFile -Append '' | Tee-Object -FilePath $OutputFile -Append '3. Check portInUse file' | Tee-Object -FilePath $OutputFile -Append '=======================' | Tee-Object -FilePath $OutputFile -Append If((Test-Path "$ENV:APPDATA\Thomson Reuters\Eikon API Proxy\.portInUse") -eq $True){ "$ENV:APPDATA\Thomson Reuters\Eikon API Proxy\.portInUse is found" | Tee-Object -FilePath $OutputFile -Append Get-Item "$ENV:APPDATA\Thomson Reuters\Eikon API Proxy\.portInUse" | Select-Object -Property CreationTimeUtc, LastAccessTimeUTc, LastWriteTimeUtc | Format-Table -AutoSize -Wrap | Tee-Object -FilePath $OutputFile -Append $PortInUse = Get-Content -Path "$ENV:APPDATA\Thomson Reuters\Eikon API Proxy\.portInUse" Get-Content -Path "$ENV:APPDATA\Thomson Reuters\Eikon API Proxy\.portInUse" | Tee-Object -FilePath $OutputFile -Append }ElseIf((Test-Path "$ENV:APPDATA\Thomson Reuters\Eikon Scripting Proxy\.portInUse") -eq $True){ "$ENV:APPDATA\Thomson Reuters\Eikon API Proxy\.portInUse is not found" | Tee-Object -FilePath $OutputFile -Append "$ENV:APPDATA\Thomson Reuters\Eikon Scripting Proxy\.portInUse is found" | Tee-Object -FilePath $OutputFile -Append Get-Item "$ENV:APPDATA\Thomson Reuters\Eikon Scripting Proxy\.portInUse" | Select-Object -Property CreationTimeUtc, LastAccessTimeUTc, LastWriteTimeUtc | Format-Table -AutoSize -Wrap | Tee-Object -FilePath $OutputFile -Append $PortInUse = Get-Content -Path "$ENV:APPDATA\Thomson Reuters\Eikon Scripting Proxy\.portInUse" Get-Content -Path "$ENV:APPDATA\Thomson Reuters\Eikon Scripting Proxy\.portInUse" | Tee-Object -FilePath $OutputFile -Append }Else{ "$ENV:APPDATA\Thomson Reuters\Eikon Scripting Proxy\.portInUse is not found" | Tee-Object -FilePath $OutputFile -Append } If( $PortInUse -ne 0){ '' | Tee-Object -FilePath $OutputFile -Append "4. Verify the connection to TCP Port: $PortInUse" | Tee-Object -FilePath $OutputFile -Append '======================================' | Tee-Object -FilePath $OutputFile -Append try{ "Check owning process of $PortInUse" | Tee-Object -FilePath $OutputFile -Append Get-NetTCPConnection -LocalPort "$PortInUse" | Select-Object -Property LocalAddress, LocalPort, State, OwningProcess | Format-Table -AutoSize -Wrap | Tee-Object -FilePath $OutputFile -Append }catch{ "Exception: $_" | Tee-Object -FilePath $OutputFile -Append } try{ $StatusCode = (Invoke-WebRequest -Uri "http://127.0.0.1:$PortInUse/sxs/v1" -Method GET).StatusCode "GET: http://127.0.0.1:$PortInUse/sxs/v1 => Status Code: $StatusCode" | Tee-Object -FilePath $OutputFile -Append }catch{ "GET: http://127.0.0.1:$PortInUse/sxs/v1" | Tee-Object -FilePath $OutputFile -Append "Exception: $_" | Tee-Object -FilePath $OutputFile -Append } try{ $StatusCode = (Invoke-WebRequest -Uri "http://127.0.0.1:$PortInUse/ping" -Method GET).StatusCode "GET: http://127.0.0.1:$PortInUse/ping => Status Code: $StatusCode" | Tee-Object -FilePath $OutputFile -Append }catch{ "GET: http://127.0.0.1:$PortInUse/ping" | Tee-Object -FilePath $OutputFile -Append "Exception: $_" | Tee-Object -FilePath $OutputFile -Append } try{ $StatusCode = ( Invoke-WebRequest -Uri "http://127.0.0.1:$PortInUse/api/v1/data" -Method POST).StatusCode "POST: http://127.0.0.1:$PortInUse/api/v1/data => Status Code: $StatusCode" | Tee-Object -FilePath $OutputFile -Append }catch{ "POST: http://127.0.0.1:$PortInUse/api/v1/data" | Tee-Object -FilePath $OutputFile -Append "Exception: $_" | Tee-Object -FilePath $OutputFile -Append } }