উত্পাদন পরিবেশে টার্মিনাল সার্ভার ব্যবহারকারী লগঅফ, সংযোগ বিচ্ছিন্ন করতে বা পুনরায় সেট করতে অক্ষম


19

আমি ২০০৮ টার্মিনাল সার্ভারে কোনও ব্যবহারকারীর সেশনটি সংযোগ বিচ্ছিন্ন, লগঅফ, বা পুনরায় সেট করার বিষয়ে কিছু ধারণা খুঁজছি (এটি সম্পূর্ণ লক-আপ থাকায় ব্যবহারকারী হিসাবে লগইন করতে অক্ষম)। এটি একটি উত্পাদনের পরিবেশ, সুতরাং সার্ভারটি রিবুট করা বা সিস্টেম-ব্যাপী কিছু করা আপাতত প্রশ্নের বাইরে। এটির সাথে আমাদের সহায়তা করার জন্য কোনও পাওয়ারশেল কৌশল?

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

সাহায্য করুন!


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


2
আমার উইন্ডোজ 2008 আর 2 এসপি 1 টার্মিনাল সার্ভারগুলিতে ঠিক একই সমস্যা আছে। তারা কেবল এলোমেলোভাবে ঝুলিয়ে রাখে এবং ব্যবহারকারীরা সার্ভারে লগঅফ বা লগন করতে অক্ষম। আমি লোকালিকে স্থানীয় প্রশাসক বা ডোমেন প্রশাসক হিসাবে লগইন করতে পারি না। সার্ভারের সাথে সংযোগ করার একমাত্র উপায়টি হল compmgmt.msc ব্যবহার করা হলেও এখানেও আমি ইভেন্ট লগগুলিতে কোনও সমস্যা দেখতে পাচ্ছি না। কিছু পর্যায়ে আমি একটি বার্তা পেয়েছি যে আইএমএ পরিষেবা সাড়া দিচ্ছে না এবং সার্ভারটি তেহ ফার্ম থেকে সরিয়ে দেওয়া হয়েছে। এটি সমাধানের একমাত্র উপায় হ'ল সার্ভারটিকে হার্ড পুনরায় বুট করা। পাওয়ার অফ এবং আবার ফিরে। আমি এর



1
এই সমস্যাটির যে কারও পক্ষে মুখোমুখি হওয়ার সম্ভাব্য কার্যকর লিঙ্কগুলি এগিয়ে চলেছে
এলবিভান

উত্তর:


7

এই একই সমস্যাটি সমাধান করার জন্য আমার পক্ষে যে কাজ হয়েছে তা হ'ল লক করা অ্যাকাউন্টের অধীনে চলমান সমস্ত প্রক্রিয়াটি টাস্ক ম্যানেজারের অধীনে থেকে মুছে ফেলা এবং তারপরে আমি কেবলমাত্র সেই অ্যাকাউন্টটি (প্রশাসকের অ্যাকাউন্ট থেকে) লগ অফ করতে সক্ষম হয়েছি।

ব্যবহারকারী তখন অ্যাকাউন্টের অধীনে আবার লগ ইন করতে সক্ষম হন।

কোনও রিবুট প্রয়োজন ছিল না এবং তৃতীয় পক্ষের কোনও সফ্টওয়্যার ডাউনলোড করার দরকার নেই।


ধন্যবাদ, আমাকে সার্ভার রিবুট করা থেকে বাঁচিয়েছে! 1 টি আটকে থাকা সেশনের কারণে ওয়ার্কডে সত্যই সবাইকে বের করে দিতে চাননি want
MAW74656

এই প্রক্রিয়াগুলি মেরে ফেলা কি নিরাপদ? আমার ইউজার হয়েছে csrss.exe, dwm.exe, LoginUI.exe, এবং winlogon.exe। আমি ভেবেছিলাম হত্যাকাণ্ড winlogon.exeএকটি
বিএসওডিকে

6

