পুটটির মাধ্যমে আমার আরএইচএল রুট পাসওয়ার্ডগুলি পরিবর্তন করতে পাওয়ারশেল ব্যবহৃত হয়েছিল, তবে আমি কীভাবে আমার পাসওয়ার্ডটি পরিবর্তন করেছি তা জানি না


8

মূলত শিরোনাম। আমার বন্ধুটি পাওয়ারশেল এবং পুটি-এর মাধ্যমে আরএইচএল পাসওয়ার্ডগুলি ব্যাচ পরিবর্তন করার জন্য আমাকে একটি স্ক্রিপ্ট সরবরাহ করেছিল, তবে আমি যে নতুন পাসওয়ার্ড দিয়েছি তা লগ ইন করার চেষ্টা করার পরে কাজ করে না I আমি মনে করি যে সমস্যাটি এটি একটি বিশেষ চরিত্রের হাত থেকে বাঁচতে পারে না think নতুন পাসওয়ার্ডে, তবে নতুন পাসওয়ার্ডটি কী হত তা আমি বুঝতে পারি না।

আমি ব্যবহৃত "নতুন পাসওয়ার্ড" এর সাথে মিল ছিল: a1b2c3d "4e5f6g7"

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

System.Management.Automation.PSCredential -argumentlist "root",$newrootPassword
     $newrootPassword2 = Read-Host "Retype new root password" -AsSecureString
     $newrootCredential2 = new-object -typename System.Management.Automation.PSCredential -argumentlist "root",$newrootPassword2


    putty.exe -ssh -pw $oldrootCredential.GetNetworkCredential().Password root@$_

    echo y | plink.exe -ssh -v -pw $oldrootCredential.GetNetworkCredential().Password root@$_ "echo root:'$newrootPassword' | chpasswd" 2>&1 

আমি নতুন পাসওয়ার্ডটি a1b2c3d "4e5f6g7" হিসাবে প্রত্যাশা করেছি; তবে লগইন করার পরে এটি কার্যকর হয় না।

উত্তর:


16

সমস্যাটি হ'ল আপনি সিকিউরস্ট্রিংকে এমন কিছুতে পাস করার চেষ্টা করছেন যা একটি স্ট্যান্ডার্ড স্ট্রিং প্রত্যাশা করে। পাসওয়ার্ডের সম্পত্তি সিকিওরস্ট্রিং ফর্ম্যাটে রয়েছে, আপনি এটি প্লিংকে পাস করতে পারবেন না, এটি কেবল সিস্টেম.সিকিউরিটি হিসাবে অনুবাদ করা হবে ecসিকিউরস্ট্রিং যদি পাসওয়ার্ড পরিবর্তন আসলে কাজ করে তবে এটিই পাসওয়ার্ড সেট করা হত।

প্লিংক কমান্ডের জন্য উপযুক্ত কোনও সিকিউরস্ট্রিংকে পাঠ্য বিন্যাসে অনুবাদ করতে আপনাকে এখান থেকে উদাহরণের মতো ফাংশনটি ব্যবহার করতে হবে

function Get-PlainText()
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [System.Security.SecureString]$SecureString
    )
    BEGIN { }
    PROCESS
    {
        $bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString);

        try
        {
            return [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr);
        }
        finally
        {
            [Runtime.InteropServices.Marshal]::FreeBSTR($bstr);
        }
    }
    END { }
}

আপনি Write-Hostপ্রকৃত plink.exe দিয়ে পরীক্ষা করার আগে আউটপুট কমান্ড লাইন মান ব্যবহার করে আপনার আদেশগুলি পরীক্ষা করতে পারেন । অথবা আপনি প্রোকমন চালাতে পারেন এবং অপারেশন এ ফিল্টার করতে পারেন প্রক্রিয়া তৈরি করুন, তারপরে আপনি যখন plink.exe চালু দেখবেন তখন আপনি সম্পূর্ণ প্রকৃত কমান্ড লাইনটি পাস করার জন্য বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন।


6
প্রিয় প্রভু কে পৃথিবীতে থাকবে ... এই এতগুলি স্তরের ভুল (আপনি নয়, পাওয়ারশেল)। যাইহোক, এই গভীর অতল গহ্বরে getোকার সাহসের জন্য আপনার আমার উর্ধ্বতন রয়েছে।
wvxvw
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.