Командлет Enter-PSSession: имя пользователя с пробелом не работает - PullRequest
0 голосов
/ 17 февраля 2020

В PowerShell 6.2, используя командлет Enter-PSSession, у нас есть имя пользователя, например "Джон Грин".

Здесь возникает ошибка:

PS C:\> Enter-PSSession -Hostname 192.168.1.1 -Username "John Green" -SSHTransport
Enter-PSSession : The background process reported an error with the following message: The SSH client session has ended with error message: ssh: Could not resolve hostname john: No such host is known. .
At line:1 char:1
+ Enter-PSSession -Hostname 192.168.1.1 -Username "John Green" -SSHTra ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ResourceUnavailable: (:) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : System.Management.Automation.Remoting.PSRemotingDataStructureException,Microsoft.PowerShell.Commands.EnterPSSessionCommand

Теперь рабочий пример с " John.Green "(пробел заменен точкой).

PS C:\> Enter-PSSession -Hostname  192.168.1.1 -Username "John" -SSHTransport
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is <snip>.
Are you sure you want to continue connecting (yes/no)?

Команда Linux like также выдает ошибку в PowerShell:

PS C:\> ssh "John Green"@192.168.1.1
At line:1 char:22
+ ssh "John Green"@192.168.1.1
+                      ~
Missing property name after reference operator.
At line:1 char:17
+ ssh "John Green"@192.168.1.1
+                 ~~~~
The splatting operator '@' cannot be used to reference variables in an expression. '@192' can be used only as an
argument to a command. To reference variables in an expression use '$192'.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingPropertyName

Вопросы:

  1. Как имя пользователя с пробелом можно использовать с такими командлетами?
  2. Если это невозможно, в PowerShell, как запустить сеанс S SH с именем пользователя, содержащим пробел?

1 Ответ

0 голосов
/ 18 февраля 2020

Благодаря @LarrySong ответы на S SH:

ssh "John Green@192.168.1.1"

Другие предложенные форматы не работают.

Следующая команда работает в PowerShell (без ошибки на стороне клиента ) но поскольку он заменяет пробел на «% 20», имя пользователя недопустимо на стороне сервера.

Enter-PSSession -Hostname "John Green@192.168.1.1" -SSHTransport
John%20Green@192.168.1.1's password:
Enter-PSSession : The background process reported an error with the following message: The SSH client session has ended with error message: Permission denied, please try again..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...