আমি সার্ভারটি পুনরায় বুট করার প্রয়োজন ছাড়াই কীভাবে অ্যাকাউন্টটি পুনরায় সেট করব তা আমি ভাগ করতে চাই। সবার আগে আপনার সার্ভারে প্রশাসকের অ্যাক্সেস থাকা দরকার। আমি নিম্নলিখিত লগঅন বিকল্পটি প্রয়োগ করুন: : mstsc / V servername / কনসোল / অ্যাডমিন সার্ভার অ্যাক্সেস করার জন্য। তারপরে "উইন্ডোজ টাক্স ম্যানেজার" এ, ব্যবহারকারীদের ট্যাবে যান এবং যে অ্যাকাউন্টটি আপনি "লগ অফ" করতে চান তার ডান ক্লিক করতে লগ অফ নির্বাচন করুন off এটি সেই অ্যাকাউন্ট দ্বারা ব্যবহৃত লক সেশনটি মুক্ত করা উচিত।


1
এটা সবসময় না ছাড়া। প্লাস ওপি জানিয়েছে যে তারা ইতিমধ্যে এটি চেষ্টা করেছে।
বিউওউলফনোড 42

এই ইস্যুটির জন্য, টাস্ক ম্যানেজারে সাইন আউট বোতাম → ব্যবহারকারীরা কিছুই করেন না।
বিনকি

5

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


পরীক্ষিত এবং সেই সমাধান কাজ করে।
ওভারমাইন্ড করুন

1
আমার জন্য না. এছাড়াও ব্যবহারকারীর যেকোন প্রসেসকে হত্যা করতে প্রশাসক হিসাবে টাস্ক ম্যানেজার ব্যবহার করতে পারে না।
বিউওলফনোড 42

3

আপনি একটি সেন্টিমিডি শুরু করতে পারেন, কোয়েরি সেশনটি করতে পারেন, হত্যা করার জন্য সেশনটির আইডি চেক করতে পারেন এবং তারপরে একটি পুনরায় সেট করুন । উদাহরণস্বরূপ, যদি কোয়েরি সেশনের সাথে আপনি জানতে পারেন যে সেশন নামটি rdp-tcp # 1 আপনি হত্যা করতে চান তবে আপনি পুনরায় সেট করতে পারবেন সেশন আরডিপি-টিসিপি # 1 এবং এটি খুন করতে পারেন।


ধন্যবাদ, তবে তাতেও কোনও লাভ হয়নি।
l0c0b0x

আমি যখন reset session 9এই কমান্ডটি চালিত করি তখন কেবল স্তব্ধ হয়ে যায়। : আমার অধিবেশন সক্রিয় হতে উপস্থিত থাকলে চলমান চার প্রসেস আছে চলতে crss.exe, dwm.exe, LogonUI.exe, এবং winlogon.exei.imgur.com/cFM62RA.png এবং query session 9আউটপুট No User exists for 9
বিনকি

3

আমি মনে করি আজ আমার Win2008R2 টার্মিনাল সার্ভারে এটি ঘটেছে। লক্ষণগুলি হ'ল: 1. তিনি আমাকে "'সংযুক্ত' বার্তাটি চিরতরে স্তব্ধ করে দিয়ে ফোন করেছিলেন। তিনি কেবলমাত্র একজন সাধারণ ব্যবহারকারী তাই আমি সমস্যাগুলির বিস্তারিত বিবরণ আশা করতে পারি না। ২.সেশনটি পুনরায় সেট করার / পুনরায় সেট করার চেষ্টা করা হয়েছে (যা সাধারণত এই ক্ষেত্রে সহায়তা করে) - কাজ করেনি। অধিবেশনটি এখনও 'সংযোগ বিচ্ছিন্ন' স্থিতির সাথে তালিকায় স্তব্ধ। ৩. সেই ব্যবহারকারীর জন্য সমস্ত প্রক্রিয়া হত্যার চেষ্টা করা - সহায়তা করেনি। অধিবেশন স্থগিত করে এবং হত্যা করতে অস্বীকার করে।

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

