উবুন্টু ডেস্কটপ থেকে উইন্ডোজটিতে একটি অ্যাপ্লিকেশন চালু করুন


12

আমি উবুন্টুতে একটি শেল স্ক্রিপ্ট লিখতে চাই যা নিম্নলিখিতগুলি করে:

  1. ভার্চুয়ালবক্সে কোনও উইন্ডোজ 7 অতিথি ওএস বুট করুন, যদি এটি ইতিমধ্যে চালু না থাকে।

  2. উইন্ডোজে একটি শেল স্ক্রিপ্ট চালান, যেখানে উবুন্টু হোস্ট অপারেটিং সিস্টেম থেকে শেল স্ক্রিপ্ট চালু করা হয়।

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

উত্তর:


15

উইন্ডোজ অতিথিদের কিছু সীমাবদ্ধতা রয়েছে তবে কোনও স্ক্রিপ্ট থেকে বিজোড় মোডে অতিথি অ্যাপ্লিকেশনটি চালানোর জন্য যা আমরা নিম্নলিখিত পদ্ধতিটি পরীক্ষা করেছিলাম একটি লঞ্চারে রাখা যেতে পারে:

  • ভার্চুয়ালবক্স ম্যানেজার শুরু করুন
  • আপনার ব্যবহারকারী এবং পাসওয়ার্ড সহ উইন্ডোতে লগ ইন করুন
  • বিজোড় মোড Host+ এ স্যুইচ করুনL
  • বিজোড় মোডে মেশিনের অবস্থা সংরক্ষণ করুন

এখন আমরা নিম্নলিখিত কমান্ডগুলি সহ ভার্চুয়াল মেশিনের উপর সম্পূর্ণ কমান্ড লাইন নিয়ন্ত্রণ পেতে পারি:

  • সীমলেস সেভ স্টেট থেকে ভার্চুয়াল মেশিনটি শুরু করুন

    VBoxManage startvm "<Name_of_VM>"

    বা (Qt অগ্রভাগের জন্য)

    VirtualBox --startvm "<Name_of_VM>"
  • ভিএম-তে একটি অ্যাপ্লিকেশন চালান

    VBoxManage --nologo guestcontrol "<Name_of_VM>" run --exe "C:\\full\\path\\to\\program.exe" --username windowsuser --password password --wait-stdout
  • সেভ স্টেটে ভিএম শেষ করুন

    VBoxManage controlvm "Name_of_VM" savestate

আপনার উবুন্টু ডেস্কটপে বিজোড় উইন্ডোজ অ্যাপ্লিকেশন উইন্ডো উপভোগ করার জন্য এগুলিকে একটি স্ক্রিপ্টে রাখুন।

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

এছাড়াও, খালি পাসওয়ার্ড ছাড়াই বা ছাড়া অ্যাকাউন্টগুলি ব্যবহার করতে, অতিথির গোষ্ঠী নীতি পরিবর্তন করতে হবে। এটি করতে, gpedit.msc লিখে কমান্ড লাইনে গোষ্ঠী নীতি সম্পাদকটি খুলুন, কীটি খুলুন Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Optionsএবং Accounts: Limit local account use of blank passwords to console logon onlyঅক্ষম করার মানটি পরিবর্তন করুন ।

গ্রুপ নীতি সম্পাদক ছাড়াও অপারেটিং সিস্টেমগুলিতে (gpedit.msc) যেমন উইন্ডোজের হোম সংস্করণগুলি, রেজিস্ট্রি কীতে একটি DWORD তৈরি করা HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\limitblankpassworduseএবং এটি শূন্যে সেট করা একই উত্তরটি অর্জন করবে, এই উত্তর অনুসারে ।


এই প্রতিটি কমান্ড উইন্ডোজ কমান্ড লাইন বা উবুন্টু কমান্ড লাইন থেকে চালানো উচিত?
অ্যান্ডারসন গ্রিন

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

পাসওয়ার্ডটি (স্ক্রিপ্টে প্রবেশ করা হচ্ছে) উইন্ডোজ লগইন পাসওয়ার্ড, বা উবুন্টু লগইন পাসওয়ার্ড হওয়া উচিত?
অ্যান্ডারসন গ্রিন

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

এই কাজটি কি বিপরীত ম্যানারে করা উচিত (উইন্ডোজকে মূল ওএস হিসাবে চালানো এবং ভার্চুয়াল মেশিন হিসাবে লিনাক্স)
উইলিয়াম

