我正在从没有安装 SQLPS(Ms SQL Server 数据库引擎)的客户端计算机(Win7)上运行 PS 脚本。
因此,我通过导入远程 ps-session 来实现:
- 为 SQL Server 创建远程 PS-Session
$sourceSQLRemoteSession = New-PSSession -ComputerName $SQLServerHostname -身份验证协商 -Credential $PSOCredentialObject
- 导入 SQLPS 模块
Import-PSSession -Session $sourceSQLRemoteSession -Module SQLPS -DisableNameChecking
- 运行 SQL 备份
Backup-SqlDatabase -ServerInstance "destinationSQL\SQLInstance" -Database "blabla_db" -BackupFile "c:\blabla.bak" -Credential $PSOCredentialObject
问题是,如果我需要将数据库恢复到不同的 SQL 数据库服务器,需要我使用“RelocateFile”对象,例如:
$RelocateData = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("uat_project1_db", "c:\SQLDATA\blabla.mdf")
$RelocateLog = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("uat_project1_db_Log", "c:\SQLDATA\blabla.ldf")
Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RelocateFile @($RelocateData,$RelocateLog)
当我运行新对象时,它似乎不喜欢它:
错误:
New-Object : Cannot find type [Microsoft.SqlServer.Management.Smo.RelocateFile]: verify that the assembly containing this type is loaded.At line:1 char:17
+ ... ocateData = New-Object Microsoft.SqlServer.Management.Smo.RelocateFil ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
解决这个问题的最佳方法是什么?
谢谢