Cách dễ nhất để kiểm tra phiên bản SQL Server và Phiên bản bằng PowerShell là gì?Làm cách nào để kiểm tra Phiên bản Máy chủ SQL bằng Powershell?
Trả lời
Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTimeout 3
Tất cả bạn cần là để kết nối với SQL Server và chạy truy vấn này:
select @@version
này, tất nhiên, sẽ làm việc cho bất kỳ công cụ khách hàng.
Ngoài ra, điều này cũng có sẵn:
SELECT SERVERPROPERTY('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')
Nhiều cách để xác định phiên bản SQL Server ở đây: "" http://support.microsoft.com/kb/321185
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" "."
$srv.Version
$srv.EngineEdition
Rõ ràng, thay thế với tên của trường hợp của bạn. Nếu bạn muốn xem tất cả các phương pháp có sẵn, hãy truy cập here.
Điều này thật tuyệt vì nó cho phép bạn dễ dàng sử dụng số phiên bản (hoặc bất kỳ thứ gì bạn muốn) trong phần còn lại của tập lệnh. –
Chỉ cần một tùy chọn sử dụng registry, tôi đã tìm thấy nó có thể được nhanh hơn trên một số hệ thống của tôi:
$inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
foreach ($i in $inst)
{
$p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version
}
Hacked lên lời khuyên từ chủ đề này (và một số người khác), điều này đã đi trong psprofile tôi:
Function Get-SQLSvrVer {
<#
.SYNOPSIS
Checks remote registry for SQL Server Edition and Version.
.DESCRIPTION
Checks remote registry for SQL Server Edition and Version.
.PARAMETER ComputerName
The remote computer your boss is asking about.
.EXAMPLE
PS C:\> Get-SQLSvrVer -ComputerName mymssqlsvr
.EXAMPLE
PS C:\> $list = cat .\sqlsvrs.txt
PS C:\> $list | % { Get-SQLSvrVer $_ | select ServerName,Edition }
.INPUTS
System.String,System.Int32
.OUTPUTS
System.Management.Automation.PSCustomObject
.NOTES
Only sissies need notes...
.LINK
about_functions_advanced
#>
[CmdletBinding()]
param(
# a computer name
[Parameter(Position=0, Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[System.String]
$ComputerName
)
# Test to see if the remote is up
if (Test-Connection -ComputerName $ComputerName -Count 1 -Quiet) {
# create an empty psobject (hashtable)
$SqlVer = New-Object PSObject
# add the remote server name to the psobj
$SqlVer | Add-Member -MemberType NoteProperty -Name ServerName -Value $ComputerName
# set key path for reg data
$key = "SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
# i have no idea what this does, honestly, i stole it...
$type = [Microsoft.Win32.RegistryHive]::LocalMachine
# set up a .net call, uses the .net thingy above as a reference, could have just put
# 'LocalMachine' here instead of the $type var (but this looks fancier :D)
$regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $ComputerName)
# make the call
$SqlKey = $regKey.OpenSubKey($key)
# parse each value in the reg_multi InstalledInstances
Foreach($instance in $SqlKey.GetValueNames()){
$instName = $SqlKey.GetValue("$instance") # read the instance name
$instKey = $regKey.OpenSubkey("SOFTWARE\Microsoft\Microsoft SQL Server\$instName\Setup") # sub in instance name
# add stuff to the psobj
$SqlVer | Add-Member -MemberType NoteProperty -Name Edition -Value $instKey.GetValue("Edition") -Force # read Ed value
$SqlVer | Add-Member -MemberType NoteProperty -Name Version -Value $instKey.GetValue("Version") -Force # read Ver value
# return an object, useful for many things
$SqlVer
}
} else { Write-Host "Server $ComputerName unavailable..." } # if the connection test fails
}
Có thể xây dựng thêm một chút về mã của bạn làm gì? – cereallarceny
hy vọng chỉnh sửa sẽ giúp – brendan62269
Vâng, đây là cách học cũ, đó là dễ dàng:
sqlcmd -Q "select @@version;"
Và dưới đây là cách tôi sử dụng nó từ Serverspec:
require 'windows_spec_helper'
describe 'MS SQL Server Express' do
describe service('MSSQLSERVER') do
it { should be_enabled }
it { should be_running }
end
describe port(1433) do
it { should be_listening }
end
describe command('sqlcmd -Q "select @@version;"') do
its(:stdout) { should match /Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)/ }
end
end
Để thêm mã Brendan của .. này không thành công nếu máy của bạn là 64-bit, vì vậy bạn cần phải kiểm tra một cách thích hợp.
Function Get-SQLSvrVer {
<#
.SYNOPSIS
Checks remote registry for SQL Server Edition and Version.
.DESCRIPTION
Checks remote registry for SQL Server Edition and Version.
.PARAMETER ComputerName
The remote computer your boss is asking about.
.EXAMPLE
PS C:\> Get-SQLSvrVer -ComputerName mymssqlsvr
.EXAMPLE
PS C:\> $list = cat .\sqlsvrs.txt
PS C:\> $list | % { Get-SQLSvrVer $_ | select ServerName,Edition }
.INPUTS
System.String,System.Int32
.OUTPUTS
System.Management.Automation.PSCustomObject
.NOTES
Only sissies need notes...
.LINK
about_functions_advanced
#>
[CmdletBinding()]
param(
# a computer name
[Parameter(Position=0, Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[System.String]
$ComputerName
)
# Test to see if the remote is up
if (Test-Connection -ComputerName $ComputerName -Count 1 -Quiet) {
$SqlVer = New-Object PSObject
$SqlVer | Add-Member -MemberType NoteProperty -Name ServerName -Value $ComputerName
$base = "SOFTWARE\"
$key = "$($base)\Microsoft\Microsoft SQL Server\Instance Names\SQL"
$type = [Microsoft.Win32.RegistryHive]::LocalMachine
$regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $ComputerName)
$SqlKey = $regKey.OpenSubKey($key)
try {
$SQLKey.GetValueNames()
} catch { # if this failed, it's wrong node
$base = "SOFTWARE\WOW6432Node\"
$key = "$($base)\Microsoft\Microsoft SQL Server\Instance Names\SQL"
$regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $ComputerName)
$SqlKey = $regKey.OpenSubKey($key)
}
# parse each value in the reg_multi InstalledInstances
Foreach($instance in $SqlKey.GetValueNames()){
$instName = $SqlKey.GetValue("$instance") # read the instance name
$instKey = $regKey.OpenSubkey("$($base)\Microsoft\Microsoft SQL Server\$instName\Setup") # sub in instance name
# add stuff to the psobj
$SqlVer | Add-Member -MemberType NoteProperty -Name Edition -Value $instKey.GetValue("Edition") -Force # read Ed value
$SqlVer | Add-Member -MemberType NoteProperty -Name Version -Value $instKey.GetValue("Version") -Force # read Ver value
# return an object, useful for many things
$SqlVer
}
} else { Write-Host "Server $ComputerName unavailable..." } # if the connection test fails
}
Hãy thử điều này
Invoke-SqlCmd -query "select @@version" -ServerInstance "localhost"
Kiểm tra tất cả các phương pháp có sẵn để Get the build number of the latest Cumulative Update/Service Pack that has been installed in SQL Server
Bạn có nghe nói đến việc dán TEXT khi bạn muốn chia sẻ mã hoặc lệnh không? Đó là l33t. –
- 1. Làm cách nào để kiểm tra xem máy chủ PHP phiên bản 5 trở lên?
- 2. Đổi tên phiên bản máy chủ sql
- 3. Làm cách nào để kiểm tra phiên bản ASP .NET MVC đang chạy trên máy chủ có tệp .aspx?
- 4. Tôi làm cách nào để kiểm tra phiên bản của phiên bản Liferay?
- 5. Cách kiểm tra phiên bản db2
- 6. đặt máy chủ NTP trên máy Windows bằng PowerShell
- 7. cách kiểm tra phiên bản jre bằng ứng dụng java
- 8. Làm thế nào để bạn kiểm tra phiên bản SQL Server nào cho cơ sở dữ liệu bằng TSQL?
- 9. Làm thế nào tôi có thể kiểm tra các phụ thuộc của máy chủ sql 'views'
- 10. Cách kiểm tra phiên bản sbt?
- 11. Làm cách nào để kiểm tra trang web bằng XAMPP?
- 12. Tìm phiên bản IIS bằng powershell
- 13. Làm cách nào để tìm số phiên bản sản phẩm MSI bằng PowerShell?
- 14. Làm cách nào để kiểm tra xem ini_set có hoạt động trên máy chủ không?
- 15. Phương pháp kiểm soát phiên bản SQL
- 16. Cách kiểm tra phiên bản JRE trước khi ra mắt?
- 17. Cách lấy phiên bản MySQL máy chủ bằng PHP mà không cần kết nối
- 18. Làm thế nào để bắt buộc viết một phần để kiểm tra máy chủ mạng
- 19. Làm cách nào để kiểm tra công việc cron trong Máy chủ cục bộ như WAMP?
- 20. Làm cách nào để kiểm tra lỗ hổng SSL trên máy chủ web của tôi?
- 21. Làm cách nào để kiểm tra nút "Thích" trên Facebook trên máy chủ cục bộ?
- 22. Làm cách nào để kiểm tra kết nối liên tục trong máy chủ HTTP?
- 23. Làm cách nào để kiểm tra xem cột văn bản SQL Server có trống không?
- 24. Kiểm tra Tomcat 7 Phiên bản linux
- 25. Cách lập trình kiểm tra phiên bản/mô hình iPad
- 26. Làm cách nào để kiểm tra phiên bản cụ thể của một tệp trong Git?
- 27. Làm cách nào để kiểm tra phiên bản PHP nếu phpinfo() bị tắt?
- 28. Tôi làm cách nào để kiểm tra phiên bản hệ thống của Android?
- 29. Làm cách nào để kiểm tra phiên bản mô-đun apache?
- 30. Làm cách nào để kiểm tra mã phiên bản Android như 1.5 hoặc 1.6
đòi hỏi bạn phải đăng nhập vào ví dụ. không chính xác bản địa PS –
Điều này làm việc cho tôi nhưng chuỗi kết quả bị cắt ngắn. Làm thế nào để có được toàn bộ (multiline) kết quả trở lại vào PowerShell như là một chuỗi dài (đầy đủ/hoàn thành/không cắt ngắn)? – Mark