3

এটি একটি উত্তরের চেয়ে বেশি ইঙ্গিত, তবে একটি মন্তব্যের পক্ষে এটি খুব বড়।

আপনার সম্ভবত এই তাকানো উচিত । ডক্স অনুসারে, এই কমান্ডটি হোস্ট ওএস থেকে চালিত হবে (আমি একটি উবুন্টু হোস্ট এবং উইন্ডোজ গেস্ট ধরে নিচ্ছি):

VBoxManage guestcontrol "Windows XP Pro" execute --image "cmd.exe" --username javier --verbose "/c" "regedit.exe"

উইন্ডোজে (অতিথি) রিজেডিট খুলতে হবে, তবে আমি কখনই এটি কার্যকর করতে সক্ষম হইনি।

আপনি ব্যবহার করতে পারেন

VBoxManage showvminfo "Windows XP Pro" | grep State

কোনও ভিএম চলছে কিনা তা যাচাই করতে।


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

আমি কেবল আপনার প্রথম নির্বাহকারী কমান্ডটি চেষ্টা করেছিলাম এবং উবুন্টু টার্মিনাল কমান্ডলাইন থেকে এই কমান্ডটি ব্যবহার করে "উইন্ডোজ এক্সপি" নামে একটি ইতিমধ্যে চলমান উইন্ডোজ এক্সপি ভিএম থেকে আমার প্রথম প্রয়াসে কুইকেন চালাতে সক্ষম হয়েছিল: VBoxManage guestcontrol Windows\ XP exec --image c:\\program\ files\\quicken\\qw.exe --username XXXXX --password XXXXXযেখানে XXXXX ছিল আমার ব্যবহারকারীর নাম এবং পাসওয়ার্ড।
মার্টি ফ্রাইড

হয়তো আমার সমস্যা হ'ল আমি পাসওয়ার্ড কম অ্যাকাউন্ট ব্যবহার করি।
জাভেয়ের রিভেরা

সম্ভবত ... আমি কেবল আপনার ফর্ম্যাটটি ব্যবহার করতে দৌড়ে কমান্ডটি পরিবর্তন করেছি এবং এটি সত্যই রেজিডিট চালিয়েছে।
মার্টি ফ্রাইড

তাকত বলেছে যে এটি আমার মতো পাসওয়ার্ডহীন অ্যাকাউন্টগুলিতে কাজ করে না। এটি ব্যাখ্যা করে যে আমি কখনই এটি করতে সক্ষম হইনি কেন);)।
জাভিয়ের রিভেরা

2

আমি যখন আসল ধারণাটি মুছে ফেলেছিলাম তখন বুঝতে পারি যে এটি কাজ করবে না কারণ লিনাক্স একটি ভিএম-তে উইন্ডো পার্টিশনটি অ্যাক্সেস করতে সক্ষম হবে না যদি এটি ইতিমধ্যে চালু না থাকে। এটি করার আরও জটিল উপায় থাকতে পারে, তবে এটি সত্যিকার অর্থে মূল্যবান কিনা তা আমি জানি না।

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

আপনার কাছে ২ য় স্ক্রিপ্ট থাকতে পারে যা প্রথমটিকে মুছে ফেলবে যাতে এটি পরবর্তী সময়টি চালিত হয় না।


আমি ভিজ্যুয়াল স্টুডিওর শর্টকাট এবং ইন্টারনেট এক্সপ্লোরারের জন্য একটি শর্টকাট তৈরি করতে চাই যা উবুন্টু ডেস্কটপ থেকে আহবান করা যেতে পারে (যাতে তারা ভার্চুয়াল মেশিনে চালিত হয়)। আপনি বর্ণিত পদ্ধতিটি ব্যবহার করে এটি করা যায়?
অ্যান্ডারসন সবুজ

অতিথি অপারেটিং সিস্টেম থেকে একটি হোস্ট অ্যাপ্লিকেশন (যেমন কলারপেইন্ট হিসাবে) চালু করা - আমি উল্টোটিও করা যায় কিনা তা জানতে চাই।
অ্যান্ডারসন সবুজ

অতিথি সংযোজনগুলি ব্যবহার করে বিপরীতমুখীটি কি করা যায়?
অ্যান্ডারসন সবুজ

