मैं अंततः पुराने KornShell स्क्रिप्ट्स को SQL उदाहरण मॉनिटर के लिए उपयोग करने के लिए PowerShell का उपयोग करना चाहूंगा। हालाँकि, मुझे मुश्किल समय आ रहा है, फिर भी मेरे दिमाग को अलग-अलग तरीकों से मिल रहा है जो कि PowerShell वास्तव में SQL सर्वर से बात कर सकते हैं। यकीन नहीं है कि यह उन सभी में से एक है, लेकिन यहां 5 पूरी तरह से अलग तरीके हैं जो मैं एक SQL सर्वर के संस्करण को क्वेरी कर सकता हूं:
1. SQLConnection .NET क्लास
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=MyServer;Database=Master;Integrated Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "Select @@version as SQLServerVersion"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
2. WMI प्रदाता
$sqlProperties = Get-WmiObject
-computerName "MyServer"
-namespace root\Microsoft\SqlServer\ComputerManagement10
-class SqlServiceAdvancedProperty
-filter "ServiceName = 'MSSQLSERVER'"
$sqlProperties.VERSION
3. एस.एम.ओ.
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null
$smo-var = New-Object ('Microsoft.SqlServer.Management.Smo.Server') 'MyServer\instancename'
$smo-var.VersionString
4. PSDrive
Set-Location SQLSERVER:\SQL\MyServerName\
$server = Get-Item Default
$server.get_VersionString()
5. चालान-SQLCMD
Invoke-Sqlcmd -Query "SELECT @@version" -ServerInstance "MyServer"
विभिन्न परिदृश्यों के लिए मुझे इनमें से कौन सी तकनीक का उपयोग करना है, यह तय करने के लिए मुझे कैसे जाना चाहिए। क्या प्रत्येक के पक्ष / विपक्ष हैं? क्या इनमें से कुछ पॉवरशेल 1.0 तकनीकें 2.0 में सुपरक्यूटेड थीं? क्या उनमें से कुछ SQL 2000 या 2005 सर्वर के साथ संचार करने के लिए काम नहीं करेंगे?
एक स्तर पर, मुझे यकीन है कि उत्तर "जो भी काम करता है" का उपयोग करें, लेकिन किसी के लिए Powershell के लिए नया, इसके बहुत सारे उदाहरणों को देखने के लिए भ्रमित करना जैसे # 1 ऊपर, जब वह सबसे लंबा है और (मेरे दिमाग में) कम से कम "powerhell-like" उदाहरण।
यदि यह प्रासंगिक है, तो थोड़ी अधिक जानकारी: SQL सर्वर जो वास्तव में मॉनिटर स्क्रिप्ट चला रहा है, SQL 2005 है, लेकिन इसका उपयोग SQL 2000 से 2008R2 तक कई उदाहरणों से कनेक्ट करने के लिए किया जाता है।