VS Code PowerShell Remote Session ищет локальный профиль - PullRequest
0 голосов
/ 19 июня 2020

Я использую VS Code 1.46.1 на Windows 10 с расширением PowerShell 2020.6.0. Среди других настроек я установил

[...]
"terminal.integrated.shell.windows": C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"powershell.enableProfileLoading": true,
[...]

в VS Code.

Теперь, когда я использую интегрированную консоль PowerShell для установки sh удаленного сеанса PS с помощью следующей команды

Enter-PSSession -computername ABC.domain.com -Credential (Get-Credential) -Authentication CredSSP

Сессия PS успешно установлена, однако, как только я ввожу первую команду, удаленный сеанс зацикливает следующую ошибку, пока я не нажму CTRL + C:

The term 'C:\Users\UserOnClient\Documents\WindowsPowerShell\Microsoft.VSCode_profile.ps1' is not recognized as the name of a cmdlet, function, script file, or operable 
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    + CategoryInfo          : ObjectNotFound: (C:\Users\FelTie...ode_profile.ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Из показанного пути я знаю, что он должен исходить от клиента, который устанавливает удаленный сеанс. Это происходит на различных удаленных компьютерах, но не происходит при установлении сеанса PS с обычного PS или PS ISE.

Я могу решить проблему, установив

[...]
"powershell.enableProfileLoading": false,
[...]

, однако я полагаюсь в моем профиле, загружаемом на мой локальный P C.

Итак, я предположил, что проблема должна быть связана с загрузкой профиля интегрированной консолью при запуске (удаленный сеанс), поэтому я добавил

    "terminal.integrated.shellArgs.windows": "-NoProfile",

в настройки VS Code.

Но это не имеет никакого значения.

Я также мог видеть это после того, как установил удаленное соединение с помощью «powershell .enableProfileLoading ": false, когда я установил (включил) флажок для этого параметра в Настройках- GUI кода VS, сообщения об ошибках в удаленном сеансе сразу же запустились снова.

Любые идеи, почему это происходит приветствуется.

С уважением, Феликс

1 Ответ

0 голосов
/ 30 июня 2020

У меня была аналогичная проблема при использовании интегрированной консоли PowerShell в сочетании с *-PSSession или Invoke-Command.

Есть параметр, который вы можете отключить, называемый powershell.integratedConsole.showOnStartup, который по умолчанию установлено значение true.

Когда это true, оболочка по умолчанию при запуске - Интегрированная консоль PowerShell , которая использует $ENV:UserProfile\Documents\WindowsPowerShell\Microsoft.VSCode_profile.ps1 в качестве своего профиля. (вот где у меня это не получилось)

Когда это false, вы больше не используете интегрированную консоль PowerShell и, таким образом, $profile возвращается к $ENV:UserProfile\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1. Используя этот профиль, я могу выполнять команды удаленно, не вызывая никаких исключений, связанных с файлом [profile].

Ничего не стоит, что вы также можете добавить новый терминал, используя +. Предполагая, что PowerShell является вашей оболочкой по умолчанию, она должна запустить новую консоль, которая использует Microsoft.PowerShell_profile.ps1 в качестве профиля.

Ура!

...