এছাড়াও, আপনি উইন্ডোজ স্টার্টআপ ফোল্ডার বা উবুন্টু স্টার্টআপ অ্যাপ্লিকেশন তালিকার উল্লেখ করছেন?
অ্যান্ডারসন সবুজ

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

1

আমি একই জিনিসটি চেয়েছিলাম এবং গেস্টকন্ট্রোল ব্যবহার না করেই এটি সমাধান করে শেষ করেছি। আমার ম্যাকোস এক্স হোস্টে আমার একটি ফোল্ডার রয়েছে (উইন্ডোজ নামযুক্ত) যা আমার ভিউবক্স ক্লায়েন্ট একটি উইন 7 চালাচ্ছে জেড: হিসাবে ম্যাপ করেছে। আমি হোস্ট এবং আমার ক্লায়েন্টদের মধ্যে যোগাযোগের জন্য ডামি-ফাইলগুলি ব্যবহার করি:

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

#!/bin/bash

# bail if vbox is already started/running windoze...
ps ax | grep -v grep | grep 'Windows 7' > /dev/null
if [ $? -eq 0 ]; then
  echo "Sorry, Windows is already running."
  exit 0
fi

# send a message to Windoze which program to start...
touch /Users/urban/Documents/Windows/START_TS2000I.TXT

# startup Windoze in seamless mode
vboxmanage setextradata 'Windows 7' GUI/Seamless on
vboxmanage startvm 'Windows 7' &

exit 0

তারপরে উইন্ডোজ ক্লায়েন্টে আমার কাছে স্টার্টআপ-ফোল্ডারে একটি ম্যাচিং স্ক্রিপ্ট (বিএটি-ফাইল) রয়েছে যা দেখতে দেখতে এটি:

@echo off
pushd "C:\Program Files\Omega Research\Program"
if exist Z:\start_ts2000i.txt start ORTrade.exe
if exist Z:\start_ts2000i.txt del Z:\start_ts2000i.txt
.
.
.
exit 0

এইভাবে, যে কোনও সময় আমার ম্যাকের উপরে নতুন ক্লায়েন্ট-স্টার্টআপ আইকনটি যুক্ত করতে চাইলে আমি শেল স্ক্রিপ্টটি অনুলিপি করি, একটি নতুন ডামি ফাইল উদ্ভাবন করি এবং ক্লায়েন্টের বিএটি-স্ক্রিপ্টের সাথে ম্যাচিং স্টার্টআপ লাইন যুক্ত করি। দুর্দান্ত কাজ করে এবং আমি মনে করি এটি আগের পোস্টে মার্টিসের ধারণার সাথে সঙ্গতিপূর্ণ।


আপনি কি এটি কোনও উবুন্টু হোস্টে পরীক্ষা করেছেন?
ব্যবহারকারী 68186

না, তবে আমি নিশ্চিত যে এটি বিঘ্ন ছাড়াই কাজ করবে। Vbox কমান্ড একই এবং বাশ একই।
আরবান

pgrepপরিবর্তে এটি ব্যবহার করা নিরাপদ ps | grep। পরেরটি নিজেই মিলে যাওয়ার ঝুঁকি চালায়।
মুড়ু

হ্যাঁ আপনি ঠিক. আমার বিশ্বাস, স্ব-ম্যাচের সমস্যাটি দূর করতে অতিরিক্ত গ্রেপ-ভি যোগ করে পিএস ব্যবহার করে উপরে এটি ঠিক করা হয়েছে। আপনি এই ক্ষেত্রে যেমন পরামর্শ দিয়েছিলেন আমি কীভাবে পিগ্রিপ ব্যবহার করব তা অনুধাবন করতে পারিনি যেহেতু আমার ক্ষেত্রে ভিবক্স নামটি 'উইন্ডোজ the' প্রক্রিয়াটির পক্ষে একটি মন্তব্য হিসাবে যুক্তিযুক্ত: MacMini:~ urban$ ps ax | grep -v grep | grep 'Windows 7' 10874 ?? R 4:38.49 /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/VirtualBoxVM --comment Windows 7 --startvm 24507412-789d-42ed-9c79-b4faf0c2d130 --no-startvm-errormsgboxতবে সম্ভবত আপনার এই বিষয়ে কোনও পরামর্শ আছে?
নগর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.