পিএস আমি কোনও সেশনকে সত্যিই জোর করে হত্যা করার কোনও উপায় খুঁজে পাইনি :(


এটি আমার জন্য এটি স্থির! এটি ব্যবহারকারী অপেক্ষা করছিল যে অন্য কোনও ব্যবহারকারীকে সংযোগ বিচ্ছিন্ন করতে বা বাতিলটিকে চাপুন। আমি বাতিল চাপলাম এবং এখন সেই ব্যবহারকারী যা টাস্ক ম্যানেজারের ব্যবহারকারীদের ট্যাবে আটকে ছিল তা অদৃশ্য হয়ে গেল। ধন্যবাদ!
বিনকি

আমার পরিস্থিতিটি যখন এই সমস্যাটি দেখাচ্ছিল তখন এটিই ছিল: i.imgur.com/W6eO5wW.png i.imgur.com/EpPwyJc.png i.imgur.com/cFM62RA.png এছাড়াও, আমি উইন্ডোজ সার্ভার ব্যবহার করছি 2016
বিনকি

3

আমাদের সবেমাত্র আমাদের উইন্ডোজ সার্ভার 2008 আর 2 রিমোট ডেস্কটপ সার্ভারের সাথে একই রকম সমস্যা ছিল। আরডিএস ম্যানেজারের দিকে তাকানোর সময় ব্যবহারকারীর সেশনটি "অ্যাক্টিভ" দেখিয়েছিল তবে এর সাথে সম্পর্কিত সেশন আইডি # বা সংযুক্ত ডিভাইসটি প্রদর্শন করা হয়নি (উভয়ই ফাঁকা ছিল)।

উপরের সমস্ত কৌশলগুলি সমস্যার সমাধান করেনি। প্রশ্নযুক্ত ব্যবহারকারী হিসাবে সংযোগ করার সময়, একটি ত্রুটি বার্তা ফিরে এসে জানিয়েছিল যে টার্মিনাল সার্ভারটি ব্যস্ত ছিল এবং পরে আবার চেষ্টা করতে বা প্রশাসকের সাথে যোগাযোগ করতে।

আমরা সার্ভারটিকে রিবুট করার পাশাপাশি ক্ষতবিক্ষত করেছি।


2

উইন্ডোজ সার্ভার ২০১ in সালেও আমার একই সমস্যা ছিল The ব্যবহারকারী লগইন করতে সক্ষম হয়নি।

সুতরাং আমি এতিম অধিবেশনটি সংযোগ বিচ্ছিন্ন করার জন্য নিম্নলিখিত পদক্ষেপগুলি চেষ্টা করেছি:

  1. সিএলআই কিউইনস্টায় সমস্ত উপলব্ধ সেশনগুলি, নিষ্ক্রিয় এবং সক্রিয় তালিকাগুলির তালিকা রয়েছে, সেখানে একটি ব্যবহারকারীর নাম ব্যতীত একটি সংযোগ বিচ্ছিন্ন সেশন (স্ক্রিনশটে "geter।" নামে পরিচিত) আছে, তবে একটি সেশন আইডি রয়েছে।

সক্রিয় সেশনগুলি দেখান এবং তাদের হত্যা করুন

  1. সেশন আইডি দিয়ে ()) থেকে ১। আমি এই অধিবেশনটি পুনরায় সেট করার সেশন with ( fyi : rwinsta একটি রিসেট সেশনের জন্য একটি নাম) দিয়ে হত্যা করার চেষ্টা করেছি

  2. এটি একটি সেশনের জন্য কাজ করেছে, তবে পরের বার এটির কোনও প্রভাব নেই, তাই আমি টাস্ক ম্যানেজার এবং ব্যবহারকারী ট্যাবটি খুললাম opened প্রত্যেকটি দূরবর্তী ডেস্কটপ ব্যবহারকারীর জন্য আপনি একটি প্রসারণযোগ্য তালিকা পেয়েছেন - একটি তালিকার কোনও ব্যবহারকারীর নাম নেই এবং কেবল 4 টি কার্য চলমান দেখায়।

  3. আমি প্রকটটি চেষ্টা করেছিলাম: ব্যবহারকারীকে লগ ইন করে। কোন প্রভাব ছাড়াই।

