হাইপার-ভি সার্ভার 2012 আর 2-তে উইন্ডোজসোল্ড যথাযথভাবে সরান


22

আমি হাইপার-ভি সার্ভার 2012 আর 2 ইনস্টল করেছি এমন একটি সার্ভারে যা হাইপার-ভি সার্ভার 2012 ছিল। আমি যখন এটি করেছি, তখন স্ট্যান্ডার্ড Windows.oldফোল্ডারটি তৈরি হয়েছিল। আমি এখন সেই ফোল্ডারটি নিরাপদে সরাতে চাই। সম্পূর্ণ জিইউআই সহ এটি করার স্ট্যান্ডার্ড উপায় হ'ল ডিস্ক ক্লিনআপ ব্যবহার করা, তবে অবশ্যই হাইপার-ভি সার্ভারে আমার সেই বিকল্প নেই।

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

আমার জিজ্ঞাসা করার প্রাথমিক কারণটি যেমন স্রেফ করা rmdir /sবা এমন কিছু করার বিপরীতে রয়েছে তা হ'ল Windows.oldফোল্ডারে প্রচুর জংশন রয়েছে এবং এটি করার অংশ হিসাবে আমি প্রযোজনা ওএস কপির কোনও কিছুই ভাঙতে চাই না।


আমি ক্লিনমগ্রি.এক্স.এই পড়ি কমান্ড লাইনে চলতে পারে ... নিশ্চিত না এটি সার্ভার কোর বা 2012 এ প্রযোজ্য কিনা ???
জন

উত্তর:


23

আমি প্রথমে ক্লিনmgr.exe (ডিস্ক ক্লিনআপ সরঞ্জাম) অনুলিপি করে চালানোর চেষ্টা করেছি, তবে এর ডিএলএলগুলির উপর অনেক বেশি নির্ভরতা রয়েছে যা কোর / হাইপার-ভি সার্ভারে উপস্থিত নেই।

সুতরাং পরিবর্তে আমি নিজেই ডিরেক্টরি মুছে ফেলা।

প্রথমে আমি সমস্ত জংশন পয়েন্ট এবং প্রতীকী লিঙ্কগুলি সরিয়েছি। আমি ব্যবহার করার জন্য junction.exe SysInternals থেকে। আপনার পাথের একটি ডিরেক্টরিতে এক্সিকে অনুলিপি করুন। সমস্ত জংশনের একটি তালিকা পেতে আমি এটি চালিয়েছি:

c:\tools\junction.exe -s -q C:\windows.old > %temp%\junc.txt

আমি একটি পাওয়ারশেল খুলেছি:

start powershell.exe

এবং প্রাসঙ্গিক লাইনগুলি খুঁজে পেতে এবং আবার জংশন.এক্সেক্স চালানোর জন্য নিম্নলিখিত স্ক্রিপ্টটি চালিয়েছিলেন:

 foreach ($line in [System.IO.File]::ReadLines("$env:temp\junc.txt"))
 {
     if ($line -match "^\\\\")
     {
         $file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)",""
         & c:\tools\junction.exe -d "$file"
     }
 }

এটি সমস্ত জংশন পয়েন্ট এবং আমার সিস্টেমে একক প্রতীকী লিঙ্কটিকে সরিয়ে দিয়েছে।

cmd.exe এ ফিরে আমি অনুমতিগুলি সাফ করতে এবং সমস্ত ফাইল মুছে ফেলার জন্য এখন তিনটি কমান্ড কার্যকর করেছি:

 takeown /F C:\windows.old /R /D Y
 cacls C:\windows.old /T /G Everyone:F
 rd /s /q C:\windows.old

আমার পরীক্ষায়, আমি একটি নতুন হাইপার-ভি সার্ভার 2012 ইনস্টল করেছি, তারপরে 2012 আর 2 তে আপগ্রেড করা হয়েছে, উইন্ডোজ.ল্ড এখন চলে গেছে এবং সমস্ত পুরানো জংশনের লক্ষ্যগুলি অক্ষত রেখে সিস্টেমটি ঠিক চলছে।


Junc.Txt এর সামগ্রীগুলি কী ছিল? আপনি কি এটি পেস্টবিন পোস্ট করতে পারেন? আগ্রহের কিছু যুক্ত থাকলে আমি আগ্রহী।
দীর্ঘায়ু

পেস্টবিন.কম / পিওয়াইবিজিআর 4 এপ জুনিক.টিএসটিএস-এর সমস্ত প্রাসঙ্গিক লাইন রয়েছে
পিটার

এটি ভাল কাজ করেছে বলে মনে হয়, ধন্যবাদ! আমি এখন takeownবিদ্যমান জানি , যা আমি জানতাম না স্বীকার করতে আমি কিছুটা বিব্রত বোধ করি।
মাইকবাজ - এমএসএফটি

1
ফোল্ডারটি মোছার আগে কেন জংশন পয়েন্টগুলি ম্যানুয়ালি সরানো দরকার? জংশন পয়েন্টগুলি ফাইল সিস্টেমে সংরক্ষণ করা হয়, সুতরাং অবশ্যই ফোল্ডারটির সাথে মুছে ফেলা হবে ...?
অ্যাশলে

3
@ অ্যাশলেস্টিল - কারণ জংশনগুলি রাখার সময়, টেকওনের মতো আদেশগুলি ব্যর্থ হয়। ত্রুটিটি এখানে: INFO: সিস্টেমটি নির্দিষ্ট করা পথ খুঁজে পাচ্ছে না। ("সি: \ উইন্ডোজ.ল্ড \ ডকুমেন্টস এবং সেটিংস \ সমস্ত ব্যবহারকারীদের অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ অ্যাপ্লিকেশন ডেটা \ মাইক্রোসফ্ট উইন্ডোজ \ সিস্টেমডেটা \ এস-1-5-18 \ কেবলমাত্র পড়ুন ") ত্রুটি: ফাইলের নাম, ডিরেক্টরি নাম বা ভলিউমের লেবেল বাক্য গঠন ভুল is - এটি আমার কাছে পুনরাবৃত্তি সমস্যার মতো দেখায় এবং ফাইলের পথটি দীর্ঘ হয়ে গেলে এটি বন্ধ হয়ে যায়।
পিটার হানডরফ

4

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

# Script to remove windows.old after an upgrade

# Assumes path to sysinternals is in the PATH env variable


$ErrorActionPreference = "Inquire"

junction.exe -accepteula -s -q C:\windows.old | out-file $env:temp\juncts.txt -force

foreach ($line in [System.IO.File]::ReadLines("$env:temp\juncts.txt"))
 {
     if ($line -match "^\\\\")
     {
         $file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)",""
         & junction.exe -d "$file"
     }
 }

 takeown /F C:\windows.old /R /D Y
 echo y | cacls C:\windows.old /T /G Everyone:F

 rm C:\windows.old -recurse -force
 rm "$env:temp\juncts.txt" -force

হ্যাঁ এই একটি ট্রিট কাজ করে। পাওয়ারশেল.একসি সুবিধাগুলি উন্নত করতে ভুলবেন না ("প্রশাসক হিসাবে চালান")
নেক্সাস

লাইন: প্রতিধ্বনি y | ক্যাকলস সি: \ উইন্ডোজ.ল্ড / টি / জি প্রত্যেকে: এফ হওয়া উচিত: প্রতিধ্বনি y | ক্যাকলস সি: \ উইন্ডোজ.ল্ড / টি / জি প্রত্যেকে: F <kbd> y </kbd> এবং <kbd> | </
কেবিডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.