উইন্ডোজ এসএস এর সমতুল্য - কীভাবে একটি দূরবর্তী মেশিনে সংযোগ করবেন এবং কমান্ড লাইনে অ্যাক্সেস করবেন?


19

উইন্ডোতে * নিক্স মেশিনের জন্য নকশা করা একটি কাঠামো বাড়ানোর সমাধান নিয়ে আমার সমস্যা হতে পারে। ফ্রেমওয়ার্কটি বর্তমানে এক * নিক্স সার্ভার থেকে শুরু করে অন্যান্য * নিক্স সার্ভারে ssh এর বাইরে চলে যায় এবং বিভিন্ন কমান্ডের একটি গুচ্ছ সম্পাদন করে যেমন লগ ফাইলগুলি পরীক্ষা করা, উত্স নিয়ন্ত্রণ থেকে ফাইলগুলি সিঙ্ক করে নেওয়া, লগগুলি উত্স নিয়ন্ত্রণে ফিরে জমা দেওয়া ইত্যাদি etc. বড় টুকরা আমি I'm আটকে থাকা হ'ল দূরবর্তী উইন্ডোজ মেশিনগুলিতে কীভাবে সংযোগ স্থাপন করা যায় এবং কমান্ড লাইনটি অ্যাক্সেস করা যায়। অন্য উইন্ডোজ মেশিন থেকেও সংযোগটি আসতে পারে, এটি ইউনিক্স মেশিন থেকে শুরু করতে হবে না, এটি উইন্ডো থেকে উইন্ডোতে ইউনিক্সের পরিবর্তে উইন্ডোতে যেতে পারে।

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

ssh ${user}@${server} "cd /app/app_name/logs; <export source control params>; <submit logs to source control>" >> Log.txt

এছাড়াও, আমি তৃতীয় পক্ষের সরঞ্জাম ব্যবহার না করা পছন্দ করব (আমার বাজেট প্রায় $ 0)। আমি পিএসএক্সেক এবং আরও কয়েকজনকে পরীক্ষা করে দেখেছি তবে দেখে মনে হচ্ছে আপনার অ্যাডমিন অ্যাক্সেস দরকার বা ব্যবহারকারীদের / সরল পাঠ্যে পাস করতে হবে।


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

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

উত্তর:


14

পাওয়ারশেল রিমোটিং ব্যবহার করুন: https://msdn.microsoft.com/en-us/powershell/scriptting/core-powershell/running-remote-commands

নির্লজ্জভাবে কপি-পেস্ট করা:

উইন্ডোজ পাওয়ারশেল রিমোটিং

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

একটি ইন্টারেক্টিভ সেশন শুরু করুন

একটি একক দূরবর্তী কম্পিউটারের সাথে একটি ইন্টারেক্টিভ সেশন শুরু করতে, এন্টার-পিএসএসশন সেন্টিমিলেট ব্যবহার করুন। উদাহরণস্বরূপ, সার্ভার 0 রিমোট কম্পিউটারের সাথে একটি ইন্টারেক্টিভ সেশন শুরু করতে, টাইপ করুন:

Enter-PSSession Server01

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

ইন্টারেক্টিভ সেশনটি শেষ করতে, টাইপ করুন:

Exit-PSSession

একটি রিমোট কমান্ড চালান

এক বা একাধিক দূরবর্তী কম্পিউটারে যে কোনও কমান্ড চালাতে, ইনভোক-কমান্ড সেন্টিমিলেট ব্যবহার করুন। উদাহরণস্বরূপ, সার্ভার01 এবং সার্ভার02 রিমোট কম্পিউটারগুলিতে গেট-ইউআইকিউल्चर কমান্ড চালানোর জন্য টাইপ করুন:

invoke-command -computername Server01, Server02 {get-UICulture}

আউটপুট আপনার কম্পিউটারে ফিরে আসবে।

LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com

স্ক্রিপ্ট চালান

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

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি সার্ভার01 এবং সার্ভার02 রিমোট কম্পিউটারগুলিতে DiskCollect.ps1 স্ক্রিপ্টটি চালায়।

invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1

একটি স্থির সংযোগ স্থাপন করুন

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

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি সার্ভার 0 কম্পিউটারে একটি রিমোট সেশন এবং সার্ভার 2 কম্পিউটারে অন্য একটি দূরবর্তী সেশন তৈরি করে। এটি সেশন অবজেক্টগুলিকে ভেরিয়েবলে সংরক্ষণ করে।