ব্যবহারকারীর লগঅফ করার চেষ্টা করছি

  1. সুতরাং আমি এই ব্যবহারকারীর কাছে নির্ধারিত 4 টি কার্য শেষ করার চেষ্টা করেছি। সাবধানতা অবলম্বন করুন, কারণ কিছু কাজ, সর্বাধিক গুরুত্বপূর্ণভাবে csrss.exe, নিহত হওয়ার পরেও সিস্টেমটি পুনরায় চালু হতে পারে। আমি সেগুলি এড়িয়েছি এবং কিছু স্পষ্টত আরডিপি-কার্য মেরেছি killed

পদক্ষেপ / চেষ্টা 4 এর পরেও শেষ ক্র্যাশ হওয়া সেশনটি মারা গিয়েছিল এবং ব্যবহারকারী আবার লগইন করতে সক্ষম হয়েছিল

  1. যদি এটি এখনও কাজ করে না, অন্য একটি প্রশ্ন থেকে এই সমাধানটি চেষ্টা করে দেখুন : আপনি যখন আরডিপি ক্লায়েন্টের সাথে সংযুক্ত হন, তখন এটি "বিশদ" -বাটনটি ক্লিক করুন। সেখানে আপনার একটি ত্রুটি দেখতে পাওয়া উচিত এবং আপনি আবার চেষ্টা করতে বা উপেক্ষা করতেও ক্লিক করতে পারেন

কোন প্রক্রিয়াটি আপনি হত্যা করেছেন এবং কোনটি হত্যা করবেন না সে সম্পর্কে আপনি আরও নির্দিষ্ট করে বলতে পারেন? আমি মনে করি যে আমি লাফালাফি করা উচিত winlogon.exeকিন্তু মত অন্যদের সম্পর্কে নিশ্চিত নই LoginUI.exe, csrss.exeএবং dwm.exe
বিনকি

দ্বিতীয় সেশনের লক্ষণগুলি আপনি আমার এবং সার্ভারসফল্ট / এ / 176080/164429 এর মতোই শোনালেন । আরও সম্পূর্ণ সমাধানের চেষ্টা করার জন্য আপনি সম্ভবত "সংযুক্তি" যুক্ত করতে পারেন এবং এমনকি প্রক্রিয়াগুলি হত্যার প্রয়োজন এড়াতে পারেন।
বিনকি

@ বিঙ্কি এটি "csrss.exe" হওয়া উচিত - আপনি যদি এই প্রক্রিয়াটি হত্যা করেন তবে সিস্টেমটি পুনরায় চালু হবে।
NR

1

এটি পরীক্ষা করে দেখতে পারা যায় যে ব্যবহারকারীর কাছে Alt + ট্যাব সহ রিমোট ডেস্কটপ উইন্ডোটির পিছনে কোনও শংসাপত্রের পপ-আপ বাক্স নেই।

একজন সহকর্মীর একই সমস্যা ছিল; লগ-অফ, বা পুনরায় সেট করতে পারেনি এবং তার সমস্ত প্রক্রিয়া ম্যানুয়ালি বন্ধ হয়ে গেছে। আমি যখন তিনি FROM থেকে সরিয়ে ফেলছেন সেই সিস্টেমের জন্য গুই অ্যাক্সেস করার চেষ্টা করলাম, আমি রিমোট সেশনের পিছনে একটি শংসাপত্র বাক্স লুকিয়ে দেখলাম।


1

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

আমি কীভাবে এটি সমাধান করেছি তা এখানে:

  1. আমি সেশন আইডি দিয়েছি qwinsta
  2. winlogon.exeহ্যাং সেশনের সাথে আমি পিআইডি এর অবস্থান নির্ধারণ করেছি query process /ID:yourid
  3. আমি প্রক্রিয়াটি মেরে ফেলেছি taskkill /f /PID yourPID

