sql - Ansible invoke-sqlcmd 因 Invoke-Sqlcmd 失败:Windows PowerShell 处于非交互模式。读取和提示\r\n功能不可用
问题描述
我正在尝试使用 ansible 来调用-sqlcmd 在远程 SQL 服务器实例上运行查询。它无法在其中一个实例上执行并返回结果。在所有其他人运行时没有错误。
不知道这是否是 Ansible 或 powershell 或 SQL Server 让 ansible 通过 win-shell 查询的问题。
- hosts: localhost
gather_facts: false
tasks:
- name: kerberos ticket for individual svc account
include_tasks: dbserveraudit_kerbinit.yml
vars:
ansible_user: "{{ hostvars[item]['svc_user'] }}"
with_items: "{{ groups['current_sqlservers'] }}"
- hosts: management
gather_facts: false
tasks:
- name: Test sql Connection using svc account
include_tasks: **dbserveraudit_checksqlconnectivity**.yml
vars:
ansible_user: "{{ hostvars[item]['svc_user'] }}@{{admin_domain | upper }}"
sqlserver: "{{ hostvars[item]['svc_user'] | regex_replace('svc','') }}"
with_items: "{{ groups['current_sqlservers'] }}"
dbserveraudit_checksqlconnectivity.yml
- block:
- name: Connect and run query on current db server
win_shell: Invoke-Sqlcmd -Query "SELECT SERVERPROPERTY('ServerName')" -ServerInstance {{ sqlserver }} -Verbose -OutputSqlErrors 1 -AbortOnError -querytimeout 65335 -Debug
register: connectsql
ignore_errors: true
我得到的错误是 -
"Invoke-Sqlcmd : Windows PowerShell 处于非交互模式。读取和提示\r\n功能不可用。\r\n在 line:1 char:65\r\n+ [Console]::InputEncoding = New-Object Text.UTF8Encoding $false; \r\n调用-Sqlcmd -Q ...\r\n+
+ CategoryInfo : InvalidResult: (US02PRDSQL271B:PSObject) [Invoke \r\n -Sqlcmd], PSInvalidOperationException\r\n + FullyQualifiedErrorId : ExecutionFailed,Microsoft.SqlServer.Management.P \r\n owerShell.GetScriptCommand",
解决方案
详细程度使用交互式输出。将输出通过管道传输到日志文件或 NUL:提示:无限查询超时为:0 ;) 尝试:
$Log: "c:\temp\test.txt"
(Invoke-SqlCmd -query "Select 1" -Verbose -OutputSqlErrors 1 -AbortOnError -querytimeout 0 -Debug) *>> $Log
推荐阅读
- r - 为特定数字生成具有特定数字重复的矩阵
- haskell - 如何在这个“或”类型上定义一个“空”?
- regex - Shell 脚本上的正则表达式
- vue.js - Uglify 中断 npm run build,日志报告没有说明任何具体内容,npm run dev 有效
- c# - 使用 IDataErrorInfo 验证期间在每个文本框中显示所有错误消息
- php - PHP超链接不执行动作
- android - 从 onActivityResult 获取图像 ByteArray 到 oncreate
- javascript - 带有 Typescript 的 Mongoose Schema - 设计错误
- java - 将边添加到字符串和 ArrayList 的哈希表
- reactjs - 如何将 API 数据保存到 MongoDB?