使用PowerShell与dbatools恢复SQL Server数据库时提示网络路径未找到
问题:PowerShell恢复SQL Server 2019数据库报错“网络路径未找到”
我是PowerShell新手,拿到一个恢复SQL Server 2019数据库的脚本,在新虚拟机上运行时出错。
运行的PowerShell脚本
Get-ChildItem "F:\NH\WH_BEE_$(Get-Date -Format "yyyyMMdd")_*.bak" | ` Restore-DbaDatabase ` -SqlInstance instanceName ` -Database WH_BEE ` -FileMapping @{ "WH_Data1" = "F:\data\WH_BEE.MDF"; "WH_Data2" = "F:\data\WH_BEE_1.NDF"; "WH_Log" = "G:\log\WH_BEE.LDF" };
错误信息
WARNING: [20:29:39][Restore-DbaDatabase] Failure | The network path was not found
我已在VM上以管理员身份执行Install-Module dbatools安装了dbatools,想确认是脚本存在遗漏还是安装未正确完成。
2024年8月24日更新
[截图内容翻译:SQL Server服务运行账户(NT SERVICE\MSSQL$INSTANCE)对F:\NH目录无读取权限,对F:\data和G:\log目录无写入权限]
排查与解决步骤
- 检查路径有效性:确认
F:\NH、F:\data、G:\log在VM上实际存在,手动访问这些路径,确保无访问障碍。 - 验证服务账户权限:恢复操作使用的是SQL Server服务账户而非当前管理员账户,需给该账户分配:
F:\NH的读取权限F:\data和G:\log的读写权限
可通过服务管理器查看SQL Server的登录账户,再在文件夹安全设置中添加对应权限。
- 确认实例名称正确:
-SqlInstance参数中的instanceName需匹配实际SQL Server实例:默认实例用localhost或VM计算机名,命名实例用计算机名\实例名,可执行Get-DbaInstance检测连接性。 - 检查dbatools模块状态:执行
Get-Module dbatools确认模块已加载,若异常则手动执行Import-Module dbatools,或卸载后重新安装:Uninstall-Module dbatools -Force再运行Install-Module dbatools -Force。 - 确认备份文件存在:单独执行
Get-ChildItem "F:\NH\WH_BEE_$(Get-Date -Format "yyyyMMdd")_*.bak",查看是否能匹配到备份文件,若找不到需检查备份文件的命名规则或生成时间。
内容的提问来源于stack exchange,提问作者Java
相关产品推荐
相关产品推荐