যাওয়ার পথ। আমি অন্যথায় এটি না ঘটার জন্য কোনও সমাধান খুঁজে পেতে চাই।


1

আমার জন্য যা কাজ করেছিল তা হ'ল:

  • সার্ভারে লগ ইন করুন
  • টাস্ক ম্যানেজার ওপেন করুন
  • ব্যবহারকারী ট্যাবে ব্যবহারকারীর সন্ধান করুন
  • ডান ক্লিক করুন, সংযোগ করুন, ব্যবহারকারীর পাসওয়ার্ড লিখুন, আমি একটি 'দয়া করে অপেক্ষা করুন' স্ক্রিনটি দেখেছি
  • Alt-ট্যাব টিপুন, যেটি আমাকে সার্ভার থেকে লগ অফ করে এবং ব্যবহারকারীকেও লগ অফ করেছে

1

লকড রিমোট ডেস্কটপ অ্যাপ্লিকেশন ব্যবহারকারীদের সাথে আমার এই সমস্যাটি ছিল। আমি এই পাওয়ারশেল স্ক্রিপ্টটি 2 মিনিটের বেশি সংযোগ বিচ্ছিন্ন হিসাবে দেখানো ব্যবহারকারীদের লগ অফ করতে একটি নির্ধারিত টাস্কে চালানোর জন্য লিখেছিলাম। কেবলমাত্র সম্পাদনাটি হ'ল SERVERNAME যা আমি রিমোট ডেস্কটপ ব্রোকার সার্ভার বাদ দিতে সেট করেছি, তবে আপনি নিজের পছন্দ মতো কোনও সার্ভার বা একেবারেই বাদ দিতে পারবেন না।

আমার স্ক্রিপ্টটি উইন্ডোজ সার্ভার 2012 আর 2 এর জন্য লিখেছিল, যাইহোক ...

স্ক্রিপ্ট এটি করে:

  • সমস্ত রিমোট ডেস্কটপ ব্যবহারকারী সেশনের একটি তালিকা পান ets
  • "STATE_DISCONNECTED" না বলে এমন কোনও সেশন উপেক্ষা করে।
  • ব্রোকার সার্ভার (বা অন্য কোনও সার্ভার) উপেক্ষা করে
  • ইউনিফাইড সেশন আইডির সাথে কোনও সেশন উপেক্ষা করে
  • সংযোগের সময় নেই এমন কোনও সেশন উপেক্ষা করে
  • সংযোগগুলির সাথে সংযোগ বিচ্ছিন্ন করার সময়গুলির জন্য, এটি বর্তমান সময়টি পরীক্ষা করে এবং যদি এখন এবং সংযোগ বিচ্ছিন্ন করার সময়টির পার্থক্যটি এক্স মিনিটেরও বেশি হয় (এই ক্ষেত্রে ২) তবে উইনলগন প্রক্রিয়াটি হ্রাস করে।
  • এটি লগ অফ কমান্ড জারি করার চেষ্টা করে (উইনলগন প্রক্রিয়াটি হত্যার পরে এটি সম্ভবত ব্যর্থ হবে)।

এটা আমার জন্য কাজ করে! আমি আশা করি এটি অন্য কাউকে সাহায্য করবে! :)

CLS
$RD = Get-RDUserSession | select ServerName, UserName, SessionState, DisconnectTime, UnifiedSessionId, SessionId #Get details about the sessions
foreach ($item in $RD) {
    $UsessionID = $item.UnifiedSessionId -as [int] 
    $sessionID = $item.SessionId -as [int] 
    if ($item.SessionState -eq "STATE_DISCONNECTED" -and $item.ServerName -ne "SERVERNAME" -and $item.DisconnectTime -ne $null -and $item.UnifiedSessionId -ne $null){
        $TimeDiff = New-TimeSpan -start $item.DisconnectTime -end (Get-Date) #check time difference between disconnect time and now. If time is greater than 2 minutes....
        if ($TimeDiff.Minutes -gt 2) {
            #Kill winlogon session for the user
            Get-WmiObject -ComputerName $item.Servername -query "select * from win32_process where name='winlogon.exe'" | Where-Object {$_.SessionId -eq $SessionId} | %{$_.terminate()}
            #Log off user if session still exists (will fail if user kicked)
            Invoke-RDUserLogoff -HostServer $item.ServerName -UnifiedSessionID $UsessionID -Force -erroraction 'silentlycontinue'
            }
         }
      }

