কেউ ডাব্লুএসইউ ডাটাবেসে "সহজভাবে" সংযুক্ত হয়ে এর বিরুদ্ধে অনুসন্ধান চালাতে পারে:
- উন্নত সুবিধাগুলি সহ এসকিউএল পরিচালনা স্টুডিও শুরু করুন।
- উইন্ডোজ প্রমাণীকরণ
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query
ব্যবহার করে কানেক্ট করুন ।
এই টেবিলগুলি আপনার প্রশ্ন সম্পর্কিত আগ্রহী বলে মনে হচ্ছে:
tbUpdate
একক আপডেটগুলি সম্পর্কে তথ্য ধারণ করে
tbTargetGroup
সমস্ত কম্পিউটার গ্রুপ সম্পর্কে তথ্য ধারণ করে
tbDeployment
কোন কম্পিউটার গ্রুপগুলির জন্য কোন আপডেটগুলি অনুমোদিত হয়েছে সে সম্পর্কে তথ্য ধারণ করে
তবে, vUpdateApproval
আপনার পরে থাকা বেশিরভাগ তথ্য পুনরুদ্ধার করার জন্য ইতিমধ্যে বিদ্যমান ভিউটি ব্যবহার করা উপকারী বলে মনে হচ্ছে , কারণ এই দৃশ্যটি ইতিমধ্যে অন্যান্য জিনিসের মধ্যে ActionID
থেকে কলামটি অনুবাদ করে tbDeployment
।
vUpdateApproval
দৃশ্য অবশ্য আপডেটের জন্য কোনো সহজে পাঠযোগ্য শিরোনাম অন্তর্ভুক্ত নয়। শিরোনামগুলি সাধারণত পাঠ করা হয় tbLocalizedProperty
। এটা আমাদের জন্য সহজ করতে, আরেকটা দৃশ্য আছে: vUpdate
।
আপনার প্রথম অনুরোধটি মাপসই করবে এমন যথাযথ ক্যোয়ারী তৈরি করতে আমার কাছে আমাদের ডাব্লুএসএস ডাটাবেসে যথাযথ তথ্য নেই (এবং আমি এটি অন্ধভাবে তৈরি করতে যথেষ্ট আত্মবিশ্বাসী নই))। সুতরাং এখানে আপনার দ্বিতীয় অনুরোধ জন্য একটি পদ্ধতির। যদি আমি জগাখিচুবি না করি তবে এটি সমস্ত আপডেটের সমস্ত তালিকা এবং সমস্ত দলের জন্য অনুমোদনের স্থিতি তৈরি করে।
SELECT
aUpdate.UpdateId,
aUpdate.DefaultTitle,
aGroup.Name as GroupName,
aApproval.Action as Action
FROM
PUBLIC_VIEWS.vUpdate AS aUpdate INNER JOIN
PUBLIC_VIEWS.vUpdateApproval AS aApproval ON aUpdate.UpdateId = aApproval.UpdateId LEFT JOIN
dbo.tbTargetGroup as aGroup ON aGroup.TargetGroupID = aApproval.ComputerTargetGroupId
;
যা আমাদের জার্মান এসবিএস এ এই আউটপুট উত্পাদন করে:
এটির 5 টি ডিফল্ট গ্রুপ সহ আমাদের এসবিএসের জন্য, এটি 2615 ডলারে 121558 ফলাফল সারি তৈরি করে। সুতরাং, আপনি যদি কোয়েরিটি নিয়ে খেলতে চান SELECT TOP 1000
তবে পরীক্ষার সময় প্রথম লাইনটি পরিবর্তন করার পরামর্শ দেওয়া যেতে পারে ।
আমি এগুলি একটি পাওয়ারশেল স্ক্রিপ্টে গুটিয়ে রাখার জন্য সময়ও দিয়েছিলাম:
# Where to connect to
$dataSource = "\\.\pipe\MSSQL`$MICROSOFT##SSEE\sql\query"
$connectionTimeout = 30
# The query we want to perform against the WSUS database
$query = @"
SELECT TOP 10
aUpdate.UpdateId,
aUpdate.DefaultTitle,
aGroup.Name as GroupName,
aApproval.Action as Action
FROM
PUBLIC_VIEWS.vUpdate AS aUpdate INNER JOIN
PUBLIC_VIEWS.vUpdateApproval AS aApproval ON aUpdate.UpdateId = aApproval.UpdateId LEFT JOIN
dbo.tbTargetGroup as aGroup ON aGroup.TargetGroupID = aApproval.ComputerTargetGroupId
"@
$queryTimeout = 120
# Construct the connection string
$connectionString = "Data Source={0};Integrated Security=True;Connect Timeout={1};Database=SUSDB" -f $dataSource,$connectionTimeout
# Open the connection to the SQL server
$connection = New-Object System.Data.SqlClient.SQLConnection
$connection.ConnectionString = $connectionString
$connection.Open()
# Construct our SQL command
$sqlCommand = New-Object system.Data.SqlClient.SqlCommand( $query, $connection )
$sqlCommand.CommandTimeout = $queryTimeout
# Retrieve the data from the server
$dataSet = New-Object system.Data.DataSet
$dataAdapter = New-Object system.Data.SqlClient.SqlDataAdapter( $sqlCommand )
[void]$dataAdapter.fill( $dataSet )
# Clean up
$connection.Close()
# Output result
$dataSet.Tables
দয়া করে নোট করুন যে SELECT TOP 10
পরীক্ষার সময় আপনার শেল বন্যা এড়াতে এই স্ক্রিপ্টটিতে সীমাবদ্ধতা অন্তর্ভুক্ত রয়েছে ।