У меня есть Power Shell версии 4.0 под Windows Server 2012 .. Теперь я запускаю следующую команду powershell:-

$admin = "domain\user"
$pwd = "*****" | ConvertTo-SecureString -asPlainText -Force
$LiveCred = New-Object System.Management-Automation.PSCredential($admin, $pwd)

Invoke-Command -ComputerName **** -Credential $LiveCred {Get-VM}

но я получил эту ошибку:-

New-Object : Cannot find type [System.Management-Automation.PSCredential]: verify that the assembly containing this
type is loaded.

поэтому я обновил свой скрипт powershell следующим образом:

add-pssnapin System.Management-Automation;
$admin = "domain\user"
$pwd = "*****" | ConvertTo-SecureString -asPlainText -Force
$LiveCred = New-Object System.Management-Automation.PSCredential($admin, $pwd)

Invoke-Command -ComputerName **** -Credential $LiveCred {Get-VM}

Но я получил эту ошибку вместо:-

add-pssnapin : The Windows PowerShell snap-in 'System.Management-Automation' is not installed on this computer.
At line:1 char:1
+ add-pssnapin System.Management-Automation;

так что кто-нибудь может посоветовать, что является причиной вышеуказанных 2 ошибок?

Второй вопрос: есть ли более простой способ передачи пароля внутри Invoke-Command ? Теперь я могу передать имя пользователя следующим образом: -

Invoke-Command -ComputerName **** -Credential domain\username {Get-VM}

но не уверен, смогу ли я передать пароль таким же образом?

Спасибо

1 ответ1

0

У вас есть дефис, где вы должны иметь точку. Там нет класса System.Management-Automation , это System.Management.Automation:

$LiveCred = New-Object System.Management.Automation.PSCredential($admin, $pwd)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .