Для начала упростите до
Get-Process | Where-Object {$_.ProcessName -eq '1cv8'}
Потом до
(Get-Process -PID $PID).SessionId
Убедитесь, что получаете вывод в обоих случаях
Третим этапом
Get-Process | Where-Object {$_.ProcessName -eq '1cv8'} | select si,sessionid
оба должны совпасть с выводом второй команды.
если всё работает - должна и заработать и ваша команда
Хотя, конечно, она крайне медленная и неоптимальная, потому что на каждый полученный процесс она делает (Get-Process -PID $PID).SessionId
так лучше
$si = (Get-Process -PID $PID).SessionId; Get-Process | Where-Object {($_.SI -eq $si) -and ($_.ProcessName -eq '1cv8')}