В 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
Вопросы:
- Как имя пользователя с пробелом можно использовать с такими командлетами?
- Если это невозможно, в PowerShell, как запустить сеанс S SH с именем пользователя, содержащим пробел?