বা আপনি যদি এমন কোনও সংস্করণ পছন্দ করেন যা আপনি পর্দায় কী ঘটছে তা দেখতে পাচ্ছেন:

 CLS
    $RD = Get-RDUserSession | select ServerName, UserName, SessionState, DisconnectTime, UnifiedSessionId, SessionId
    foreach ($item in $RD) {
        $UsessionID = $item.UnifiedSessionId -as [int]
        $sessionID = $item.SessionId -as [int]
        if ($item.SessionState -eq "STATE_DISCONNECTED" -and $item.ServerName -ne "SERVERNAME" -and $item.DisconnectTime -ne $null -and $item.UnifiedSessionId -ne $null){
            #On Screen Output
            write-host " Name : " $Item.UserName -ForegroundColor "yellow" -NoNewline
            write-host " Unified Session Id : " $UsessionID -ForegroundColor "darkcyan" -NoNewline
            write-host " User Session Id : " $sessionID -ForegroundColor "darkyellow" -NoNewline
            write-host " Session State : " $item.SessionState -ForegroundColor "magenta" -NoNewline
            write-host " Server : " $item.ServerName -ForegroundColor "cyan" -NoNewline
            write-host " Disconnect Time : " $item.DisconnectTime -ForegroundColor "gray" 
            #End On Screen Output
            $TimeDiff = New-TimeSpan -start $item.DisconnectTime -end (Get-Date)
            if ($TimeDiff.Minutes -lt 2) {
                write-host " Disconnected for less than 2 minutes" -ForegroundColor "Green"}
            else {
                write-host " Disconnected for more than 2 minutes" -ForegroundColor "Red" -BackgroundColor "darkyellow"
                write-host " Killing session : " $item.ServerName " ID : " $UsessionID $item.UserName -ForegroundColor "Red"
                #Kill Process "Winlogon.exe" for the user (this should kill the session)
                Get-WmiObject -ComputerName $item.Servername -query "select * from win32_process where name='winlogon.exe'" | Where-Object {$_.SessionId -eq $SessionId} | %{$_.terminate()}
                #Logout User (if session still exists)
                Invoke-RDUserLogoff -HostServer $item.ServerName -UnifiedSessionID $UsessionID -Force -erroraction 'silentlycontinue'
                Write-host " Done! " -ForegroundColor "Green" -BackgroundColor "blue"
                }
             }
          }

1

নোটপ্যাডে একটি ফাইল তৈরি করুন এবং এটি ফ্যাসেসিওন সিএমডি কল করুন। কমান্ড ক্যোয়ারী সেশন / সার্ভার স্থাপন করুন: servername | / i "% 1" সন্ধান করুন এবং একটি ডিরেক্টরিতে সংরক্ষণ করুন। রিসেসেসিওন.সিএমডি নামে আরেকটি ফাইল তৈরি করুন এবং সেশন% 1 / সার্ভারটি পুনরায় সেট করুন:% 2 এবং সংরক্ষণ করুন।

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


কমান্ড হাইলাইট করতে পাঠ্য বিন্যাসকরণ বিকল্পগুলি ব্যবহার করুন, এবং পাঠযোগ্যতার ক্ষমতায়ন করুন। এটি একটি ভাল উত্তর, তবে দয়া করে এটি সম্পাদনা করুন।
মার্কো

কমান্ডগুলি এত ছোট হলে ব্যাচ ফাইলগুলি লেখার কোনও অর্থ নেই এবং আপনাকে যে কোনও উপায়ে তাদের তর্ক করতে হবে
বিনকি

