gpt4 book ai didi

sql-server - PowerShell:使用 Get-Credential 调用 sqlcmd 不起作用

转载 作者:行者123 更新时间:2023-12-03 21:48:32 24 4
gpt4 key购买 nike

我从未见过如此简单的脚本如此失败:

$SQLServer = "localhost"
$cred = Get-Credential
invoke-sqlcmd -ServerInstance $SQLServer -Credential $cred -Query "select @@version"

enter image description here

这句话说 -Credentials不被识别:
Invoke-Sqlcmd : A parameter cannot be found that matches parameter name 'Credential'.

那么拥有 Get-Credential 有什么意义? ?
我在互联网上看到很多例子,他们都是这样使用的。

编辑示例:为什么此代码适用于 -Credential ?因为 -Credential在函数内部?
function Pause ($Message="Press any key to continue..."){ 
""
Write-Host $Message
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}

function GetCompName{
$SQLServer = Read-Host "Please enter a computer name or IP"
CheckHost
}

function CheckHost{
$ping = gwmi Win32_PingStatus -filter "Address='$SQLServer'"
if($ping.StatusCode -eq 0){$pcip=$ping.ProtocolAddress; GetCollation}
else{Pause "Host $SQLServer down...Press any key to continue"; GetCompName}
}


function GetCollation {
#Provide Database Name
$DatabaseName ="master"
#Prompt for user credentials
$credential = Get-Credential

$Query = "SELECT name, collation_name FROM sys.databases; "

invoke-sqlcmd -ServerInstance $SQLServer -Database $DatabaseName -Credential $credential -Query $Query | Format-Table

}
#---------Start Main--------------
$SQLServer = $args[0]
if($SQLServer){CheckHost}
else{GetCompName}

最佳答案

该问题可能是由于 Microsoft 有两个版本的 Invoke-Sqlcmd 造成的。 :

  • The Database Engine - -Credentials范围。
  • The SqlServer module - -Credentials参数 可用的。

  • 看了你最近的几个 SO 问题 - 看起来你有 the Database Engine cmdlet 的版本。 the SqlServer module默认不安装, so you have to do it manually . (上一个超链接中有一个“注意”部分,解释了这个问题背后的一些历史)

    简而言之,运行以下命令以获取 the SqlServer module :
    Install-Module -Name SqlServer -AllowClobber

    确保包含 -AllowClobber转变。这是一个愚蠢的安装程序,如果您关闭开关,它将下载 ~24MB 的包,然后失败,因为它会覆盖数据库引擎版本。

    关于sql-server - PowerShell:使用 Get-Credential 调用 sqlcmd 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51622424/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com