Проблема доступа к SQL Server из PowerShell - PullRequest
3 голосов
/ 15 июля 2011

Я пытаюсь реализовать скрипт управления резервным копированием, который нашел в http://sev17.com/2011/03/restore-and-relocate-database-files-using-powershell/

В статье говорится, что это зависит от версии 2.3.2.1 или выше SQLPSX - у меня самая последняя версия.

пытается выполнить эту строку:

$server = get-sqlserver $sqlserver

Результат:

New-Object : Cannot find type [Microsoft.SqlServer.Management.Common.ServerConnection]: make sure the assembly containing this type is loaded.
At C:\Users\...\Documents\WindowsPowerShell\Modules\sqlserver\SQLServer.psm1:68 char:24
+     { $con = new-object <<<<  ("Microsoft.SqlServer.Management.Common.ServerConnection") $sqlserver }

результат get-module -listAvailable

    ModuleType Name                      ExportedCommands                                                           
    ---------- ----                      ----------------                                                           
    Script     adoLib                    {}                                                                         
    Manifest   Agent                     {Get-AgentTargetServerGroup, Get-AgentProxyAccount, Get-AgentJobSchedule...
    Script     ISECreamBasic             {}                                                                         
    Script     mySQLLib                  {}                                                                         
    Script     OracleClient              {}                                                                         
    Script     OracleIse                 {}                                                                         
    Script     PBM                       {}                                                                         
    Script     PerfCounters              {}                                                                         
    Manifest   Pscx                      {}                                                                         
    Manifest   Repl                      {Get-ReplEnumSubscriptions2, Get-ReplPublisherMonitor, Get-ReplEnumPubli...
    Manifest   ShowMbrs                  {Get-ShowMbrs, Set-ShowMbrs, New-ShowMbrs, Get-GroupUser}                  
    Script     SQLIse                    {}                                                                         
    Manifest   SQLMaint                  {Get-SqlIndexFragmentation, New-UserMember, Invoke-SqlIndexRebuild, Get-...
    Manifest   SQLParser                 {Test-SqlScript, Out-SqlScript}                                            
    Script     SQLProfiler               {}                                                                         
    Script     SQLPSX                    {}                                                                         
    Manifest   sqlserver                 {Get-SqlScripter, Get-SqlIndexFragmentation, Remove-SqlServerRoleMember,...
    Manifest   SSIS                      {New-ISItem, Get-ISPackage, Get-ISItem, Copy-ISItemFileToSQL...}           
    Manifest   WPK                       {}                                                                         
    Manifest   AppLocker                 {}                                                                         
    Manifest   BitsTransfer              {}                                                                         
    Manifest   PSDiagnostics             {}                                                                         
    Manifest   TroubleshootingPack       {}                                                                         
    Manifest   WebAdministration         {}    

RE: SMO

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo") 
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") 

Результаты:

True   v2.0.50727     C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.ConnectionInfo\10.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ConnectionInfo.dll                             
True   v2.0.50727     C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Smo\10.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Smo.dll                                                   
True   v2.0.50727     C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SmoExtended\10.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.SmoExtended.dll                                   
New-Object : Cannot find type [Microsoft.SqlServer.Management.Common.ServerConnection]: make sure the assembly containing this type is loaded.

Ответы [ 4 ]

8 голосов
/ 15 июля 2011

Убедитесь, что сначала загружается сборка, содержащая тип Microsoft.SqlServer.Management.Common.ServerConnection (я думаю, Microsoft.SqlServer.ConnectionInfo):

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo")
1 голос
/ 30 ноября 2011

Я понимаю, что это самый плохой ответ за всю историю, но ... Кажется, что может быть чем-то не так с вашей SMO или чем-то еще.Вы можете попробовать загрузить SP3 для SQL 2008 или просто переустановить SSMS 2008. Установка версии SSMS 2008 R2 также может быть вариантом.

Опять же, не самый лучший ответ вмир, но, возможно, стоит попробовать.

0 голосов
/ 01 марта 2016

$ sc = New-Object Microsoft.SqlServer.Management.Common.ServerConnection

Ошибка: New-Object: Не удается найти тип [Microsoft.SqlServer.Management.Common.ServerConnection]: убедитесь, что сборка, содержащая этот тип, загружена

Для этой проблемы

Убедитесь, что установлен объект управления micro soft sqlserver 2012 (x64). и продолжайте проверять dll-файлы, если они присутствуют в указанном пути «C: \ Program Files \ Microsoft SQL Server \ 110 \ SDK \ Assemblies»

0 голосов
/ 31 января 2013

Компоненты powershell устанавливаются, только если у вас установлен powershell 2.0 во время установки SSMS. Powershell обычно уже настроен на компьютере, если вы не используете Windows Server 2008. Перед установкой SSMS убедитесь, что powershell 2.0 установлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...