Как запустить Set-SqlNetworkConfiguration с учетными данными текущего пользователя - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь использовать Set-SqlNetworkConfiguration для установки порта TCP экземпляра SQL Server. Команда выглядит так:

Set-SqlNetworkConfiguration -Protocol TCP -Port 1433 -ServerInstance $ENV:ComputerName\SQLSERVER

Однако команда запрашивает учетные данные с помощью графического интерфейса. Есть параметр -Credential, но примеры, которые я нашел, используют Get-Credential, который, опять же, показывает приглашение интерфейса.

Как запустить Set-SqlNetworkConfiguration с учетными данными текущего пользователя без с отображением любых приглашений GUI и без жесткого кодирования учетных данных в сценарии? У меня нет абсолютно никакой необходимости явно устанавливать имя пользователя и пароль; текущий пользователь имеет права администратора для данного экземпляра SQL Server.

Ответы [ 2 ]

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

Я сделал функцию для установки объекта учетных данных для таких случаев.

function Set-Credentials 
{
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory = $true,ValueFromPipeline = $true,Position = 0)][ValidateNotNull()][String]$UserName,
        [Parameter(Mandatory = $false,ValueFromPipeline = $true,Position = 1)][ValidateNotNull()][String]$UserPassword
    )
    if (-not$UserPassword)
    {
        $Password = Read-Host -Prompt "Specify password for $UserName" -AsSecureString
    }
    else
    {
        $Password = (ConvertTo-SecureString -String $UserPassword -AsPlainText -Force)
    }
    $Credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList @($UserName, $Password)
    Write-Output -InputObject $Credentials
}

Пример использования:

Set-SqlNetworkConfiguration -Protocol TCP -Port 1433 -ServerInstance $ENV:ComputerName\SQLSERVER -Credentials $(Set-Credentials -UserName UserName -UserPassword UserPassword)
0 голосов
/ 03 сентября 2018

Я регулярно выполняю автоматическую установку SQL, и установщик SQL-сервера устанавливает для параметров TCP по умолчанию значение 1433 для каждого созданного экземпляра. Поэтому не нужно делать это вручную, если вы по какой-либо причине не меняете его на другой номер порта.

Я понимаю, что это ни здесь, ни там, и каковы ваши цели, но как быстрая проверка работоспособности на одном из моих SQL-серверов в одной из моих лабораторий, похоже, что это именно так.

Конечно, вы можете установить файл учетных данных ...

https://www.jaapbrasser.com/quickly-and-securely-storing-your-credentials-powershell

... или диспетчер учетных данных Windows ...

Доступ к диспетчеру учетных данных Windows из PowerShell

... перед установкой SQL и вызовите оттуда кредиты. Я знаю, не то, что вам нужно, но, похоже, это единственный вариант, основанный на моем недавнем тестировании, и это не только этот командлет. Это происходит через командлеты.

Например ...

Get-SqlInstance -MachineName $ENV:ComputerName

… также выдаст запрос, если только вы не передадите кредиты из хранилища, либо через XML-файл, либо через диспетчер учетных данных Windows, что я и использую в своих сеансах установки и PSRemoting во время и в режиме онлайн. Тем не менее, вы должны получить запрос хотя бы один раз.

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