1
  1. এর সাথে সেশন আইডিটি সন্ধান করুন qwinsta
  2. সেশনের অধীনে সমস্ত প্রক্রিয়া মেরে ফেলুন taskkill /FI "SESSION eq 1" /F, ধরে নিলেন যে আপনি যে সেশন আইডিটি শেষ করতে চেয়েছিলেন তা কিউইনস্টা থেকে ফিরে এসেছে 1

এটি সার্ভার 2012 সংস্করণ 6.2 ​​বিল্ড 9200 এ কাজ করেছে, আমি এটি উইন্ডোজের সমস্ত সংস্করণে কাজ করার আশা করব।


1

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

    # .SYNOPSIS
    #   Checks for disconnected sessions and logs off the disconnected user sessions.

    #.DESCRIPTION
    #   Checks for disconnected sessions and logs off the disconnected user sessions.

    #.NOTES
    #   File Name: Logoff-DisconnectedSession.ps1
    #   Author   : Bart Kuppens
    #   Version  : 1.1

    #.EXAMPLE
    #   PS > .\Logoff-DisconnectedSession.ps1


    function Ensure-LogFilePath([string]$LogFilePath)
    {
     if (!(Test-Path -Path $LogFilePath)) {New-Item $LogFilePath -ItemType directory >> $null}
    }

    function Write-Log([string]$message)
    {
       Out-File -InputObject $message -FilePath $LogFile -Append
    }

    function Get-Sessions
    {
       $queryResults = query session
       $starters = New-Object psobject -Property @{"SessionName" = 0; "UserName" = 0; "ID" = 0; "State" = 0; "Type" = 0; "Device" = 0;}
       foreach ($result in $queryResults)
       {
          try
          {
             if($result.trim().substring(0, $result.trim().indexof(" ")) -eq "SESSIONNAME")
             {
                $starters.UserName = $result.indexof("USERNAME");
                $starters.ID = $result.indexof("ID");
                $starters.State = $result.indexof("STATE");
                $starters.Type = $result.indexof("TYPE");
                $starters.Device = $result.indexof("DEVICE");
                continue;
             }

             New-Object psobject -Property @{
                "SessionName" = $result.trim().substring(0, $result.trim().indexof(" ")).trim(">");
                "Username" = $result.Substring($starters.Username, $result.IndexOf(" ", $starters.Username) - $starters.Username);
                "ID" = $result.Substring($result.IndexOf(" ", $starters.Username), $starters.ID - $result.IndexOf(" ", $starters.Username) + 2).trim();
                "State" = $result.Substring($starters.State, $result.IndexOf(" ", $starters.State)-$starters.State).trim();
                "Type" = $result.Substring($starters.Type, $starters.Device - $starters.Type).trim();
                "Device" = $result.Substring($starters.Device).trim()
             }
          } 
          catch 
          {
             $e = $_;
             Write-Log "ERROR: " + $e.PSMessageDetails
          }
       }
    }

    Ensure-LogFilePath($ENV:LOCALAPPDATA + "\DisconnectedSessions")
    $LogFile = $ENV:LOCALAPPDATA + "\DisconnectedSessions\" + "sessions_" + $([DateTime]::Now.ToString('yyyyMMdd')) + ".log"

    [string]$IncludeStates = '^(Disc)$'
    Write-Log -Message "Disconnected Sessions CleanUp"
    Write-Log -Message "============================="
    $DisconnectedSessions = Get-Sessions | ? {$_.State -match $IncludeStates -and $_.UserName -ne ""} | Select ID, UserName
    Write-Log -Message "Logged off sessions"
    Write-Log -Message "-------------------"
    foreach ($session in $DisconnectedSessions)
    {
       logoff $session.ID
       Write-Log -Message $session.Username
    }
    Write-Log -Message " "
    Write-Log -Message "Finished"  

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

  • আমি
    আমার কিছু সার্ভারে নিয়মিত সেশন চেক করতে এবং সংযোগ বিচ্ছিন্ন করতে একটি নির্ধারিত টাস্ক ব্যবহার করে স্ক্রিপ্টটি চালিত করি ।
    এটি কোনও ইন্টারঅ্যাকশন প্রয়োজন ছাড়াই স্বায়ত্তশাসিতভাবে কাজ করে ।
  • আমি এটি উইন্ডোজ 2008 আর 2 সার্ভার এবং উইন্ডোজ 2012 আর 2 সার্ভার অপারেটিং সিস্টেমে ব্যবহার করি।
  • এটি কেবলমাত্র সেশনগুলি বন্ধ করে দেয় যা সংযোগ বিচ্ছিন্ন ছিল।
  • এটি ব্যবহারকারী বা সেশনগুলির সাথে একটি 'লগ' ফাইল আপডেট করে যা এটি সংযোগ বিচ্ছিন্ন করেছে।

