একটি এমএসআই ফাইল থেকে সর্বজনীন সম্পত্তি পুনরুদ্ধার করা


12

উইন্ডোজ এমএসআই ফাইল থেকে উপলব্ধ জনসাধারণের সম্পত্তি পুনরুদ্ধারের জন্য কি কোনও সরঞ্জাম বা প্রক্রিয়া আছে?

এমএসআই ফাইল সরবরাহকারী কিছু বিক্রেতা এগুলি নিজেরাই নথিভুক্ত করেন না, সুতরাং উত্স কোড ব্যতীত এগুলি প্রকাশ করার কোনও উপায় আছে কিনা তা দেখার জন্য আমি আগ্রহী।


8
মাইক্রোসফ্টের ওআরসিএ , প্যান্টারের সুপারকারকা এবং অন্যান্য প্রতিটি এমএসআই সম্পাদনা আপনাকে টেবিল সহ যে কোনও সারণী ব্রাউজ / সম্পাদনা করার অনুমতি দেবে Property। এমএসআই-তে কেবল পুকিং-এর বাইরে আপনার কোনও নির্দিষ্ট কাজের প্রবাহ বা ব্যবহারের কেস আছে?
jscott

2
আমি উপলভ্য পাবলিক বৈশিষ্ট্যগুলি বুঝতে চাইছিলাম যাতে তারা বিক্রেতার কাছে বা ডকুমেন্টেশনগুলির জিজ্ঞাসা না করেই ইনস্টলেশন চলাকালীন সঠিকভাবে পাস হতে পারে (কারণ এটি সর্বদা সম্ভব নয়)। পুতুলের সাহায্যে আমরা ইনস্টলেশনের সময় এমএসআই বৈশিষ্ট্যগুলিতে পাস করতে পারি (আমরা misexec.exe গুটিয়ে রাখি), যাতে এই ক্ষমতাটি সহজ হয়।
কেন নাপিত

1
বৈশিষ্ট্য সারণীতে তালিকাভুক্ত না থাকলেও ইনস্টলেশনটি নিয়ন্ত্রণ করতে আপনি যে অন্যান্য সরকারী বৈশিষ্ট্যগুলি পাস করতে পারেন সেগুলি থাকতে পারে। কোনও শর্তের উপর নির্ভর করে সম্পত্তিগুলি গতিশীলভাবে সেট করা যেতে পারে, উদাহরণস্বরূপ রেজিস্ট্রি অনুসন্ধান। সুতরাং বিক্রেতার ডকুমেন্টেশন হ'ল তথ্যের উত্স।
আলেক্সি ইভানভ

বৈশিষ্ট্যগুলি কীভাবে তাদের মান পরিবর্তন করে তা দেখতে আপনি ভারবোজ লগিংয়ের মাধ্যমেও ইনস্টলেশন চালাতে পারেন।
আলেক্সি ইভানভ

বিলম্বের জন্য দুঃখিত - আমি অরকা এবং এটির আকর্ষণীয় চেষ্টা করেছি, তবে আপনি @ অ্যালেক্সাআইভানভের যে আচরণটি বর্ণনা করেছেন তা আমি নিশ্চিত করে দিয়েছি - যা কিছু বৈশিষ্ট্য উপস্থিত হবে না। আমি splunk.msi এবং এর ডক্স দিয়ে এটি নিশ্চিত করেছি। আমি অনুমান করছি যে ওর্কাতে প্রদর্শিত হ'ল ডিফল্ট রয়েছে, তবে এটি কোনও সাধারণ তালিকা নয়। ভার্বোজ লগিং পদ্ধতি সম্পর্কে আপনি আরও কিছুটা ব্যাখ্যা করতে পারেন?
কেন নাপিত

উত্তর:


8

লেসএমসি .msi থেকে কোনও বৈশিষ্ট্য পুনরুদ্ধার করার জন্য একটি কমান্ড লাইনের পাশাপাশি ইন্টারেক্টিভ অ্যাপ্লিকেশন সরবরাহ করে।

