Invoke-Command с учетными данными - PullRequest
0 голосов
/ 26 апреля 2018

Я выполняю метод Invoke Command с использованием powershell, и мне нужно знать, как вводить учетные данные в сценарий.Например, на данный момент у меня есть:

Invoke-Command -ComputerName 0.0.0.0 -ScriptBlock { Get-Command }

Но мне нужно добавить учетные данные все в одном.Мне это нужно так, чтобы он не просил меня вводить учетные данные, он просто берет их из сценария.Ищите что-то вроде этого:

Invoke-Command -ComputerName 0.0.0.0 -ScriptBlock { Get-Command } -Credential username ,password

Это мой контекст:

private void button1_Click(object sender, EventArgs e) {
    try {
        richTextBox1.Clear();
        if (RunRemotely == true) {
            richTextBox1.Text = RunScript("Invoke-Command -ComputerName" + richTextBox3.Text + " -ScriptBlock { " + richTextBox2.Text + "} -Credential $cred");
        } else {
            richTextBox1.Text = RunScript(richTextBox2.Text);
        }
    } catch (Exception error) {
        richTextBox1.Text += String.Format("\r\nError in script : {0}\r\n", error.Message);
    }
}

Я пытался:

private void button1_Click(object sender, EventArgs e) {
    try {
        richTextBox1.Clear();
        if (RunRemotely == true) {
            $username = 'foo'
            $password = 'bar'
            $secpw = ConvertTo - SecureString $password - AsPlainText - Force
            $cred = New - Object** Management.Automation.PSCredential($username, $secpw)

            richTextBox1.Text = RunScript("Invoke-Command -ComputerName" + richTextBox3.Text + " -ScriptBlock { " + richTextBox2.Text + "} -Credential $cred");
        } else {
            richTextBox1.Text = RunScript(richTextBox2.Text);
        }
    } catch (Exception error) {
        richTextBox1.Text += String.Format("\r\nError in script : {0}\r\n", error.Message);
    }
}

При этом:

$username = 'foo'
$password = 'bar'

$secpw = ConvertTo - SecureString $password - AsPlainText - Force
$cred = New - Object Management.Automation.PSCredential($username, $secpw)

В нем говорится, что имя пользователя не существует в текущем контексте.

1 Ответ

0 голосов
/ 26 апреля 2018

Создайте объект PSCredential из имени пользователя и пароля и передайте его параметру -Credential.

$username = 'foo'
$password = 'bar'

$secpw = ConvertTo-SecureString $password -AsPlainText -Force
$cred  = New-Object Management.Automation.PSCredential ($username, $secpw)

Invoke-Command ... -Credential $cred
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...