আপনি কি তা ব্যাখ্যা করতে পারেন?
কনরাড গাজেস্কি

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

0

লগঅফ প্রক্রিয়াটিকে অবরুদ্ধ করে এখনও কোনও প্রক্রিয়া চলছে। ক্ষতিগ্রস্থ ব্যবহারকারীর জন্য এখনও চলমান প্রক্রিয়াগুলি পরীক্ষা করুন। তারপরে ডাইনি দেখার জন্য একে একে হত্যার প্রক্রিয়াটি সমস্যা তৈরি করছে।

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runরেজিস্ট্রি কীটি পরীক্ষা করুন যা কেবলমাত্র প্রয়োজনীয় প্রক্রিয়াগুলি শুরু হয়েছে are 64 বিট এটি হয় HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run


0

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


0

ঠিক একই পরিবেশটি নয় (আমাদের কাছে 2012r2 আছে) তবে হাইপার-ভি ভার্চুয়াল মেশিন ম্যানেজমেন্ট পরিষেবা (ভিএমএমএস) পুনরায় চালু করা আমার জন্য সংযোগটি প্রকাশ করেছে।


0

আপনাকে প্রসেসে ক্লিক করতে হবে এবং সমস্ত ব্যবহারকারীর কাছ থেকে প্রক্রিয়া প্রদর্শন করতে হবে এবং তারপরে আপনি সংযোগ বিচ্ছিন্ন করতে সক্ষম হবেন।

রিমোট ডেস্কটপ সেশন হোস্ট কনফিগারেশনের অধীনে কোনও নির্দিষ্ট বিরতির পরে সংযোগ বিচ্ছিন্ন বা নিষ্ক্রিয় সেশনের অধীনে একটি অধিবেশন নীতি কেন তৈরি করবেন না।


0

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


0

আপনি সর্বদা আপনার স্থানীয় মেশিন থেকে পাওয়ারশেল ব্যবহার করতে এবং এটি দূরবর্তীভাবে করতে পারতেন

Invoke-command -computername <servername> -Credential (get-credential) { 
    $session = ((quser | ? { $_ -match <username> }) -split ' +' )[2]
    logoff $session
} 

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

-1

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


-1

আপনি কি ডি রিমোট ডেস্কটপ পরিষেবাদি পরিচালক থেকে লগঅফ ডে ব্যবহারকারীর জন্য চেষ্টা করেছেন? প্রশাসনিক সরঞ্জামগুলিতে যান -> রিমোট ডেস্কটপ পরিষেবাদি -> রিমোট ডেস্কটপ পরিষেবাদি পরিচালক এবং ডি সেশন লগ অফ করুন। এটি কাজ করতে পারে।


-1

উইন্ডো শুরু করতে যান এবং আপনার নামে ক্লিক করুন

নমুনা এখানে দেখুন


আমি মনে করি এটি এখানে অন্যান্য বেশ কয়েকটি জবাবের পুনরাবৃত্তি (যার বেশিরভাগটি বরং আরও বিশদযুক্ত ) - যেমন সার্ভারসফল্ট /a/804638/402709 । এটি আপনার উত্তরটিকে কিছু প্রসঙ্গে এবং আপনার নিজের অভিজ্ঞতার সাথে প্রসারিত করতে সহায়তা করতে পারে ।
iwaseatenbyagrue

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