Одиночная кавычка в powershell является буквальным.Итак, во втором случае вы явно хотите соответствовать "$ idnum" .Поскольку у вас есть двойные кавычки в ваших данных, вам нужно обойти их.
Опции Вы можете создать двойные кавычки, чтобы обойти это
Get-Content $CsvFile | Select-String "^""$idnum"""
Или вы можете отформатировать строковую замену следующим образом:
Get-Content $CsvFile | Select-String ('^"{0}"' -f $idnum)
Или вы можете обновить $ idnum, добавив в него двойные кавычки, и тогда вызов строки выбора будет намного проще читать
$idnum = '"555555"'
Get-Content $CsvFile | Select-String "^$idnum"