【问题标题】:Simple SQL Insert with Powershell Invoke Command [duplicate]使用 Powershell 调用命令进行简单 SQL 插入 [重复]
【发布时间】:2019-11-08 23:25:15
【问题描述】:

试图通过组策略在域控制的计算机上运行登录脚本。在安装了 SQLserver 模块的服务器上运行良好,但是当将代码转换为使用调用命令并从域控制计算机运行时,输入到数据库中的是空的——它从 null 变为空。

有效的代码:

$var1 = $env:xxx
$var2 = $env:xxx
$var3 = $env:xxx

invoke-sqlcmd -Query "insert into tblxxx (abc, def, ghi) values('$var1', '$var2', '$var3')" -connectionstring <connectionstring>

不起作用的代码:

$var1 = $env:xxx
$var2 = $env:xxx
$var3 = $env:xxx

invoke-command -computername <server> {invoke-sqlcmd -Query <same query as above> -connectionstring <connectionstring>}

我做错了什么?

【问题讨论】:

    标签: powershell invoke-command


    【解决方案1】:

    Invoke-Command 中使用$using:var1,因为变量$var1 在新范围内是未知的。

    【讨论】:

    • 我是否将撇号留在 $using:var1 -- '$using:var1' 周围?如果我这样做了,输入时它仍然是空的,如果我取出撇号,我会得到“无效的列名”以及变量设置为什么——所以至少它现在读取变量但不输入数据库......
    • 我在上面的评论中只提到了我的测试只使用了 1 个导致问题的输入列——谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2018-12-14
    • 2013-09-18
    相关资源
    最近更新 更多