powershell-3.0 - Invoke-Sqlcmd:无法验证参数“用户名”上的参数。参数为 null 或为空
问题描述
我有一个中央服务器,其中存储了所有服务器详细信息及其凭据。我正在使用查询获取服务器名称及其登录名和密码,并从远程 SQL 服务器获取结果。我能够获取结果,但它会在 Powershell 输出中引发错误。
PS脚本:
$computers=Get-Content "$MyDir\$Role-serverlist.txt";
ForEach($a in $computers)
{
$Login= (Invoke-SqlCmd -ServerInstance $Server -Username "abc" -Password "defg" -Database $Database -Query "select username")
$Password=(Invoke-SqlCmd -ServerInstance $Server -Username "abc" -Password "defg" -Database $Database -Query "select Password")
$Result = (Invoke-SqlCmd -ServerInstance $a -Username "$Login" -Password "$Password" -Database master -Query "$Query")
$Result
}
错误:
Invoke-Sqlcmd:无法验证参数“用户名”上的参数。参数为 null 或空。提供一个不为 null 或空的参数,然后再次尝试该命令。在 E:\Query.ps1:100 char:56 + $result =(Invoke-SqlCmd -ServerInstance "$a" -Username "$Login" -Password "$Pass ...
解决方案
我认为问题出在
$Result = (Invoke-SqlCmd -ServerInstance $a -Username "$Login" -Password "$Password" -Database master -Query "$Query")
"$Login" : may be null
不管里面有什么" " ,powershell 将其视为变量而不是字符串。
推荐阅读
- python - Python:pysftp 异常处理
- javascript - 带视频的 iframe(youtube 和 vimeo)在 safari 中有奇怪的行为
- flutter - Flutter-web:浏览器刷新时提供者状态丢失
- opencv - 在失真的图像上绘制极线
- angular - Angular 2 Reactive Form - 仅在表单脏时显示重置按钮
- docker - 为什么我们需要在 DockerFile 中为 Asp.net 核心提供多个复制指令
- angular - 实现了两个 HTTP 拦截器,但只调用了一个
- spring - 为 MongoDB 配置 Spring 事务支持
- azure-devops - 如何在 Artifactory 中使用 Nuget 依赖项配置 TFS2018 build vb.net
- flutter - Flutter:Android项目的主要Activity