在PowerShell中,我想运行Invoke-DbaQuery dbatools命令,并使用带有-File参数的UNC路径:
Invoke-DbaQuery -SQLInstance $SQL_host -Database $DatabaseName -File "\\file_svr\scriptdir\userlist.sql"
该命令运行时没有错误,但不会产生任何输出。有没有人知道这是否可能?如果是这样的话,我错过了什么?
发布于 2021-09-23 22:15:23
事实证明,调用一直在工作,但输出不可见。这是因为脚本的代码如下所示:
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-srv0\scriptdir\Userlist.sql" | `
out-string -Width 250 | Out-File -FilePath $Create_Users_File_Fullname请注意"-Verbose 4?&1‘“这一行,它将详细输出(即打印输出)重定向回标准输出,并最终重定向到文件。
https://stackoverflow.com/questions/69306023
复制相似问题