Проблема с enter-pssession: «Не найден позиционный параметр, принимающий аргумент» - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь настроить PS Remoting / Win-RM и получить следующее:

$primary = 'server1'
$user = $env:UserName
$admUser = Get-Credential -UserName "domain\adm-$user" -Message 'Enter your *ADMIN* password:'

Enter-PSSession -ComputerName $primary -Credential $admUser {
  hostname
}

Однако это возвращает следующую ошибку (я проверил это с консоли, и она работаетчто-то не так с моим сценарием):

Windows PowerShell credential request.
Enter your *ADMIN* password:
Password for user domain\adm-user1: ***************

Enter-PSSession : A positional parameter cannot be found that accepts argument '
hostname
'.
At line:5 char:1
+ Enter-PSSession  -ComputerName $primary -Credential $admUser {
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Enter-PSSession], ParameterBindingException
    + FullyQualifiedErrorId :PositionalParameterNotFound,Microsoft.PowerShell.Commands.EnterPSSessionCommand

Что я делаю не так?Заранее спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Enter-PSSession открывает консольное соединение с удаленной системой.

Если вы хотите выполнить команду на удаленной системе, вам следует использовать Invoke-Command.

ТакжеВы всегда должны передавать блоки сценариев в некоторый параметр на 100% (за исключением некоторых крайних случаев, когда это принимается по умолчанию).В этом случае нам нужно использовать -Scriptblock.

Пример:

Invoke-Command -ComputerName $primary -Credential $admUser -ScriptBlock {
    hostname
}

или

$session = New-PSSession -ComputerName $primary -Credential $admUser

Invoke-Command -Session $session -ScriptBlock {hostname}

Invoke-Command -Session $session -ScriptBlock {$env:USERNAME}

Disconnect-PSSession -Session $session
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...