[refle.assembly] :: LoadWithPartialName ("Microsoft.SqlServer.Smo") не возвращает VersionString - PullRequest
0 голосов
/ 28 мая 2019

У меня есть следующий скрипт powershell, который мы запускаем на многих серверах для извлечения SQL VersionString:

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" "."
$srv.VersionString

Работает для всех серверов, кроме одного, который возвращает пустую строку.

Работает только:

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
New-Object "Microsoft.SqlServer.Management.Smo.Server" "."

Возвращает:

AuditLevel                  : 
BackupDirectory             : 
BrowserServiceAccount       : 
BrowserStartMode            : 
BuildClrVersionString       : 
BuildNumber                 : 
ClusterName                 : 
ClusterQuorumState          : 
ClusterQuorumType           : 
Collation                   : 
CollationID                 : 
ComparisonStyle             : 
ComputerNamePhysicalNetBIOS : 
DefaultFile                 : 
DefaultLog                  : 
Edition                     : 
ErrorLogPath                : 
FilestreamLevel             : 
FilestreamShareName         : 
HadrManagerStatus           : 
InstallDataDirectory        : 
InstallSharedDirectory      : 
InstanceName                : 
IsCaseSensitive             : 
IsClustered                 : 
IsFullTextInstalled         : 
IsHadrEnabled               : 
IsSingleUser                : 
Language                    : 
LoginMode                   : 
MailProfile                 : 
MasterDBLogPath             : 
MasterDBPath                : 
MaxPrecision                : 
NamedPipesEnabled           : 
NetName                     : 
NumberOfLogFiles            : 
OSVersion                   : 
PerfMonMode                 : 
PhysicalMemory              : 
PhysicalMemoryUsageInKB     : 
Platform                    : 
Processors                  : 
ProcessorUsage              : 
Product                     : 
ProductLevel                : 
ResourceLastUpdateDateTime  : 
ResourceVersionString       : 
RootDirectory               : 
ServerType                  : 
ServiceAccount              : 
ServiceInstanceId           : 
ServiceName                 : 
ServiceStartMode            : 
SqlCharSet                  : 
SqlCharSetName              : 
SqlDomainGroup              : 
SqlSortOrder                : 
SqlSortOrderName            : 
Status                      : 
TapeLoadWaitTime            : 
TcpEnabled                  : 
VersionMajor                : 
VersionMinor                : 
VersionString               : 
Name                        : SERVERDR
Version                     : 
EngineEdition               : 
ResourceVersion             : 
BuildClrVersion             : 
DefaultTextMode             : True
Configuration               : Microsoft.SqlServer.Management.Smo.Configuration
AffinityInfo                : 
ProxyAccount                : 
Mail                        : 
Databases                   : 
Endpoints                   : 
Languages                   : 
SystemMessages              : 
UserDefinedMessages         : 
Credentials                 : 
CryptographicProviders      : 
Logins                      : 
Roles                       : 
LinkedServers               : 
SystemDataTypes             : 
JobServer                   : 
ResourceGovernor            : 
ServiceMasterKey            : 
Settings                    : Microsoft.SqlServer.Management.Smo.Settings
Information                 : Microsoft.SqlServer.Management.Smo.Information
UserOptions                 : Microsoft.SqlServer.Management.Smo.UserOptions
BackupDevices               : 
FullTextService             : 
ActiveDirectory             : 
Triggers                    : 
Audits                      : 
ServerAuditSpecifications   : 
AvailabilityGroups          : 
ConnectionContext           : Data Source=.;Integrated Security=True;MultipleActiveResultSets=False;Application Name="SQL Management"
Events                      : Microsoft.SqlServer.Management.Smo.ServerEvents
OleDbProviderSettings       : 
Urn                         : 
Properties                  : 
UserData                    : 
State                       : Existing
IsDesignMode                : False
DomainName                  : SMO
DomainInstanceName          : 

Итак, вопрос в том, почему он не возвращает информацию о SQL, установленном на этом сервере?

Информация о сервере: Windows 2008 R2 Microsoft SQL Server 2012 - 11.0.5058.0 (X64) Powershell Version 5.1

1 Ответ

0 голосов
/ 28 мая 2019

Очевидно, что для SQL Server 2008 вам необходимо также загрузить дополнительную сборку:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
#Need SmoExtended for smo.backup
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null

По крайней мере, вам это нужно, когда вы хотите выполнить восстановление SQL Server в SQL Server, поэтому, возможно, этотакже необходим для ваших целей.

Я нашел эту информацию здесь

Я не могу проверить это сам, хотя ..

...