অটোরুন ব্যবহার করে একটি ড্রাইভে চিঠি বরাদ্দ করা হচ্ছে


0

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


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

মাউন্টভোলটি জিইউইডি ব্যবহার করে চিঠিটি নির্ধারণ করতে ব্যবহার করা যেতে পারে?
মাইক্রফ্ট হোমস

দেখে মনে হচ্ছে মাউন্টভোলটি গাইড ব্যবহার করতে পারে, ভলুয়েনাম আর্গুমেন্টটি ব্যবহার করে এবং জিইউইডিটিকে সম্মতি জানাতে পারে তবে মাউন্টভোল ড্রাইভ লেটারে মাউন্ট করবে না, তবে একটি বিদ্যমান পথে at আপনি ভলিউম মাউন্ট করার জন্য একটি আনমাউন্টড লক্ষ্য পথ নির্দিষ্ট করতে পারবেন না। যদি তা আপনার পক্ষে ঠিক থাকে তবে তা কাজ করা উচিত। এখানে আরও দেখুন: টেকনিকট.মাইক্রোসফট /en-us/library/bb490934.aspx
ফ্র্যাঙ্ক থমাস

@ মাইক্রফটহোলস: আপনি কি প্রতিটি কম্পিউটারে একটি প্রোগ্রাম / পরিষেবা ইনস্টল করতে পারবেন ড্রাইভটি প্লাগ ইন করা হবে?
করণ

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

উত্তর:


1

ভলিউম চিঠিটি কেতে পরিবর্তন করতে আমি এখানে যে ব্যাচ ফাইলটি লিখেছি তা এখানে রয়েছে the কোডটি বাড়ানোর জন্য যে কোনও সহায়তার প্রশংসা করা হবে।

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

:mainBody
set "volume=\Volume{8bc9f784-9f15-11e4-be58-a60f30d14122}"
set "drive="

for %%D in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
mountvol %%D: /L | findstr "%volume%" >nul
if not errorlevel 1 (
if %%D==K (
echo DONE!
goto end
) else (
set "drive=%%D"
goto clearK
)
)
)

:clearK
mountvol K: /L >nul
if errorlevel 1 (
echo K: is free...
) else (
echo K: is taken...
for /f "tokens=1 delims=" %%A in ('mountvol K: \L') do SET currdriveguid=%%A
for %%D in ( Z Y X W V U T S R Q P O N M L K J H G F E D B A ) do (
mountvol %%D: /L >nul
if errorlevel 1 (
mountvol K: /d
mountvol %%D:\ currdriveguid
echo Current Volume moved to %%D:...
goto assignK
)
)
)


: assignK
if not defined drive (
mountvol K:\ \\?%volume%\
) else (
mountvol %drive%: /D
mountvol K:\ \\?%volume%\
)

:end

0

একই কাজটি করার জন্য আমি পাওয়ারশেল স্ক্রিপ্টও তৈরি করেছিলাম। পাওয়ারশেল ব্যাচের স্ক্রিপ্টের চেয়ে আরও ভাল কাজ করে।

$driveI = Get-WmiObject -Class win32_volume -Filter "DriveLetter='I:'"

if ($driveI -eq $null)  {

    write-host "I: is free..."

}   elseif ($driveI.DeviceID.Contains("7899c0f7-f556-11e4-9cf2-7071bc4ab2b5") -And  "$drive.SerialNumber = '-1675536360'")    {

    write-host "I: is already assigned to the required disk..."
    Write-Host "Press any key to continue ..."
    $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    exit

}   else    {    
    write-host "I: is occupied..."
    foreach ( $s in @("'Z:'", "'Y:'", "'X:'", "'W:'", "'V:'", "'U:'", "'T:'", "'R:'", "'Q:'", "'P:'", "'O:'", "'N:'", "'M:'", "'L:'", "'K:'", "'J:'", "'H:'", "'G:'", "'F:'", "'E:'", "'D:'", "'B:'", "'A:'"))
    {
        $testdrv = Get-WmiObject -Class win32_volume -Filter "DriveLetter=$s"

        if ($testdrv -eq $null)
        {
            $s = $s.Trim([char]0x0027)
            Set-WmiInstance -input $driveI -Arguments @{DriveLetter=$s}
            Write-Host I: has been moved to $s
            break
        }
    }
}

$diary = Get-WmiObject -Class win32_volume -Filter "Label='My Diary'"
if ($diary.DeviceID.Contains("7899c0f7-f556-11e4-9cf2-7071bc4ab2b5") -And  "$diary.SerialNumber = '-1675536360'")
{
    Set-WmiInstance -input $diary -Arguments @{DriveLetter="I:"}
    Write-Host "Press any key to continue ..."
    $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    exit

}   else    {

    Write-Host Error Occured!
    Write-Host "Press any key to continue ..."
    $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    exit
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.