首页 > 解决方案 > 使用 Powershell 调用命令的简单 SQL 插入

问题描述

尝试通过组策略在域控制的计算机上运行登录脚本。在安装了 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>}

我究竟做错了什么?

标签: powershellinvoke-command

解决方案


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


推荐阅读