ইন্টারেক্টিভভাবে, .msi খুলুন তারপর টেবিল ভিউতে যান এবং "সম্পত্তি" নির্বাচন করুন বা টাইপ করুন। তবে এটি সম্পত্তির নাম দেওয়ার সময় এটি যে সম্পত্তির জন্য বৈধ মান দেয় না ((বা আমি সঠিক জায়গাটি আবিষ্কার করতে পারি নি n't)

কনসোল করার জন্য প্রোপার্টি টেবিলের তালিকা করতে কমান্ড লাইন (হতাশ হয়ে, সাধারণ > output.csvপুনর্নির্দেশের মাধ্যমে ক্যাপচার করা যায় না )

lessmsi l -t Property ...\path\to\setup.msi

1

একটি এমএসআই ফাইল ফাইল কোনও অভ্যন্তরীণ ডাটাবেসে জনসাধারণের সম্পত্তি সঞ্চয় করে, আপনি আসলে ভিবিএস স্ক্রিপ্ট এবং এসকিউএল ব্যবহার করে এগুলি সম্পর্কে জিজ্ঞাসা করতে পারেন।

এখানে একটি উদাহরণ স্ক্রিপ্ট যা এমএসআই ফাইলে থাকা সমস্ত সম্পত্তি ফিরিয়ে দেবে। সর্বজনীন বৈশিষ্ট্যগুলি সংজ্ঞায়িত করার জন্য এটি মূলধন অক্ষরগুলি ব্যবহার করার কনভেনশন, যাতে তারা সাধারণত সনাক্তযোগ্য able


1

আপনি যদি এর জিইউআই খুলতে এবং কিছু ম্যানুয়াল তদন্ত করতে ইচ্ছুক হন তবে কম পরিমাণে এটি একটি দুর্দান্ত সরঞ্জাম যা এখানে অবশ্যই কাজ করে। তবে, আমি বলব, নিম্নলিখিত কমান্ডটি সমস্ত বৈশিষ্ট্য নির্ভরযোগ্যভাবে উপস্থাপন করে না:

lessmsi l -t Property <msi_name>

সম্ভাব্য সমস্ত বৈশিষ্ট্য পাওয়ার গ্যারান্টি দেওয়ার (আরও ভাল) আসলে এমএসআই ফাইলটি ইনস্টলেশন বা মেরামত করা বা আনইনস্টল করা এবং প্রক্রিয়াটি লগইন করা। নিম্নলিখিত কমান্ডটি কেবলমাত্র বৈশিষ্ট্য এবং অন্য কিছু রেকর্ড করে:

<msi_name> /lp! <msi_property_logfile>

উপরের আদেশটি সমান:

msiexec /lp! <msi_property_logfile> /i <msi_name>

আমার পছন্দের পদ্ধতি, কিন্তু, হয় না আসলে (এবং শুধু পরিবর্তে নিষ্কর্ষ) ইনস্টল / Remove / মেরামত। কম পদ্ধতিতে এই পদ্ধতির সুবিধাগুলি হ'ল এটির জন্য তৃতীয় পক্ষের ইউটিলিটি (অর্থাত্ কম পরিমাণে ) প্রয়োজন হয় না এবং এটির জন্য আপনাকে কোনও ইনস্টলেশন নিয়ে ঝামেলা করতে হবে না। প্রোগ্রামটি ইনস্টল করার জন্য আপনার পর্যাপ্ত ডিস্কের জায়গা রয়েছে তা দিয়ে আপনি এটি করতে পারেন:

msiexec /a <msi_name> /lp! <msi_property_logfile> TARGETDIR=<absolute_path_to_extract_to>

নোট করুন যে <absolute_path_to_extract_to>কোনও অস্তিত্বহীন ডিরেক্টরিতে নির্দেশ করতে পারে (কমান্ডটি ডিরেক্টরিগুলি প্রয়োজনীয় বা ব্যর্থ করে দেবে)।

যদি আপনি যে কারণে যেকোন কারণে ইনস্টলেশন ইউআইকে ঘৃণা করেন তবে /qrবিকল্পটি যুক্ত করতে পারেন , যা 'হ্রাস' করবে এবং সম্ভবত সম্পত্তি লগিং প্রক্রিয়াটিকে ক্ষতিগ্রস্থ না করে UI কে মুছে ফেলবে। তবে সতর্কতা অবলম্বন করুন - যদি আপনি হ্রাসযুক্ত ইউআই (যেমন /qb| /passiveবা /qn| /quiet) এর চেয়ে "নিম্ন" হন তবে আপনার <msi_property_logfile>কিছু সম্পত্তি হারাতে পারে।


এই পদ্ধতির সমস্যা হ'ল: আপনাকে অবশ্যই ইনস্টলারটি চালাতে হবে। এমনকি আপনি এটি একটি অমানুষিক টার্গেটডায়ারে ইনস্টল করে রেখেছেন, আপনি এখনও নিবন্ধগুলিতে গোলযোগ করেছেন।
ওয়াং

0

কার্বন পাওয়ারশেল মডিউলটি ব্যবহার করে এখন আমি যেভাবে এটি করছি। মডিউলটি ইনস্টল করতে টাইপ করুন:

Install-Module -Name 'Carbon' -AllowClobber

তারপর সহজভাবে

msi your_msi_path.msi

উদাহরণ:

msi putty-64bit-0.70-installer.msi

ProductName                 ProductVersion Manufacturer ProductCode                         

-----------                 -------------- ------------ -----------                         

PuTTY release 0.70 (64-bit) 0.70.0.0       Simon Tatham 45b3032f-22cc-40cd-9e97-4da7095fa5a2

-1

আমি মনে করি যে এখন এটি করার সর্বোত্তম উপায় পাওয়ারশেল ব্যবহার করা। এখানে একটি স্ক্রিপ্ট রয়েছে যা কাজটি সত্যিই ভালভাবে সম্পাদন করে : https://gallery.technet.microsoft.com/scriptcenter/Get-MsiDatediaProperties-09d9c87c


এই উত্তরটি কেবল একটি লিঙ্ক, যা পরিবর্তন / অদৃশ্য হয়ে যেতে পারে।
ডেভিড মাকোগন

অন্যান্য উত্তর রয়েছে যা কেবল একটি লিঙ্ক। আমি অন্য লোকের কোড অনুলিপি করা এবং আটকানো স্বাচ্ছন্দ্য বোধ করি না I আমি মনে করি আমার উত্তরটি একটি বিকল্প বিকল্প দেয় এবং আমি সত্যই ডাউন ভোট বুঝতে পারি না।
গিগি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.