$s = new-pssession -computername Server01, Server02

এখন যে সেশনগুলি প্রতিষ্ঠিত হয়েছে, আপনি সেগুলিতে যে কোনও কমান্ড চালাতে পারেন। এবং সেশনগুলি অবিরাম থাকার কারণে আপনি একটি কমান্ডে ডেটা সংগ্রহ করতে এবং পরবর্তী কমান্ডে এটি ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি vari গুলি ভেরিয়েবলের সেশনগুলিতে একটি গেট-হটফিক্স কমান্ড চালায় এবং এটি ফলাফলটি $ এইচ ভেরিয়েবলের মধ্যে সংরক্ষণ করে। $ H ভেরিয়েবলটি প্রতিটি সেশনে is s এর মধ্যে তৈরি করা হয় তবে স্থানীয় সেশনে এটি বিদ্যমান নেই।

invoke-command -session $s {$h = get-hotfix}

এখন আপনি পরবর্তী কমান্ডগুলিতে $ h ভেরিয়েবলের ডেটা ব্যবহার করতে পারেন, যেমন নীচের মতো। ফলাফল স্থানীয় কম্পিউটারে প্রদর্শিত হয়।

invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"} }

5
এটি করার আদি উপায় এবং এটি গ্রহণযোগ্য উত্তর আইএমএইচও হওয়া উচিত।
গ্রেগরি হিগলে

এসএসএইচ সংযোগের জন্য সার্ভারে 22 পোর্ট ব্যবহার করে, আপনি কি দয়া করে আমাকে এই পাওয়ারশেল সমাধানের ব্যবহার বন্দরটি পরীক্ষা করতে সহায়তা করতে পারেন?
লুক

1
@ লুক ব্লগস.টেকনেট.মাইক্রোসফট. / ক্রিস্টওই / ২২/ 6 / ২০/ ২৯৯৮-৫৯৯86 হ'ল ডিফল্ট, তবে বেশিরভাগ জিনিসের মতো আপনি অন্য একটি বন্দর নির্দিষ্ট করতে পারেন
শান্তেভা

4

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


দুর্ভাগ্যক্রমে এসএসএইচ সার্ভারটি ফ্রিওয়্যার নয়।
হ্যারি জনস্টন

4

উইন্ডোজের জন্য ওপেনএসএইচ পোর্ট ইনস্টল করুন - এটি নিখরচায় এবং ক্লায়েন্ট এবং সার্ভার উভয়ই সরবরাহ করে।


