আমরা সংগ্রহগুলি সহ প্যাকেজগুলির (এবং এখন অ্যাপ্লিকেশনগুলি) জন্য আমাদের লক্ষ্যবস্তু যুক্তির সমস্ত পরিচালনা করছি। এখন যেহেতু আমরা এসসিসিএম 2007 থেকে এসসিসিএম 2012 এসপি 1 তে চলে এসেছি আমাদের সুপারিশ করা হয়েছিল যে আমরা সেই যুক্তিকে অ্যাপ্লিকেশন-প্রোগ্রামের মডেলটিতে স্থানান্তরিত করব এবং গ্লোবাল শর্তাদি এবং প্রয়োজনীয়তা ব্যবহার করে এটি প্রয়োগ করব। এর বেশ কয়েকটি ইতিবাচক সুবিধা রয়েছে - সংগ্রহগুলি নিখরচায়ভাবে শ্রেণিবদ্ধ বা যৌক্তিক গোষ্ঠীকরণের জন্য ব্যবহৃত হয়, সুপারসিডেন্স ব্যবহার করার সময় আমরা আরও একটি বিরামবিহীন অ্যাপ্লিকেশন ডিপ্লোয়মেন্ট পাই এবং উন্নত সনাক্তকরণ যুক্তি পাই।
আমি উদাহরণ হিসাবে অ্যাডোব ফ্ল্যাশ প্লেয়ার প্লাগইন ব্যবহার করব। আমরা কেবল ফায়ারফক্স ইনস্টল থাকা ওয়ার্কস্টেশনে অ্যাডোব ফ্ল্যাশ প্লেয়ার প্লাগইন স্থাপন করতে চাই। এসসিসিএম 2007 প্যাকেজ-প্রোগ্রাম মডেল ব্যবহার করে আমরা একটি ডাব্লুকিউএল কোয়েরির উপর ভিত্তি করে একটি সংগ্রহ তৈরি করব যা ফায়ারফক্সের সাথে সমস্ত ওয়ার্কস্টেশন ইনস্টল করে:
select * from SMS_R_System inner join SMS_G_System_SoftwareProduct
on SMS_G_System_SoftwareProduct.ResourceId = SMS_R_System.ResourceId
where SMS_G_System_SoftwareProduct.ProductName like "Mozilla Firefox"
একবার আমাদের সংগ্রহ তৈরি হয়ে গেলে আমরা এর পরে আমাদের প্যাকেজ-প্রোগ্রাম স্থাপন করব। আমি অ্যাপ্লিকেশন-প্রোগ্রামের গ্লোবাল কন্ডিশন এবং প্রয়োজনীয়তা যুক্তি ব্যবহার করে একই যুক্তিকে প্রতিলিপি দেওয়ার চেষ্টা করছি। আমার ডাব্লুকিউএল কোয়েরি ভিত্তিক গ্লোবাল কন্ডিশন তৈরির সমস্ত প্রচেষ্টা একটি ওয়েবেআরআরটাইপমিসম্যাচ ত্রুটি ( 2147749893 (0x80041005)
) এর ফলস্বরূপ ।
এখন যে সেরা অনুশীলনগুলি সুপারিশ করে যে আমরা আমাদের টার্গেটিং লজিক অ্যাপ্লিকেশনটির সাথে বান্ডিল রেখেছি যা করা দরকার তা হল একটি উপযুক্ত ডাব্লুএইচকিউ কোয়েরি গ্লোবাল কন্ডিশন তৈরি করা এবং তারপরে আমরা অ্যাপ্লিকেশনটির প্রয়োজনীয়তাগুলি ব্যবহার করে এটি মূল্যায়ন করতে পারি।
আসুন ডাব্লুকিউএল কোয়েরি দিয়ে শুরু করি। আমি স্ক্রিপ্টটোমেটিককে ডাব্লুএমআই SMS_InstalledSoftware
ক্লাসের সমস্ত কিছু ডাম্প করার জন্য ব্যবহার করেছি যা নামের জায়গার অংশ root\cimv2\sms
। আমি যুক্তিসঙ্গতভাবে নিশ্চিত যে উইন 32_প্রডাক্ট কেবল উইন্ডোজ ইনস্টলার ইনস্টলড সফ্টওয়্যার এর জন্য কোনও কিছু ইনস্টল করা আছে কি না তা মূল্যায়ন করার চেষ্টা করার সময় এসএমএস_ইনস্টলডসফটওয়্যার বিরুদ্ধে প্রশ্ন চালানোর সেরা জায়গা।
আমি নিম্নলিখিত ফায়ারফক্স সম্পর্কিত বস্তুটি পাই:
ARPDisplayName: Mozilla Firefox 23.0.1 (x86 en-US)
ChannelCode:
ChannelID:
CM_DSLID:
EvidenceSource: CPXCCCCCCXCXCXCXXXXXCXXXXX
InstallDirectoryValidation: 4
InstalledLocation: C:\Program Files (x86)\Mozilla Firefox
InstallSource:
InstallType: 0
Language: 0
LocalPackage:
MPC:
OsComponent: 0
PackageCode:
ProductID:
ProductName: Mozilla Firefox 23.0.1 (x86 en-US)
ProductVersion: 23.0.1
Publisher: Mozilla
RegisteredUser:
ServicePack:
SoftwareCode: mozilla firefox 23.0.1 (x86 en-us)
SoftwarePropertiesHash: 63896ed23146ec91dbc763b45c127ba31216e2f9d657a87953440d30b7f306bc
SoftwarePropertiesHashEx: 67c2ecc42f0e0b9da6ee55bc0dea67a4d90b9e8452c9fdb25db57d4891698f25
UninstallString: "C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe"
UpgradeCode:
VersionMajor: 2147483647
VersionMinor: 2147483647
প্রোডাক্টনাম সম্পত্তিটির বিরুদ্ধে ডাব্লুকিউএল চালানো ভাল উপায় বলে মনে হচ্ছে। যদি আমি চালানোর SELECT * FROM SMS_InstalledSoftware WHERE ProductName like '%Firefox%'
মধ্যে wbemtest
বিরুদ্ধে root\cimv2\sms
নামস্থান আমি নিম্নলিখিত পাবেন:
আসুন পরের এসসিসিএমে গ্লোবাল কন্ডিশন তৈরির চেষ্টা করুন:
এটি সম্পূর্ণ অপ্রয়োজনীয় তবে আমি মনে করি এটি সঠিকভাবে বুঝতে পেরেছি। গ্লোবাল কন্ডিশনগুলি পুরো অ্যাপ্লিকেশন-প্রোগ্রাম যুক্তির শর্তযুক্ত অংশটি সেট করে যা কোনও মূল্যায়নমূলক অ্যাপ্লিকেশন-প্রোগ্রাম যুক্তিকে নয়। যে কারণে, আমি যেখানে যেখানে দফায় কিছু করছি না। এই গ্লোবাল শর্তটি বর্গের root\cimv2\sms
নামস্থানে সন্ধান করা উচিত এবং পণ্য নাম SMS_InstalledSoftware
সম্পত্তিটি "ফিরিয়ে দিন"। আমার এখন আমার অ্যাপ্লিকেশনগুলির স্থাপনার ধরণের প্রয়োজনীয়তার সাথে সেই সম্পত্তির মূল্য / মূল্যায়ন করতে সক্ষম হব, তাই না?
আবার - আমি পুরো গ্লোবাল কন্ডিশন / প্রয়োজনীয়তা যুক্তিগুলি কীভাবে একসাথে স্তব্ধ হয়ে গেছে তা বুঝতে পারছি না বা এটি কেবল এই অপ্রতিদ্বন্দ্বী তবে উপরের আবশ্যকতাটি ProductName
সম্পত্তি থেকে ফিরে আসা সমস্ত স্ট্রিংগুলি দেখতে সক্ষম হবে , তাদের মধ্যে কোনও ফায়ারফক্স রয়েছে কিনা তা মূল্যায়ন করুন 'এবং যদি এত আনন্দের সাথে অ্যাডোব ফ্ল্যাশ প্লেয়ার প্লাগইন মোতায়েন করুন।
দুর্ভাগ্যক্রমে এটি কাজ করে না। মোতায়েনের প্রায় সমস্ত মেশিন নিম্নলিখিত ত্রুটিটি ফিরিয়ে দেয়:
2147749893 (0x80041005) Type Mismatch
আমি এটি বোঝাতে চাই যে গ্লোবাল কন্ডিশন আমার প্রয়োজনীয়তার চেয়ে মূল্যায়নের চেয়ে বিভিন্ন ধরণের পরিবর্তনশীল ফিরিয়ে দিচ্ছে তবে কীভাবে এখান থেকে সমস্যা সমাধান করবেন তা আমার কোনও ধারণা নেই। আমি আমার গ্লোবাল কন্ডিশনের প্রকারটি বুলিয়ানে সেট করার চেষ্টা করেছি এবং WHERE ধারা ( Name like '%Firefox%'
) সেট করার চেষ্টা করেছি তবে এতে একই ত্রুটি পাওয়া যায়।
অ্যাপ্লিকেশন-প্রোগ্রামের গ্লোবাল কন্ডিশন / প্রয়োজনীয়তা লক্ষ্যবস্তু যুক্তি ব্যবহার করে কীভাবে আমি আমার ডাব্লুএইচকিউএল ক্যোয়ারি-ভিত্তিক সংগ্রহটি প্রতিলিপি করতে পারি? আমি এখানে কী অনুপস্থিত (অপট-গেট ব্যতীত)?