আমি এসকিউএল ইনস্ট্যান্স মনিটরের জন্য ব্যবহার করা পুরানো কর্নশেল স্ক্রিপ্টগুলি প্রতিস্থাপনের জন্য শেষ পর্যন্ত পাওয়ারশেলটি ব্যবহার করতে চাই। যদিও পাওয়ারশেল আসলে এসকিউএল সার্ভারের সাথে কথা বলতে পারে তার সমস্ত বিভিন্ন উপায়ে আমার মস্তিষ্ক পেয়েছি time নিশ্চিত হওয়া যায় না যে এগুলি সবই রয়েছে, তবে আমি এখানে এসকিউএল সার্ভারের সংস্করণটি জিজ্ঞাসা করতে পারি 5 টি সম্পূর্ণ ভিন্ন উপায়:
1. এসকিউএল সংযোগ। নেট ক্লাস
$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. ডাব্লুএমআই সরবরাহকারী
$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
৪.এসডিআরআই
Set-Location SQLSERVER:\SQL\MyServerName\
$server = Get-Item Default
$server.get_VersionString()
5. আমন্ত্রণ - এসকিউএলসিএমডি
Invoke-Sqlcmd -Query "SELECT @@version" -ServerInstance "MyServer"
এই পরিস্থিতিতে কোনটি বিভিন্ন পরিস্থিতিতে ব্যবহার করতে হবে তা স্থির করার বিষয়ে আমি কীভাবে যেতে পারি? প্রত্যেকের কি ভাল / কনস আছে? এই পাওয়ারশেল ০.০ এর কয়েকটি কৌশল কি 2.0 তে এগিয়ে গেছে? তাদের মধ্যে কেউ এসকিউএল 2000 বা 2005 সার্ভারের সাথে যোগাযোগের জন্য কাজ করবে না?
এক পর্যায়ে, আমি নিশ্চিত যে উত্তরটি "যা কিছু কাজ করে তা ব্যবহার করুন", তবে পাওয়ারশেলের নতুন কারও পক্ষে উপরের # 1 এর মতো অনেকগুলি উদাহরণ লেখা খুব বিভ্রান্তিকর, যখন এটি সবচেয়ে দীর্ঘতম এবং (আমার মনে) অন্তত "পাওয়ারশেল-জাতীয়" উদাহরণ।
এটি প্রাসঙ্গিক হলে কিছুটা বেশি তথ্য: যে এসকিউএল সার্ভারটি প্রকৃতপক্ষে মনিটর স্ক্রিপ্টগুলি পরিচালনা করবে তা এসকিউএল 2005, তবে এটি এসকিউএল 2000 থেকে 2008R2 অবধি একাধিক উদাহরণের সাথে সংযোগ করতে ব্যবহৃত হয়।