উইন্ডোজ ফাইল সার্ভার অ্যাডমিনিস্ট্রেটরদের প্রায়ই একাধিক ব্যবহারকারীর দ্বারা একযোগে খোলা শেয়ার করা ফাইলগুলিকে জোর করে বন্ধ করতে হয়। সাধারণত ডেস্কটপ সফ্টওয়্যারটি প্রত্যাশিতভাবে কাজ না করলে, ব্যবহারকারী ভুলভাবে লগ-অফ করলে বা ব্যবহারকারী একটি ফাইল খুলে সেটি বন্ধ করতে ভুলে গেলে (বাড়িতে, ছুটিতে, ইত্যাদি) হলে এটি ঘটে। এই সমস্ত ক্ষেত্রে, শেয়ার করা নেটওয়ার্ক ফোল্ডারে থাকা ফাইলটি এখনও খোলা (এবং লক করা) এবং অন্য ব্যবহারকারীদের দ্বারা সংশোধন করা যাবে না। একটি লক করা ফাইল (ব্যবহৃত অ্যাপ্লিকেশনের উপর নির্ভর করে) খোলার চেষ্টা করার সময় অন্যান্য ব্যবহারকারীরা এই ধরনের একটি বার্তা দেখতে পারেন:The document filename is locked for editing by another user. To open a read-only copy of his document, click…
এই নিবন্ধে আমরা আপনাকে দেখাব কিভাবে একটি উইন্ডোজ ফাইল সার্ভারে খোলা ফাইলগুলির তালিকা পেতে হয়, কোন ব্যবহারকারী শেয়ার করা ফোল্ডারে একটি ফাইল লক করেছে তা খুঁজে বের করতে এবং খোলা ফাইলগুলি আনলক করতে ফাইল সেশনগুলি কীভাবে বন্ধ (রিসেট) করতে হয়। পি>
উইন্ডোজ সার্ভারে একটি শেয়ার্ড নেটওয়ার্ক ফোল্ডারে খোলা ফাইলগুলি দেখুন
আপনি বিল্ট-ইন কম্পিউটার ম্যানেজমেন্ট ব্যবহার করে উইন্ডোজ ফাইল সার্ভারে ব্যবহারকারীদের দ্বারা খোলা ফাইলগুলির তালিকা পেতে পারেন (compmgmt.msc
) গ্রাফিক স্ন্যাপ-ইন।
আপনার ফাইল সার্ভারে কম্পিউটার ম্যানেজমেন্ট কনসোল খুলুন (অথবা আপনার কম্পিউটারে চলমান ম্যানেজমেন্ট কনসোল থেকে সার্ভারের সাথে দূরবর্তীভাবে সংযোগ করুন) এবং সিস্টেম টুলস -এ যান -> ভাগ করা ফোল্ডারগুলি ৷ -> ফাইল খুলুন। বর্তমান SMB সার্ভারে খোলা ফাইলগুলির একটি তালিকা উইন্ডোর ডানদিকে প্রদর্শিত হয়। তালিকায় ফাইলটির স্থানীয় পথ, ফাইলটি খোলা ব্যবহারকারী অ্যাকাউন্টের নাম, লকের সংখ্যা এবং ফাইলটি যে মোডে খোলা হয়েছে (পড়ুন বা লিখুন+পড়ুন) রয়েছে।
আপনি বিল্ট-ইন openfiles.exe
ব্যবহার করে খোলা ফাইলগুলির একই তালিকা পেতে পারেন কনসোল টুল। উদাহরণস্বরূপ, নিম্নলিখিত কমান্ড ব্যবহার করে আপনি সেশন আইডি, ব্যবহারকারীর নাম এবং খোলা ফাইলের সম্পূর্ণ স্থানীয় পথ পেতে পারেন:
openfiles /Query /fo csv |more
যখন একজন ব্যবহারকারী দূরবর্তীভাবে সার্ভারে একটি ভাগ করা নেটওয়ার্ক ফোল্ডারে একটি ফোল্ডার বা ফাইল অ্যাক্সেস করে, তখন একটি নতুন SMB সেশন তৈরি হয়। আপনি এই সেশন আইডিগুলি ব্যবহার করে খোলা ফাইলগুলি পরিচালনা করতে পারেন।
আপনি একটি দূরবর্তী সার্ভারে খোলা ফাইলগুলির একটি তালিকা প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, আপনাকে lon-fs01-এ শেয়ার করা ফোল্ডারে সমস্ত খোলা ফাইল তালিকাভুক্ত করতে হবে হোস্ট:
openfiles /Query /s lon-fs01 /fo csv
openfiles
কমান্ড আপনাকে স্থানীয়ভাবে খোলা ফাইলগুলির তালিকা দেখতে দেয়। এটি ব্যবহার করতে, “অবজেক্টের তালিকা বজায় রাখুন সক্ষম করুন৷ ” কমান্ড ব্যবহার করে বিকল্প:openfiles /local on
, এবং আপনার সার্ভার রিবুট করুন। এর পরে, openfiles
কমান্ড স্থানীয় প্রক্রিয়া দ্বারা খোলা ফাইলগুলি প্রদর্শন করবে (এটি শুধুমাত্র ডিবাগিং উদ্দেশ্যে এই মোডটি ব্যবহার করার পরামর্শ দেওয়া হয়, কারণ এটি সার্ভারের কার্যকারিতাকে নেতিবাচকভাবে প্রভাবিত করতে পারে)। একটি শেয়ার করা ফোল্ডারে কে একটি ফাইল লক করছে তা কীভাবে খুঁজে বের করবেন?
যে ব্যবহারকারী filename.docx খুলেছে (লক করেছে) তাকে সনাক্ত করতে রিমোট সার্ভার lon-fs01-এ শেয়ার করা নেটওয়ার্ক ফোল্ডারে ফাইল, এই কমান্ডটি চালান:
openfiles /Query /s lon-fs01 /fo csv | find /i "filename.docx"
খুঁজুন
/i
কী কেস-সংবেদনশীল ফাইল অনুসন্ধান করতে ব্যবহৃত হয়। আপনি ফাইল নামের শুধুমাত্র একটি অংশ নির্দিষ্ট করতে পারেন. উদাহরণ স্বরূপ, আপনাকে খুঁজে বের করতে হবে কে একটি XLSX ফাইল খুলেছে যার নামে "sale_report" আছে। নিম্নলিখিত পাইপ ব্যবহার করুন:
openfiles /Query /s lon-fs01 /fo csv | find /i "sale_report"| find /i "xlsx"
খুঁজুন
অবশ্যই আপনি এই ফাইলটি কম্পিউটার ম্যানেজমেন্ট জিইউআই-এ খুঁজে পেতে পারেন, তবে এটি কম সুবিধাজনক (এই কনসোলটি অনুসন্ধান বৈশিষ্ট্য প্রদান করে না)।
কীভাবে একটি SMB শেয়ারে একটি খোলা ফাইল জোরপূর্বক বন্ধ করবেন?
একটি খোলা ফাইল বন্ধ করতে, এটিকে ফাইল খুলুন ফাইলগুলির তালিকায় খুঁজুন৷ বিভাগ এবং ফাইল খুলুন বন্ধ করুন নির্বাচন করুন প্রসঙ্গ মেনুতে৷
৷
আপনার ফাইল সার্ভারে শত শত খোলা ফাইল থাকলে, কনসোলে নির্দিষ্ট ফাইলটি খুঁজে পাওয়া সহজ হবে না। ওপেনফাইলস ব্যবহার করা আরও সুবিধাজনক কমান্ড লাইন টুল। আমরা ইতিমধ্যে বলেছি, এটি খোলা ফাইলের সেশন আইডি ফেরত দেয়। এই সেশন আইডি ব্যবহার করে আপনি SMB সংযোগ রিসেট করে ফাইলটিকে জোর করে বন্ধ করতে পারেন৷
৷প্রথমে, আপনাকে খোলা ফাইলটির সেশন আইডি খুঁজে বের করতে হবে:
openfiles /Query /s lon-fs01 /fo csv | find /i "farm"| find /i ".xlsx"
খুঁজুন
প্রাপ্ত SMB সেশন আইডি ব্যবহার করে ব্যবহারকারীকে ফাইল থেকে সংযোগ বিচ্ছিন্ন করুন:
openfiles /Disconnect /s lon-fs01 /ID 617909089
আপনি জোরপূর্বক সমস্ত সেশন পুনরায় সেট করতে পারেন এবং একটি নির্দিষ্ট ব্যবহারকারীর দ্বারা খোলা সমস্ত ফাইল আনলক করতে পারেন:
openfiles /disconnect /s lon-fs01/u corp\mjenny /id *
openfiles /disconnect
ব্যবহার করুন কমান্ড অথবা Close-SMBOpenFile
cmdlet (নীচে আলোচনা করা হয়েছে) খুব সতর্ক। Get-SMBOpenFile:PowerShell ব্যবহার করে ওপেন ফাইল হ্যান্ডলার খুঁজুন এবং বন্ধ করুন
একটি SMB সার্ভারে শেয়ার এবং ফাইলগুলি পরিচালনা করার জন্য নতুন cmdlets Windows Server 2012/Windows 8-এর PowerShell সংস্করণে উপস্থিত হয়েছে৷ এই cmdletsগুলি একটি খোলা ফাইলের সাথে দূরবর্তীভাবে নেটওয়ার্ক সংযোগ বন্ধ করতে ব্যবহার করা যেতে পারে৷
আপনি Get-SMBOpenFile ব্যবহার করে খোলা ফাইলগুলির একটি তালিকা পেতে পারেন৷ cmdlet. বন্ধ-SmbOpenFile একটি দূরবর্তী ফাইলের সাথে সংযোগ বন্ধ/রিসেট করতে ব্যবহৃত হয়।
Windows SMB সার্ভারে খোলা ফাইলগুলির একটি তালিকা প্রদর্শন করতে, কমান্ডটি চালান:
Get-SMBOpenFile
কমান্ডটি ফাইল আইডি, সেশন আইডি এবং সম্পূর্ণ ফাইলের নাম(পথ) প্রদান করে।
আপনি ব্যবহারকারী এবং কম্পিউটারের নাম (আইপি ঠিকানা) সহ খোলা ফাইলগুলির একটি তালিকা প্রদর্শন করতে পারেন:
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID
আপনি একটি নির্দিষ্ট ব্যবহারকারীর দ্বারা খোলা সমস্ত ফাইল তালিকাভুক্ত করতে পারেন:
Get-SMBOpenFile –ClientUserName "corp\mjenny"|select ClientComputerName,Path
অথবা একটি নির্দিষ্ট কম্পিউটার/সার্ভার থেকে:
Get-SMBOpenFile –ClientComputerName 192.168.1.190| select ClientUserName,Path
নির্বাচন করুন
আপনি প্যাটার্ন দ্বারা খোলা ফাইলগুলির একটি তালিকা প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, সমস্ত exe তালিকাভুক্ত করতে শেয়ার করা ফোল্ডার থেকে ফাইল খোলা হয়েছে:
Get-SmbOpenFile | Where-Object {$_.Path -Like "*.exe*"}
অথবা একটি নির্দিষ্ট নামের ফাইল খুলুন:
Get-SmbOpenFile | Where-Object {$_.Path -Like "*reports*"}
Close-SmbOpenFile cmdlet ওপেন ফাইল হ্যান্ডলার বন্ধ করতে ব্যবহৃত হয়। আপনি ID দ্বারা ফাইলটি বন্ধ করতে পারেন:
Close-SmbOpenFile -FileId 4123426323239
কিন্তু সাধারণত নামের দ্বারা ফাইলটি বন্ধ করা আরও সুবিধাজনক:
Get-SmbOpenFile | where {$_.Path –like "*annual2020.xlsx"} | Close-SmbOpenFile -Force
Out-GridView
সহ cmdlet, আপনি খোলা ফাইলগুলি সন্ধান এবং বন্ধ করার জন্য একটি সাধারণ GUI ফর্ম তৈরি করতে পারেন। নিম্নলিখিত স্ক্রিপ্ট খোলা ফাইল তালিকাভুক্ত করা হবে. আপনি SMB সেশন রিসেট করতে চান এমন খোলা ফাইলগুলি খুঁজে পেতে আউট-গ্রিডভিউ টেবিলে অন্তর্নির্মিত ফিল্টারগুলি ব্যবহার করা উচিত৷ তারপরে আপনাকে প্রয়োজনীয় ফাইলগুলি নির্বাচন করতে হবে এবং ঠিক আছে ক্লিক করতে হবে। ফলস্বরূপ, নির্বাচিত ফাইলগুলি জোর করে বন্ধ করা হবে৷
Get-SmbOpenFile|select ClientUserName,ClientComputerName,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose
কিভাবে PowerShell ব্যবহার করে রিমোট কম্পিউটারে খোলা ফাইলগুলি বন্ধ করবেন?
Get-SMBOpenFile
এবং Close-SmbOpenFile
cmdlets দূরবর্তীভাবে খোলা (লক করা) ফাইলগুলি খুঁজে পেতে এবং বন্ধ করতে ব্যবহার করা যেতে পারে। প্রথমে, আপনাকে একটি CIM সেশনের মাধ্যমে একটি দূরবর্তী Windows SMB সার্ভারের সাথে সংযোগ করতে হবে:
$sessn = New-CIMSession –Computername lon-fs01
Enter-PSSession
অথবা Invoke-Command
. নিচের কমান্ডটি pubs.docx খোলা ফাইলের জন্য SMB সেশন খুঁজে পাবে এবং ফাইল সেশন বন্ধ করুন।
Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*pubs.docx"} | Close-SMBOpenFile -CIMSession $sessn
Y
টিপে ফাইলটি বন্ধ করার বিষয়টি নিশ্চিত করুন . ফলস্বরূপ, আপনি ফাইলটি আনলক করেছেন। এখন অন্য ব্যবহারকারীরা এটি খুলতে পারে৷
একটি SMB সার্ভারে একটি ফাইল বন্ধ করার নিশ্চিতকরণ অপসারণ করতে,
-Force
ব্যবহার করুন মূল. PowerShell-এর সাহায্যে, আপনি SMB সেশন বন্ধ করতে পারেন এবং নির্দিষ্ট ব্যবহারকারীর খোলা সমস্ত ফাইল আনলক করতে পারেন (একজন ব্যবহারকারী বাড়িতে গিয়ে খোলা ফাইলগুলি প্রকাশ করেনি)। উদাহরণস্বরূপ, ব্যবহারকারী mjenny এর সমস্ত ফাইল সেশন পুনরায় সেট করতে , এই কমান্ডটি চালান:
Get-SMBOpenFile -CIMSession $sessn | where {$_.ClientUserName –like "*mjenny*"}|Close-SMBOpenFile -CIMSession $sessn