PowerShell dbattools使用UNC文件调用- dbaquery



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

Invoke-DbaQuery -SQLInstance $SQL_host -Database $DatabaseName -File "\file_svrscriptdiruserlist.sql"

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

结果显示调用一直在工作,但输出不可见。这是因为脚本有这样的代码:

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;
解决方案是这样调用脚本:
Invoke-DbaQuery                  `
-SQLInstance $HCM_SQL_host    `
-Database $Refresh_database   `
-Verbose 4>&1                 `
-File "\file-srv0scriptdirUserlist.sql" | `
out-string -Width 250 | Out-File -FilePath $Create_Users_File_Fullname

注意"-Verbose 4; &1 ' "它将详细输出(即PRINT输出)重定向回标准输出,并最终重定向到文件。

相关内容

  • 没有找到相关文章

最新更新