首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell dbatools调用-使用UNC文件的UNC查询

PowerShell dbatools调用-使用UNC文件的UNC查询
EN

Stack Overflow用户
提问于 2021-09-23 19:36:12
回答 1查看 79关注 0票数 0

在PowerShell中,我想运行Invoke-DbaQuery dbatools命令,并使用带有-File参数的UNC路径:

Invoke-DbaQuery -SQLInstance $SQL_host -Database $DatabaseName -File "\\file_svr\scriptdir\userlist.sql"

该命令运行时没有错误,但不会产生任何输出。有没有人知道这是否可能?如果是这样的话,我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-09-23 22:15:23

事实证明,调用一直在工作,但输出不可见。这是因为脚本的代码如下所示:

代码语言:javascript
复制
DECLARE UserCursor CURSOR FOR 
SELECT  
  'CREATE USER ' + SPACE(1) + QUOTENAME([name]) + ' FOR LOGIN ' + QUOTENAME([name]) + ' WITH DEFAULT_SCHEMA = ' + QUOTENAME([default_schema_name]) + ';'
  AS [-- SQL STATEMENTS --]
FROM    sys.database_principals AS rm
WHERE [type] IN ('U', 'S', 'G') -- windows users, sql users, windows groups
AND [name] <> 'dbo'
AND [name] <> 'guest'
AND default_schema_name is not null

OPEN UserCursor

FETCH NEXT FROM UserCursor INTO @addUserScript
WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT @addUserScript
    FETCH NEXT FROM UserCursor INTO @addUserScript
END

CLOSE UserCursor 
DEALLOCATE UserCursor;

然后,解决方案是像这样调用脚本:

代码语言:javascript
复制
Invoke-DbaQuery                  `
   -SQLInstance $HCM_SQL_host    `
   -Database $Refresh_database   `
   -Verbose 4>&1                 `
   -File "\\file-srv0\scriptdir\Userlist.sql" | `
    out-string -Width 250 | Out-File -FilePath $Create_Users_File_Fullname

请注意"-Verbose 4?&1‘“这一行,它将详细输出(即打印输出)重定向回标准输出,并最终重定向到文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69306023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档