【问题标题】:How to Acess Remote Computer Folders in PS SQLSERVER:\>如何在 PS SQLSERVER:\> 中访问远程计算机文件夹
【发布时间】:2013-02-21 13:45:20
【问题描述】:

最近我开始知道如何使用 Powersehll 命令执行 SQL 查询,如下所述:

Import-Module “sqlps” -DisableNameChecking   

$ds=Invoke-Sqlcmd -Query $Query -Database $Database -ServerInstance $server -ConnectionTimeout $ConnectionTimeout -QueryTimeout $QueryTimeout 

此时Powershell ISE输出控制台会在

PS SQLSERVER:\>

我能够执行选择和更新查询而没有任何错误。当我想访问远程计算机中的一个文件时,就会遇到这个问题。我尝试按如下方式访问该文件:

PS SQLSERVER:\> Get-Content -Path \\Server\D$\Log\App.log

甚至尝试过,只是将文件/文件夹列为

PS SQLSERVER:\> ls \\Server\D$\Log\

我遇到以下错误:

获取内容:找不到路径“\Server\D$\Log\App.log”,因为它不存在。 ls : 找不到路径'\Server\D$\Log\',因为它不存在。

不必说文件夹和文件存在于该服务器上,因为当 Powershell 在没有 SQL 模块的情况下运行时,我能够访问它们。我的意思是控制台只显示 PS C:\用户\abc\

对不起,这个长篇大论 - 现在,简单的问题! Shell在SQLSERVER控制台时如何访问远程文件/文件夹?

提前致谢!

-拉吉

【问题讨论】:

  • 您应该确保用于连接的帐户对您正在访问的 UNC 路径具有适当的访问权限。我猜它可能试图在 SQL Server 的凭据下连接。
  • 我正在使用我的管理员帐户,该帐户可以访问 SQL 服务器和远程服务器(文件所在的位置)..

标签: sql-server powershell remote-access


【解决方案1】:

您应该能够像这样显式使用文件系统提供程序:

ls filesystem::\\server\d$\log

【讨论】:

  • 完美.. 也谢谢你.. 来自 steoleary 的提示,你们两个都很简单,而且效果很好。它对我帮助很大。再次感谢!快乐的脚本..
【解决方案2】:

只需像这样更改您的目录:

cd c:\

然后:

ls \\server\d$\log

然后您可以通过执行相同的操作更改回 sql server:

cd sqlserver:\

powershell 提供程序可以像使用普通驱动器号一样使用,非常酷。

【讨论】:

    【解决方案3】:

    我相信它在 SQL 服务器上远程运行命令,这使得从那里访问另一台服务器上的数据成为“双跳”场景,您需要 CredSSP 身份验证才能使其工作.....

    【讨论】:

    • 不是这样,因为命令提示符显示为 SQLSERVER:\ 他使用的是不同的提供程序,而不是文件系统提供程序,因此尝试以这种方式访问​​文件系统是行不通的,您可以四处导航使用该提供程序的 SQL 服务器对象,而不是文件系统,直到您改回来。
    猜你喜欢
    • 1970-01-01
    • 2016-07-03
    • 2012-07-09
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多