На Debian 11 я установил PowerShell 7.3.0. Я проверяю, могу ли я запускать команды на удаленном компьютере Windows. Это простой пример для получения имени хоста удаленного компьютера.
#!/usr/bin/env pwsh
$username = "Administrator"
$password = "passgoeshere"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $user, $secureStringPwd
Invoke-Command -ComputerName 192.168.xxx.xxx -Credential $cred -ScriptBlock { hostname }
Проблема в том, что при запуске этого скрипта мне все равно предлагается ввести имя пользователя и пароль.
PowerShell credential request
Enter your credentials.
User:
Проблема не в учетных данных, потому что когда я ввожу их вручную, мне выдается имя хоста удаленного компьютера.
Я думаю, это как-то связано со способом, которым PowerShell в Linux считывает учетные данные.
Что можно сделать, чтобы скрипт не запрашивал имя пользователя/пароль?
правка: проблема была в опечатке
решение1
в сценарии была опечатка
решение2
Ваш скрипт в порядке. Измените переменную $username на $user
Я использовал "Invoke-VMSscript"
$пользователь = "root"
$password = "P@ssword"
$secureStringPwd = $password | ConvertTo-SecureString -AsPlainText -Force
$cred = Новый-Объект System.Management.Automation.PSCredential -ArgumentList $user, $secureStringPwd
Invoke-VMScript -VM My_VM -ScriptText "имя_хоста" -GuestCredential $cred -ScriptType Bash
ScriptOutput
-----------------------------------------------------------------------------------------------------------------------| My_VM
|
-----------------------------------------------------------------------------------------------------------------------