1
সুরক্ষা সংক্রান্ত সমস্যা রয়েছে যদিও - কারণ এটি সাইগউইন ব্যবহার করে, এটি একাধিক-ব্যবহারকারী নিরাপদ নয়। (যদি না আমার তথ্য
হ্যারি জনস্টন

1
মাইক্রোসফ্ট উইন্ডোতে এটি সঠিকভাবে পোর্টিংয়ে কাজ করছে। তবে এটি বেশ ধীর অগ্রগতি বলে মনে হচ্ছে: ব্লগস.এমএসএনএন.মাইক্রোসফট.
মার্টিন ব্রাউন

2

আপনি psexec চেষ্টা করতে পারেন যা আপনাকে ফাইল শেয়ার পরিষেবা (বা তবে এটি বলা হয়) এর উপর দিয়ে একটি রিমোট শেল দেয়। রয়েছে winexe আপনি ক্লায়েন্ট হিসাবে লিনাক্স ব্যবহার করতে চান তাহলে।


1

আমি পাওয়ারশেলের ধারণাটি সত্যিই পছন্দ করি যদিও কনফিগারেশনটিতে সার্ভার এবং ক্লায়েন্টের জন্য কয়েক মিনিট সময় লাগতে পারে।

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

দুটি করণীয় আপনার করতে হবে: (আমি আপনাকে প্রশাসক হিসাবে সঠিকভাবে প্রতিটি কনফিগারেশন করতে হবে তা উল্লেখ করার দরকার নেই? কেবল পাওয়ারশেল / সেন্টিমিডি 'প্রশাসক হিসাবে খুলুন))

  • প্রথমত, WINRM সেবা (Windows অ্যাপ্লিকেশন দূরবর্তী আদেশ প্রক্রিয়া) এ সক্ষম সার্ভার

সার্ভার কম্পিউটারে, পাওয়ারশেল খুলুন এবং রান করুন:

Enable-PSRemoting -Force

এটি করার অন্যান্য উপায়ও রয়েছে। আপনি একটি কমান্ড প্রম্পট খুলুন এবং চালাতে পারেন:

winrm -quickconfig

পরিবর্তন করার জন্য আরও অনেকগুলি কনফিগারেশন থাকতে পারে। এখনই দরকার নেই।

  • দ্বিতীয়ত, এটি লক্ষণীয় যে ক্লায়েন্ট এবং সার্ভার সর্বদা একে অপরকে প্রমাণীকরণ করার চেষ্টা করে। সার্ভারটি নিশ্চিত করতে চায় যে ক্লায়েন্টটি আসলে সার্ভারে অ্যাক্সেসের অনুমতি দিয়েছে কি না। এই কারণে আপনি সার্ভারে কিছু প্রমাণীকরণের তথ্য সরবরাহ করতে যাচ্ছেন (এসএসএইচের মতো, আপনি সম্ভবত ব্যবহারকারীর নাম / পাসওয়ার্ড সরবরাহ করছেন)। বিপরীতে, ক্লায়েন্টটি নিশ্চিত করতে চায় যে সার্ভারটি কোনও বিশ্বস্ত। বিভিন্ন স্কিম ব্যবহার করা যেতে পারে, যেমন কোনও স্মার্ট পাবলিক শংসাপত্র সরবরাহকারী কোনও সার্ভারকে বিশ্বাস করা বা আইপি ঠিকানার ভিত্তিতে বিশ্বাস করা বা কেবলমাত্র প্রত্যেকে বিশ্বাস করা !! আবার এসএসএইচে আমাদের একই পদ্ধতি রয়েছে যেখানে কোনও সার্ভার কিছু প্রমাণীকরণের তথ্য সরবরাহ করতে পারে। (আসুন এখনই এসএসএইচের বিবরণগুলি ভুলে যাই)

যদি উভয় কম্পিউটারই একই 'ডোমেনে' থাকে (কম্পিউটারগুলির একটি গ্রুপ যার প্রত্যেকেরই বিভিন্ন বিধি ও ভূমিকা রয়েছে) তবে প্রক্রিয়াটি সহজ বলে মনে হচ্ছে (আমি এটি চেষ্টা করি নি)।

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

Enable-PSRemoting -Force

(আবার উল্লেখযোগ্য! কিছু রেফারেন্সে বলা হয়েছে যে ক্লায়েন্ট কম্পিউটার এবং সার্ভার কম্পিউটার অবশ্যই 'প্রাইভেট' নেটওয়ার্কগুলিতে থাকতে হবে বা পুরো জিনিসটি কাজ করবে না। উপরের কমান্ডটি চালানোর সময় আমি এর জন্য ত্রুটি বার্তা পাচ্ছি তবে সমস্ত কিছুই সন্ধান করে । আমি এই সত্য সম্পর্কে নিশ্চিত নই। পূর্বোক্ত ওয়েব পৃষ্ঠাটি দেখুন)

তারপরে পাওয়ারশেলের ক্লায়েন্ট কম্পিউটারে চালান :

Set-Item wsman:\localhost\client\trustedhosts *

যার অর্থ ক্লায়েন্ট সমস্ত সার্ভারগুলিতে (হোস্টগুলি) বিশ্বাস করবে। শেষ পর্যন্ত, এটি চালান ( ক্লায়েন্টের উপরে আমি আবার জোর দিয়েছি):

Restart-Service WinRM

আপনি যেতে প্রস্তুত। শান্তেবার উত্তর বাকি পরীক্ষা করে দেখুন। ক্লায়েন্ট কম্পিউটারে, উদাহরণস্বরূপ চালান:

Enter-PSSession -ComputerName 12.34.56.78 -Credential Administrator

এটি একটি পাসওয়ার্ড জানতে চাইবে এবং রিমোট কনসোলটি খোলে যা দেখতে দেখতে:

[12.34.56.78]: PS C:\Users\Administrator\Documents>

তারপরে আপনি এসএসএইচের মতো কমান্ডগুলি সন্নিবেশ করান।

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