আমি কি কোনও ব্যাট ফাইলে একটি ইনপুট পাঠ্য মুখোশ করতে পারি?


102

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

@echo off
SET /P variable=Password : 
echo %variable%
Pause

এটি ইনপুটটি পড়বে তবে আমি এই পদ্ধতির সাহায্যে পাঠ্যটি মাস্ক করতে পারি না।


উত্তর:


50

এক্সপি এবং সার্ভার 2003 অবধি আপনি অন্য অন্তর্ভুক্ত সরঞ্জাম (ভিবিএস স্ক্রিপ্ট) ব্যবহার করতে পারেন - নিম্নলিখিত দুটি স্ক্রিপ্টগুলি আপনি চান কাজটি করে।

প্রথম getpwd.cmd,:

@echo off
<nul: set /p passwd=Password: 
for /f "delims=" %%i in ('cscript /nologo getpwd.vbs') do set passwd=%%i
echo.

তারপরে getpwd.vbs:

Set oScriptPW = CreateObject("ScriptPW.Password")
strPassword = oScriptPW.GetPassword()
Wscript.StdOut.WriteLine strPassword

getpwd.vbsকেবল ব্যবহারকারীর কাছ থেকে পাসওয়ার্ড ইনপুট পাসওয়ার্ড বস্তুর ব্যবহার করে এবং তারপর মানক আউটপুটে এটি মুদ্রণ (পরের প্যারা কেন যে টার্মিনাল দেখা নেই ব্যাখ্যা করবে)।

getpwd.cmdকমান্ড স্ক্রিপ্ট একটি বিট trickier হয় কিন্তু এটি মূলত হিসাবে অনুসরণ করে কাজ করে।

"<nul: set /p passwd=Password: "কমান্ডের প্রভাবটি হ'ল নতুন লাইনের অক্ষর ছাড়াই প্রম্পটটি আউটপুট করা - শেল "echo -n"থেকে কমান্ডটি অনুকরণ করার এটি একটি লুক্কায়িত উপায় way bashএটি passwdএকটি অপ্রাসঙ্গিক পার্শ্ব প্রতিক্রিয়া হিসাবে খালি স্ট্রিংয়ে সেট করে এবং nul:ডিভাইসটি থেকে এটির ইনপুট নেওয়ার কারণে ইনপুটটির জন্য অপেক্ষা করে না ।

"for /f "delims=" %%i in ('cscript /nologo getpwd.vbs') do set passwd=%%i"বিবৃতি trickiest বিট। এটি কোনও মাইক্রোসফ্ট "বিজ্ঞাপন" ছাড়াই ভিবিএস স্ক্রিপ্ট চালায়, যাতে একমাত্র লাইন আউটপুটটি পাসওয়ার্ড হয় (ভিবিস্ক্রিপ্ট থেকে) "Wscript.StdOut.WriteLine strPassword"

কিছুতেই সীমানা নির্ধারণকারীকে ফাঁকা স্থানের সাথে একটি সম্পূর্ণ ইনপুট লাইন ক্যাপচার করা প্রয়োজন, অন্যথায় আপনি কেবল প্রথম শব্দটি পান। "for ... do set ..."বিট সেট passwdVB স্ক্রিপ্ট থেকে প্রকৃত পাসওয়ার্ড আউটপুট যাবে।

তারপরে আমরা একটি ফাঁকা লাইন (লাইনটি শেষ করতে "Password: ") প্রতিধ্বনিত করব passwdএবং কোডটি চালুর পরে পাসওয়ার্ডটি পরিবেশ পরিবর্তনশীল হবে ।


এখন যেমনটি উল্লিখিত হয়েছে scriptpw.dllকেবল এক্সপি / 2003 পর্যন্ত উপলব্ধ। এটি সংশোধন করার জন্য, আপনি কেবল এক্সপি / 2003 সিস্টেমের ফোল্ডার থেকে আপনার নিজের সিস্টেমে বা ফোল্ডারে scriptpw.dllফাইলটি অনুলিপি করতে পারবেন । একবার DLL অনুলিপি করা হয়েছে, আপনি এটি চালিয়ে নিবন্ধন করতে হবে:Windows\System32Winnt\System32Windows\System32

regsvr32 scriptpw.dll

ভিস্টায় এবং পরে ডিএলএলকে সাফল্যের সাথে নিবন্ধকরণ করতে আপনার প্রশাসকের সুযোগ সুবিধাগুলি প্রয়োজন। আমি গুহা প্রভাষক এরকম পদক্ষেপের বৈধতা পরীক্ষা করি নি।


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

এবং, প্রকৃতপক্ষে, আপনার স্ক্রিপ্টগুলি সম্পূর্ণরূপে ব্যবহারের জন্য আপনার আপগ্রেড করার বিষয়টি বিবেচনা করা উচিত কারণ এটি এর চেয়ে অনেক বেশি সক্ষম স্ক্রিপ্টিং ভাষা cmd.exe। তবে আপনি যদি নিজের কোডের বেশিরভাগ অংশটিকে cmd.exeস্ক্রিপ্ট হিসাবে রাখতে চান (যেমন আপনার কাছে প্রচুর কোড রয়েছে যা আপনি রূপান্তর করতে চান না), আপনি একই কৌশলটি ব্যবহার করতে পারেন।

প্রথমে cmdস্ক্রিপ্টটি পরিবর্তন করুন যাতে এটি সিএসক্রিপ্টের পরিবর্তে পাওয়ারশেলকে কল করে:

@echo off
for /f "delims=" %%i in ('powershell -file getpwd.ps1') do set passwd=%%i

পাওয়ারশেল লিপিটিও সমান সহজ:

$password = Read-Host "Enter password" -AsSecureString
$password = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto($password)
echo $password

যদিও আসল পাসওয়ার্ডের পাঠ্য পেতে কিছু মার্শেলিং সহ

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

set-executionpolicy remotesigned

পাওয়ারশেলের মধ্যে থেকেই।


2
ওহ, যে <নুল: সেট / পি সত্যিই দুর্দান্ত। এখনও অবধি জানা ছিল না :-)। তবে ভিবিএস স্ক্রিপ্ট আমার পক্ষে কাজ করে না: মাইক্রোসফ্ট ভিবিএস স্ক্রিপ্ট রানটাইম ত্রুটি: অ্যাক্টিভএক্স উপাদানটি বস্তু তৈরি করতে পারে না: 'স্ক্রিপ্টপডব্লু.প্যাসওয়ার্ড'। উইন্ডোজ 7 বিটা x64 এখানে।
জোয়

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

2
খুশী হলাম। কমান্ড লাইন থেকে ডেকে আনা যে কোনও সমমানের ভাষার জন্য আপনি ভিবিএস ফাইলটি প্রতিস্থাপন করতে পারেন তাও লক্ষ্য করা ভাল। উদাহরণস্বরূপ, আপনি সিএসক্রিপ্ট বিভাগটি এর সাথে প্রতিস্থাপন করতে পারেন: 'পাইথন-সি "গেটপাস আমদানি গেটপাস থেকে; পিডব্লুডি = গেটপাস () মুদ্রণ পিডব্লুডি;"'
সেরিন

1
আমি যখন এই প্রশ্নটি নতুন ছিল তখন ফিরে এইভাবে ব্যবহার করতাম - আমি অতিরিক্ত স্ক্রিপ্ট ছাড়াই এটি করার একটি উপায়ের নীচে উত্তর দিয়েছিলাম ।
চাচাবিশেষ

1
@ বিল: অতএব আমার বিভাগটি "এখন, দুর্ভাগ্যক্রমে, ..." :-) থেকে শুরু হয়েছে তবে আমি আশা করি এটি আরও ভাল করার উত্তরের আরও বিকল্প যুক্ত করেছি। বিশেষত, পাওয়ারশেলের পরিবর্তে ব্যবহার scriptpw.dll
paxdiablo

153

হ্যাঁ - আমি 4 বছর দেরী করছি।

তবে আমি বাহ্যিক স্ক্রিপ্ট না তৈরি করে এক লাইনে এটি করার একটি উপায় খুঁজে পেয়েছি; একটি ব্যাচ ফাইল থেকে পাওয়ারশেল কমান্ড কল করে।

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

@echo off
set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /f "usebackq delims=" %%p in (`%psCommand%`) do set password=%%p
echo %password%

মূলত আমি এটি কোনও পাঠ্য ফাইলে আউটপুট লিখেছিলাম, তারপরে সেই পাঠ্য ফাইলটি থেকে পড়ি। তবে উপরের পদ্ধতিটি আরও ভাল। এক অত্যন্ত দীর্ঘ, অদম্য লাইনের নিকটে:

@echo off
powershell -Command $pword = read-host "Enter password" -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) > .tmp.txt & set /p password=<.tmp.txt & del .tmp.txt
echo %password%

আমি এটিকে ভেঙে দেব - আপনি এটি ক্যারেট ব্যবহার করে কয়েকটি লাইনে বিভক্ত করতে পারেন ^যা খুব সুন্দর ...

@echo off
powershell -Command $pword = read-host "Enter password" -AsSecureString ; ^
    $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; ^
        [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) > .tmp.txt 
set /p password=<.tmp.txt & del .tmp.txt
echo %password%

এই নিবন্ধটি ব্যাখ্যা করে যে পাওয়ারশেল আদেশগুলি কী করছে; মূলত এটি ব্যবহার করে ইনপুট পায় Read-Host -AsSecureString- নিম্নলিখিত দুটি লাইন সেই সুরক্ষিত স্ট্রিংটিকে প্লেইন পাঠ্যে রূপান্তর করে, আউটপুট (প্লেটেক্সট পাসওয়ার্ড) এর পরে ব্যবহার করে একটি পাঠ্য ফাইলে প্রেরণ করা হয় >.tmp.txt। এরপরে ফাইলটি একটি ভেরিয়েবলে পড়ে মুছে ফেলা হয়।


5
আসল উত্তরটি দুর্দান্ত ছিল, তবে আমি মনে করি এটি এখনই একটি নির্দিষ্ট হওয়া উচিত
জেমস ওয়াইজম্যান

30
এটা অসাধারণ. তবে এটি যেভাবে ডিস্কে একটি সরল পাঠ্য পাসওয়ার্ড সংরক্ষণ করে তা অস্বস্তিকর করে তোলে। পরিবর্তে এটি করে এটি করা থেকে বিরত থাকুন: for /f "usebackq tokens=*" %%p in (``powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"``) do set password=%%pএবং তারপরে echo %password%। বিশেষ দ্রষ্টব্য। ব্যাকটিক্স সঠিকভাবে এড়াতে আমি এই মন্তব্যটি পেতে পারি না - "পাওয়ারশেল" এর আগে, এবং শেষের আগে ")" দুটি ব্যাকটিক রয়েছে তবে এটির ব্যাকটিক হওয়া উচিত।
টেসেল্ল্যাটিংহেকলার

1
@ টেসেল্লাটিংহেকলার ভাল ধারণা, আমি আমার উত্তর আপডেট করেছি। আপনার পরামর্শের একটি সামান্য পরিবর্তিত সংস্করণ। ধন্যবাদ।
চাচাবিহীন

প্রতিটি কিপ্রেসের জন্য "*" (তারা) প্রতিধ্বনি করা এই পদ্ধতিটি বন্ধ করা কি সম্ভব? অর্থাৎ আমি কোনও পর্যবেক্ষক জানতে চাই না যে পাসওয়ার্ডটি কত দীর্ঘ।
স্যাম হাসলার

1
@ রেজিবাগুইও না, আপনার পাওয়ারশেল সক্ষম করা দরকার। নীচে এনপোকমাকার খাঁটি ব্যাচের সমাধানটি দেখুন। এটি অনেক জটিল, তবে আপনার জন্য কাজ করা উচিত।
চাচাবিশেষ

26

1. বিশুদ্ধ ব্যাচের সমাধান যা (আব) এখানেXCOPY কমান্ড এবং এর /P /Lস্যুইচ ব্যবহার করে (এ সম্পর্কে কিছু উন্নতি এখানে পাওয়া যাবে ):

:: Hidden.cmd
::Tom Lavedas, 02/05/2013, 02/20/2013
::Carlos, 02/22/2013
::https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/f7mb_f99lYI


@Echo Off
:HInput
SetLocal EnableExtensions EnableDelayedExpansion
Set "FILE=%Temp%.\T"
Set "FILE=.\T"
Keys List >"%File%"
Set /P "=Hidden text ending with Ctrl-C?: " <Nul
Echo.
Set "HInput="
:HInput_
For /F "tokens=1* delims=?" %%A In (
 '"Xcopy /P /L "%FILE%" "%FILE%" 2>Nul"'
) Do (
  Set "Text=%%B"
  If Defined Text (
    Set "Char=!Text:~1,1!"
    Set "Intro=1"
    For /F delims^=^ eol^= %%Z in ("!Char!") Do Set "Intro=0"
    Rem If press Intro
    If 1 Equ !Intro! Goto :HInput#
    Set "HInput=!HInput!!Char!"
  )
)
Goto :HInput_
:HInput#
Echo(!HInput!
Goto :Eof 

1.2 রিপ্লেজ কমান্ড উপর ভিত্তি করে অন্য উপায়

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set /P "=Enter a Password:" < Nul
Call :PasswordInput
Echo(Your input was:!Line!

Goto :Eof

:PasswordInput
::Author: Carlos Montiers Aguilera
::Last updated: 20150401. Created: 20150401.
::Set in variable Line a input password
For /F skip^=1^ delims^=^ eol^= %%# in (
'"Echo(|Replace.exe "%~f0" . /U /W"') Do Set "CR=%%#"
For /F %%# In (
'"Prompt $H &For %%_ In (_) Do Rem"') Do Set "BS=%%#"
Set "Line="
:_PasswordInput_Kbd
Set "CHR=" & For /F skip^=1^ delims^=^ eol^= %%# in (
'Replace.exe "%~f0" . /U /W') Do Set "CHR=%%#"
If !CHR!==!CR! Echo(&Goto :Eof
If !CHR!==!BS! (If Defined Line (Set /P "=!BS! !BS!" <Nul
Set "Line=!Line:~0,-1!"
)
) Else (Set /P "=*" <Nul
If !CHR!==! (Set "Line=!Line!^!"
) Else Set "Line=!Line!!CHR!"
)
Goto :_PasswordInput_Kbd

২. পাসওয়ার্ড সাবমিটার যা এইচটিএ পপ-আপ ব্যবহার করেএটি একটি হাইব্রিট .bat / jscript / mshta ফাইল এবং .bat হিসাবে সংরক্ষণ করা উচিত :

<!-- :
:: PasswordSubmitter.bat
@echo off
for /f "tokens=* delims=" %%p in ('mshta.exe "%~f0"') do (
    set "pass=%%p"
)

echo your password is %pass%
exit /b
-->

<html>
<head><title>Password submitter</title></head>
<body>

    <script language='javascript' >
        window.resizeTo(300,150);
        function entperPressed(e){
                if (e.keyCode == 13) {
                    pipePass();
                }
        }
        function pipePass() {
            var pass=document.getElementById('pass').value;
            var fso= new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1);
            close(fso.Write(pass));

        }
    </script>

    <input type='password' name='pass' size='15' onkeypress="return entperPressed(event)" ></input>
    <hr>
    <button onclick='pipePass()'>Submit</button>

</body>
</html>

3. একটি স্ব-কম্পাইল .net সংকর .Again হিসেবে সংরক্ষিত হবে .bat(যদি আপনি চান আপনি এটা মুছে ফেলতে পারেন) অন্যান্য সমাধানের এটি তৈরি / যে বলা হবে একটি ছোট .exe ফাইল কম্পাইল হবে .In পার্থক্য। এছাড়াও। নেট ফ্রেমওয়ার্ক ইনস্টল করা প্রয়োজন তবে এটি কোনও সমস্যা নয়:

@if (@X)==(@Y) @end /* JScript comment
@echo off
setlocal enableDelayedExpansion

for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d  /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
   set "jsc=%%v"
)

if not exist "%~n0.exe" (
    "%jsc%" /nologo /out:"%~n0.exe" "%~dpsfnx0"
)

for /f "tokens=* delims=" %%p in ('"%~n0.exe"') do (
    set "pass=%%p"
)

echo your password is !pass!

endlocal & exit /b %errorlevel%

*/



import System;



var pwd = "";
var key;

Console.Error.Write("Enter password: ");

        do {
           key = Console.ReadKey(true);

           if ( (key.KeyChar.ToString().charCodeAt(0)) >= 20 && (key.KeyChar.ToString().charCodeAt(0) <= 126) ) {
              pwd=pwd+(key.KeyChar.ToString());
              Console.Error.Write("*");
           }

           if ( key.Key == ConsoleKey.Backspace && pwd.Length > 0 ) {
               pwd=pwd.Remove(pwd.Length-1);
               Console.Error.Write("\b \b");
           }


        } while (key.Key != ConsoleKey.Enter);
        Console.Error.WriteLine();
        Console.WriteLine(pwd);

6
আমার হ্যাকি সেন্স টিংগলিং, বিশেষত হাইব্রিডে!
মার্ক কে কোয়ান

2
এই প্রথম সমাধানটি খুব চালাক - দুর্দান্ত একটি +1।
চাচাবিহীন

প্রতিস্থাপন কমান্ডের উপর ভিত্তি করে 2.1 পদ্ধতিটি আপনি দ্রুত টাইপ করলে কিপ্রেসগুলি মিস হবে
স্যাম হাসার

@ সামহ্যাসলার - হ্যাঁ, আমি এটি ঠিক করার চেষ্টা করব 2.এই সমস্যাটি ২.১ দিয়ে পুনরুত্পাদন করতে পারেনি। এন্টার টিপছে কিনা তা পরীক্ষা করার জন্য আমি এইচটিএ আপডেট করেছি।
npocmaka

1
: @npocmaka 1.2 পদ্ধতি শেষ সংস্করণ (সর্বশেষ আপডেট হয়েছে: 20150405) এখানে consolesoft.com/batch/password_input/password_input.cmd
কার্লোস

16

আমি সম্ভবত ঠিক করতে হবে:

..
echo Before you enter your password, make sure no-one is looking!
set /P password=Password:  
cls
echo Thanks, got that.
.. 

সুতরাং আপনি একটি প্রম্পট পান, তারপরে প্রবেশের পরে স্ক্রীনটি সাফ হয়ে যায়।

নোট করুন যে ব্যাচ ফাইলটি কমান্ড প্রম্পট থেকে কার্যকর করা হলে প্রবেশ করা পাসওয়ার্ড সিএমডি ইতিহাসে সংরক্ষণ করা হবে (ধন্যবাদ @ মার্ক কে কেয়ান ))

যদি এটি যথেষ্ট ভাল না হয় তবে আমি হয় অজগরটিতে স্যুইচ করব, অথবা স্ক্রিপ্টের পরিবর্তে এক্সিকিউটেবল লিখব।

আমি জানি যে এগুলির কোনওটিই নিখুঁত আত্মা নয় তবে সম্ভবত এটি আপনার পক্ষে যথেষ্ট ভাল :)


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

আপনি doskey /reinstallপূর্ববর্তী কমান্ড বাফারটি অবিলম্বে সাফ করার জন্য দৌড়াতে পারেন cls, যদি কনসোলে কমান্ডের ইতিহাসটি আপনার পক্ষে গুরুত্বপূর্ণ না থাকে।
রানটাইম এক্সসেপশন

1
আপনি যদি ডসকি ব্যবহার / পুনরায় ইনস্টল করতে এবং কমান্ডের ইতিহাসটি সাফ করতে না চান, অন্য বিকল্পটি উপরের কোডটি একটি পৃথক টার্মিনাল উইন্ডোতে চালিত হয় এবং অবিলম্বে এটিকে প্রস্থান করে। মনে রাখবেন যে এটি এখনও আপনার টাইপ করা স্ট্রিংকে অস্ট্রিস্কের সাথে প্রতিস্থাপন করে না। আপনি পাওয়ারশেল চালনা করতে না চাইলে উপরে সমাধানটি একটি বিকল্প। C:\>start "console" cmd /c ireadconsole.bat
রানটাইম এক্সসেপশন

9

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

call :ReadFormattedLine password="********" /M "Enter password (8 chars): "

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


সম্পাদনা 2018-08-18 : একটি "অদৃশ্য" পাসওয়ার্ড প্রবেশের জন্য নতুন পদ্ধতি

এই কমান্ডটি বর্ণগুলিতে বর্ণগুলি দেখানোর জন্য ব্যবহৃত হয় এবং এই জাতীয় কমান্ডের আউটপুটটি CON ডিভাইসে পুনঃনির্দেশিত করা হয় F রঙে টেক্সট দেখানোর জন্য FINDSTR কমান্ডটি কীভাবে ব্যবহার করবেন সে সম্পর্কে বিশদের জন্য এই বিষয়টি দেখুন

এফআইএনডিআরএসটি কমান্ডের এই ফর্মের আউটপুটটি যখন কনকে পুনঃনির্দেশিত করা হয়, তখন পাঠ্যটি পছন্দসই রঙে আউটপুট দেওয়ার পরে অদ্ভুত কিছু ঘটে: তার পরে সমস্ত পাঠ্য আউটপুটটিকে "অদৃশ্য" অক্ষর হিসাবে আনা হয়, যদিও আরও সুনির্দিষ্ট বর্ণনাটি হ'ল পাঠ্যটি হ'ল কালো পটভূমিতে কালো পাঠ্য হিসাবে আউটপুট। আপনি যদি পুরো স্ক্রিনের অগ্রভাগ এবং পটভূমির রঙগুলি পুনরায় সেট করতে COLOR কমান্ড ব্যবহার করেন তবে মূল পাঠ্যটি উপস্থিত হবে। যাইহোক, পাঠ্যটি "অদৃশ্য" হলে আমরা একটি SET / P কমান্ড কার্যকর করতে পারি, সুতরাং প্রবেশ করা সমস্ত অক্ষর স্ক্রিনে উপস্থিত হবে না।

@echo off
setlocal

set /P "=_" < NUL > "Enter password"
findstr /A:1E /V "^$" "Enter password" NUL > CON
del "Enter password"
set /P "password="
cls
color 07
echo The password read is: "%password%"

5

অন্য বিকল্পটি হ'ল আমার editV32 (x86) বা editV64 (x64) কমান্ড-লাইন সরঞ্জাম। উদাহরণ স্বরূপ:

editv32 -m -p "Password: " PWD

-ম মানে "মুখোশযুক্ত ইনপুট" এবং -p হ'ল প্রম্পট। ব্যবহারকারীর ইনপুট PWD এনভায়রনমেন্ট ভেরিয়েবলে সঞ্চিত থাকে। এটা আপনি এখানে পাবেন:

https://westmesatech.com/?page_id=19


5
এটি কেবল ক্লোড-সোর্স সমাধান নয় (উইন্ডোজ হ'ল ক্লোজ সোর্স!)। আপনি অবশ্যই এটি ব্যবহার না করার জন্য
নির্দ্বিধায়

যদি উত্স কোডের অভাব আপনাকে বিরক্ত করে, তবে ReadLine.exe সম্পর্কিত আমার অন্যান্য উত্তর দেখুন ।
বিল_সেটওয়ার্ট

ভাল একটা! লাইসেন্স আপনাকে এটি ব্যবহার করতে দেয়। তদতিরিক্ত, সংহত করা সহজ। প্রস্থান কোডটি হ্যান্ডল করার জন্য ১. কমান্ড লাইনে ত্রুটি, 2 ইনপুট লাইনটি ফাঁকা ছিল, 3 পরিবেশের পরিবর্তনশীল পরিবর্তন করা হয়নি, 4 প্রোগ্রামটি Ctrl-C দিয়ে বাতিল করা হয়েছে
জেমস জিতিন

দ্রষ্টব্য: editenv32 / editenv64 এবং পঠন ইউটিলিটিগুলি মুক্ত-উত্স editenv ইউটিলিটি দ্বারা বাতিল করা হয়েছে ।
বিল_সেটওয়ার্ট

4

যদি উত্স কোডের অভাব আপনাকে বিরক্ত করে তোলে তবে আমার কাছে অন্য একটি বিকল্প আছে।

@echo off
for /f "delims=" %%p in ('ReadLine -h -p "Enter password: "') do set PWD=%%p
echo You entered: %PWD%

আপনি এটি https://westmesatech.com/?page_id=49 থেকে পেতে পারেন । উত্স কোড অন্তর্ভুক্ত করা হয়েছে।


দ্রষ্টব্য: editenv32 / editenv64 এবং পঠন ইউটিলিটিগুলি মুক্ত-উত্স editenv ইউটিলিটি দ্বারা বাতিল করা হয়েছে ।
বিল_সেটওয়ার্ট

3

যদি আপনি পাইথন ইনস্টল করেন তবে আপনি এটি ব্যবহার করতে পারেন:

for /f "delims=" %%A in ('python -c "import getpass; print(getpass.getpass('Enter the CVS password: '));"') do @set CVSPASS=%%A
echo PASS: %CVSPASS%

আউটপুট:

Enter the CVS password:
PASS: 123

2

আমি ব্লগারবার্ডের উপরের সমাধানটি ব্যবহার করেছি যা আমার মতে আসলে দুর্দান্ত। তারপরে আমি এটি নিম্নরূপে বাড়িয়েছি:

  1. অ্যানসিসনের জন্য গুগল
  2. জিপ ফাইল এবং নমুনা পাঠ্য ফাইলটি ডাউনলোড করুন।
  3. ইনস্টল করুন (এর অর্থ সিস্টেম 32 এ 2 ফাইল অনুলিপি করুন)

এটি এর মতো ব্যবহার করুন:

@echo off
ansicon -p
set /p pwd=Password:ESC[0;37;47m
echo ESC[0m

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

আপনি যদি মেশিনের প্রশাসক না হন তবে আপনি সম্ভবত একটি নন-সিস্টেম ডিরেক্টরিতে ফাইলগুলি ইনস্টল করতে সক্ষম হবেন, তবে প্রোগ্রামটি কল করার আগে এবং পালানোর ক্রমগুলি ব্যবহার করার আগে আপনাকে আপনার স্ক্রিপ্টের PATH- র ডিরেক্টরিটি যুক্ত করতে হবে। এটি সম্ভবত বর্তমান ডিরেক্টরি হতে পারে, আপনার যদি মাত্র কয়েকটি ফাইলের একটি প্রশাসনিক বিলিযোগ্য প্যাকেজ দরকার হয়।


আমি এটি পরীক্ষা করতে পারি না, তবে আশা করব যে টাইপ করা পাসওয়ার্ডটি পরে সেন্টিমিডি ইতিহাসে প্রদর্শিত হবে।
মার্ক কে কোয়ান

@ মারককোয়ান ঠিক একই ঘটনা ঘটে।
sjngm

1

অদৃশ্য অক্ষরের জন্য প্রয়োজনীয় যাকে কল করে এমন একটি ব্যাচ ফাইল তৈরি করুন তারপরে ব্যাচ ফাইলটির জন্য একটি শর্টকাট তৈরি করুন।

সঠিক পছন্দ

বৈশিষ্ট্য

রং

টেক্সট == কালো

পটভূমি == কালো

প্রয়োগ করা

ঠিক আছে

আশা এইভাবে আপনাকে সাহায্য করে !!!!!!!!


সুন্দর পার্শ্ববর্তী পথ চিন্তাভাবনা, এমনকি সময়ের আগে পরিবেশ স্থাপনের কারণে ব্যাচের পরিস্থিতিতে সবসময় ব্যবহারিক না হলেও। ওহ স্তব্ধ হয়ে, হয়তো এই কাজ করবে: stackoverflow.com/a/14447306/14420 অথবা সম্ভবত stackoverflow.com/questions/4339649/...
অনুজ্জ্বল উইলকি

1

আপডেট:
আমি দুটি নতুন পদ্ধতি যুক্ত করেছি যেগুলি ইনপুট আড়াল করতে ক্লস ব্যবহার না করে তারা কেবল একটি লাইন দিয়ে একটি নতুন পপ-আপ তৈরি করে।

ত্রুটিগুলি হ'ল একটি পদ্ধতি (পদ্ধতি 2) রেজিস্ট্রিতে আবর্জনা ফেলে দেয় - "যদি যথাযথ অধিকার ছাড়াই চালানো হয়", এবং অন্যটি (পদ্ধতি তিন) স্ক্রিপ্টে কিছুটা জাঙ্ক যুক্ত করে। এটি সহজেই যে কোনও টিএমপি ফাইলে লিখিত হতে পারে এবং মুছে ফেলা হয়েছে তা বলার অপেক্ষা রাখে না আমি কেবল একটি বিকল্প নিয়ে আসার চেষ্টা করেছি।

সীমাবদ্ধতা: পাসওয়ার্ডটি কেবলমাত্র বর্ণমালা হতে পারে - অন্য কোনও অক্ষর নেই!

@echo off
if "%1"=="method%choice%" goto :method%choice%
::::::::::::::::::
::Your code here::
::::::::::::::::::
cls
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo ::::                   Batch script to prompt for password!                 :::
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:choice
echo.
echo 1. First method
echo.
echo 2. Second method
echo.
echo 3. Third method
echo.
set/p choice=Choose a method: 
if "%choice%" gtr "3" echo. & echo invalid option & echo. & pause & goto choice

call :vars
    set options= %num%%smAlph%%cpAlph%
    set pwdLen=6

if "%choice%" == "1" (
    set /p=Password: <nul 
    for /l %%i in (1,1,%pwdLen%) do call :password
) else (
    start /wait cmd /c call "%~f0" method%choice%
    )

call :result%choice%


::just to see if it worked!
echo.
echo The Password you entered is: "%pwd%"&pause>nul

::::::::::::::::::
::More code here::
::::::::::::::::::
exit /b





:vars
set num=1234567890
set smAlph=abcdefghijklmnopqrstuvwxyz
set cpAlph=ABCDEFGHIJKLMNOPQRSTUVWXYZ
    set pwd=
goto :EOF


:method2
call :popUp
setx result %pwd% >nul
goto :EOF

:method3
call :popUp
    >> "%~f0" echo.
    >> "%~f0" echo :result%choice%
    >> "%~f0" echo set pwd=%pwd%
goto :EOF

:popUp
title Password
mode con lines=1 cols=30
color 5a
set /p=Password: <nul
for /l %%i in (1,1,%pwdLen%) do call :password
goto :EOF

:password
:: If you don't want case sensative remove "/cs" but remember to remove %cpAlph% from the %options%
choice /c %options% /n /cs >nul
    call SET pwd=%pwd%%%options:~%errorlevel%,1%%
    set /p =*<nul
GOTO :EOF


:result2
for /f "tokens=3" %%a in ('reg query hkcu\environment /v result') do set pwd=%%a
    setx result "" >nul
    reg delete hkcu\environment /v result /f >nul 2>&1
:result1
goto :EOF   
::You can delete from here whenever you want.

আপডেট: আমি সত্যদেখির পোস্টটি নিখুঁত বলে খুঁজে পেয়েছি এবং আমি এটিতে আমার "পপ-আপ" স্নিগ্ধটি যুক্ত করেছি।

@Echo Off  
  SetLocal EnableDelayedExpansion
  if "%1"==":HInput" goto :HInput
  set r=r%random%
  start /wait cmd /c call "%~f0" :HInput

For /f "tokens=2,13 delims=, " %%a in (
    'tasklist /v /fo csv /fi "imagename eq cmd.exe"
    ^|findstr /v "Windows\\system32\\cmd.exe"
    ^|findstr "set /p=%r%"'
     ) do (
        set pid=%%a
        set Line=%%b
        set Line=!Line:%r%=!
        set Line=!Line:~,-2!
        )       
taskkill /pid %pid:"=%>nul
  goto :HIEnd


  :HInput
  SetLocal DisableDelayedExpansion
  title Password
  mode con lines=2 cols=30

Echo Enter your Code :
   Set "Line="
   For /F %%# In (
   '"Prompt;$H&For %%# in (1) Do Rem"'
   ) Do Set "BS=%%#"

  :HILoop
   Set "Key="
   For /F "delims=" %%# In (
   'Xcopy /W "%~f0" "%~f0" 2^>Nul'
   ) Do If Not Defined Key Set "Key=%%#"
   Set "Key=%Key:~-1%"
   SetLocal EnableDelayedExpansion
   If Not Defined Key start /min cmd /k mode con lines=1 cols=14 ^&set/p %r%!Line!=&exit
  If %BS%==^%Key% (Set /P "=%BS% %BS%" <Nul
   Set "Key="
   If Defined Line Set "Line=!Line:~0,-1!"
   ) Else Set /P "=*" <Nul
   If Not Defined Line (EndLocal &Set "Line=%Key%"
   ) Else For /F delims^=^ eol^= %%# In (
   "!Line!") Do EndLocal &Set "Line=%%#%Key%"
  Goto :HILoop

  :HIEnd
   Echo(
Echo Your code is :  "!Line!"
   Pause
   Goto :Eof

1

আমি একটি ওপেন সোর্স প্রোগ্রাম লিখেছিলাম editenvযা আমার পুরানো editv32/ editv64ইউটিলিটিগুলি প্রতিস্থাপন করে:

https://github.com/Bill-Stewart/editenv

--maskinput( -m) বিকল্প [*] আপনি (মাস্ক) টাইপ করা ইনপুট লুকান দেয় এবং একটি কনফিগারযোগ্য চরিত্র (ডিফল্ট চরিত্র রয়েছে *); উদাহরণ:

editenv -m -p "Password: " PWD

--prompt( -p) অপশনের সাহায্যে আপনি একটি ইনপুট প্রম্পট উল্লেখ করতে দেয়। উপরেরটি একটি Password:প্রম্পট প্রদর্শন করবে এবং আপনাকে কিছু প্রবেশ করার জন্য অপেক্ষা করবে। টাইপ করা অক্ষর হিসাবে প্রদর্শিত হবে *Ctrl+ টিপে C1223 এর একটি প্রস্থান কোড সহ প্রোগ্রামটি শেষ হবে।

ডাউনলোড এখানে:

https://github.com/Bill-Stewart/editenv/releases

[*] নোট করুন যে --maskinput( -m) বিকল্পটি নিরাপদ নয় - প্রবেশ করা স্ট্রিংটি পরিবেশে সাদামাটা পাঠ হিসাবে প্রবেশ করা হয়েছে। এই বৈশিষ্ট্যটি শুধুমাত্র সুবিধার জন্য।


0

এটি একটি পুরানো বিষয় হতে পারে তবে আপনি যদি উইন্ডোজ ভিস্তা বা 7 ব্যবহার করেন তবে আমার কাছে একটি সমাধান রয়েছে যা খুব ভালভাবে কাজ করবে। আমি এর একটি ভিডিও এখানে তৈরি করেছি: http://www.youtube.com/watch?v=mk8uAa6PIFM

ব্যাচ ফাইলের জন্য পেস্টবিন এখানে রয়েছে


-1
@echo off
color 0f
MODE CON COLS=132 LINES=50
:start
cls
choice /C ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?.# /N /CS /M Please enter your password to continue. (Valid characters include all letters, numbers, and ! ? .) Press # to submit: 
SET ecode=%ERRORLEVEL%
IF %ecode% EQU 66 goto submit
IF %ecode% EQU 1 SET out=A
IF %ecode% EQU 2 SET out=B
IF %ecode% EQU 3 SET out=C
IF %ecode% EQU 4 SET out=D
IF %ecode% EQU 5 SET out=E
IF %ecode% EQU 6 SET out=F
IF %ecode% EQU 7 SET out=G
IF %ecode% EQU 8 SET out=H
IF %ecode% EQU 9 SET out=I
IF %ecode% EQU 10 SET out=J
IF %ecode% EQU 11 SET out=K
IF %ecode% EQU 12 SET out=L
IF %ecode% EQU 13 SET out=M
IF %ecode% EQU 14 SET out=N
IF %ecode% EQU 15 SET out=O
IF %ecode% EQU 16 SET out=P
IF %ecode% EQU 17 SET out=Q
IF %ecode% EQU 18 SET out=R
IF %ecode% EQU 19 SET out=S
IF %ecode% EQU 20 SET out=T
IF %ecode% EQU 21 SET out=U
IF %ecode% EQU 22 SET out=V
IF %ecode% EQU 23 SET out=W
IF %ecode% EQU 24 SET out=X
IF %ecode% EQU 25 SET out=Y
IF %ecode% EQU 26 SET out=Z
IF %ecode% EQU 27 SET out=a
IF %ecode% EQU 28 SET out=b
IF %ecode% EQU 29 SET out=c
IF %ecode% EQU 30 SET out=d
IF %ecode% EQU 31 SET out=e
IF %ecode% EQU 32 SET out=f
IF %ecode% EQU 33 SET out=g
IF %ecode% EQU 34 SET out=h
IF %ecode% EQU 35 SET out=i
IF %ecode% EQU 36 SET out=j
IF %ecode% EQU 37 SET out=k
IF %ecode% EQU 38 SET out=l
IF %ecode% EQU 39 SET out=m
IF %ecode% EQU 40 SET out=n
IF %ecode% EQU 41 SET out=o
IF %ecode% EQU 42 SET out=p
IF %ecode% EQU 43 SET out=q
IF %ecode% EQU 44 SET out=r
IF %ecode% EQU 45 SET out=s
IF %ecode% EQU 46 SET out=t
IF %ecode% EQU 47 SET out=u
IF %ecode% EQU 48 SET out=v
IF %ecode% EQU 49 SET out=w
IF %ecode% EQU 50 SET out=x
IF %ecode% EQU 51 SET out=y
IF %ecode% EQU 52 SET out=z
IF %ecode% EQU 53 SET out=0
IF %ecode% EQU 54 SET out=1
IF %ecode% EQU 55 SET out=2
IF %ecode% EQU 56 SET out=3
IF %ecode% EQU 57 SET out=4
IF %ecode% EQU 58 SET out=5
IF %ecode% EQU 59 SET out=6
IF %ecode% EQU 60 SET out=7
IF %ecode% EQU 61 SET out=8
IF %ecode% EQU 62 SET out=9
IF %ecode% EQU 63 SET out=!
IF %ecode% EQU 64 SET out=?
IF %ecode% EQU 65 SET out=.
SET code=%out%
SET show=*
:loop
cls
choice /C ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?.# /N /CS /M Please enter your password to continue. (Valid characters include all letters, numbers, and ! ? .) Press # to submit: %code%
SET ecode=%ERRORLEVEL%
IF %ecode% EQU 66 goto submit
IF %ecode% EQU 1 SET out=A
IF %ecode% EQU 2 SET out=B
IF %ecode% EQU 3 SET out=C
IF %ecode% EQU 4 SET out=D
IF %ecode% EQU 5 SET out=E
IF %ecode% EQU 6 SET out=F
IF %ecode% EQU 7 SET out=G
IF %ecode% EQU 8 SET out=H
IF %ecode% EQU 9 SET out=I
IF %ecode% EQU 10 SET out=J
IF %ecode% EQU 11 SET out=K
IF %ecode% EQU 12 SET out=L
IF %ecode% EQU 13 SET out=M
IF %ecode% EQU 14 SET out=N
IF %ecode% EQU 15 SET out=O
IF %ecode% EQU 16 SET out=P
IF %ecode% EQU 17 SET out=Q
IF %ecode% EQU 18 SET out=R
IF %ecode% EQU 19 SET out=S
IF %ecode% EQU 20 SET out=T
IF %ecode% EQU 21 SET out=U
IF %ecode% EQU 22 SET out=V
IF %ecode% EQU 23 SET out=W
IF %ecode% EQU 24 SET out=X
IF %ecode% EQU 25 SET out=Y
IF %ecode% EQU 26 SET out=Z
IF %ecode% EQU 27 SET out=a
IF %ecode% EQU 28 SET out=b
IF %ecode% EQU 29 SET out=c
IF %ecode% EQU 30 SET out=d
IF %ecode% EQU 31 SET out=e
IF %ecode% EQU 32 SET out=f
IF %ecode% EQU 33 SET out=g
IF %ecode% EQU 34 SET out=h
IF %ecode% EQU 35 SET out=i
IF %ecode% EQU 36 SET out=j
IF %ecode% EQU 37 SET out=k
IF %ecode% EQU 38 SET out=l
IF %ecode% EQU 39 SET out=m
IF %ecode% EQU 40 SET out=n
IF %ecode% EQU 41 SET out=o
IF %ecode% EQU 42 SET out=p
IF %ecode% EQU 43 SET out=q
IF %ecode% EQU 44 SET out=r
IF %ecode% EQU 45 SET out=s
IF %ecode% EQU 46 SET out=t
IF %ecode% EQU 47 SET out=u
IF %ecode% EQU 48 SET out=v
IF %ecode% EQU 49 SET out=w
IF %ecode% EQU 50 SET out=x
IF %ecode% EQU 51 SET out=y
IF %ecode% EQU 52 SET out=z
IF %ecode% EQU 53 SET out=0
IF %ecode% EQU 54 SET out=1
IF %ecode% EQU 55 SET out=2
IF %ecode% EQU 56 SET out=3
IF %ecode% EQU 57 SET out=4
IF %ecode% EQU 58 SET out=5
IF %ecode% EQU 59 SET out=6
IF %ecode% EQU 60 SET out=7
IF %ecode% EQU 61 SET out=8
IF %ecode% EQU 62 SET out=9
IF %ecode% EQU 63 SET out=!
IF %ecode% EQU 64 SET out=?
IF %ecode% EQU 65 SET out=.
SET code=%code%%out%
SET show=%show%*
goto loop
:submit
cls
SET password=%code%
IF %password% EQU 0cZrocks! SET result=1
IF ELSE SET result=2
IF %result% EQU 1 echo password correct
IF %result% EQU 2 echo password incorrect
timeout /T 2 /NOBREAK >nul
cls
IF %result% EQU 1 goto end
IF ELSE goto start
:end

আপনি কোডটি ব্যাখ্যা করেন নি এবং আপনি কেবল কোডটি অনুলিপি করেছেন। এটি করার পক্ষে এটি একটি ভাল উপায় নয়, কারণ আপনাকে পর্দা রিফ্রেশ করতে হবে এবং পাসওয়ার্ডটি x অক্ষর দীর্ঘ হতে হবে।
অ্যানিক 17

-1

ব্লগারবার্ডের সমান রেখাগুলি সহ অন্য একটি বিকল্প হ'ল এই জাতীয় ব্যবহার:

SET /P pw=C:\^>

এতে ^পালিয়ে যায় >যাতে পাসওয়ার্ড প্রম্পটটি স্ট্যান্ডার্ড সেন্টিমিডি কনসোল প্রম্পটের মতো দেখায়।


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

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

এটি একটি ভাল উত্তর নয়। আপনি পাসওয়ার্ডটি মাস্কিং বা গোপন করছেন না। আপনার ভাল সমাধান বা উত্তর হয়ে গেলে একবার মন্তব্য করুন।
অ্যানিক 17

-3

আমি ব্যাচের ফাইলে পাসওয়ার্ডগুলি কীভাবে মাস্ক করবেন সে সম্পর্কে নেটগুলিতে সমস্ত ক্লানকি সমাধানগুলি পড়েছি, একটি আড়াল ডট কম সমাধান ব্যবহার করে এমনকি পাঠ্য এবং পটভূমিকে একই রঙ তৈরি করে। আড়াল ডটকম সলিউশনটি শালীনভাবে কাজ করে, এটি খুব সুরক্ষিত নয় এবং এটি bit৪-বিট উইন্ডোতে কাজ করে না। যাইহোক, 100% মাইক্রোসফ্ট ইউটিলিটি ব্যবহার করে, একটি উপায় আছে!

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

সুতরাং আমি এখানে কি করেছি।

আপনার ইচ্ছা অনুযায়ী এটি করুন, তবে আমি আমার দুটি ব্যাচের ফাইলগুলিকে একটি নেটওয়ার্ক শেয়ারে রেখেছি যা লকডাউন কম্পিউটারের অ্যাক্সেস রয়েছে।

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

আপনার দুটি ব্যাচের ফাইল তৈরি করতে হবে।

আমি ব্যাচের ফাইলগুলির নাম রানাস.ব্যাট এবং ডিবাগ সাপোর্ট.ব্যাট করেছি

runas.bat নিম্নলিখিত কোড রয়েছে:

cls
@echo off
TITLE CHECK CREDENTIALS 
goto menu

:menu
cls
echo.
echo           ....................................
echo            ~Written by Cajun Wonder 4/1/2010~
echo           ....................................
echo.
@set /p un=What is your domain username? 
if "%un%"=="PUT-YOUR-DOMAIN-USERNAME-HERE" goto debugsupport
if not "%un%"=="PUT-YOUR-DOMAIN-USERNAME-HERE" goto noaccess
echo.
:debugsupport
"%SYSTEMROOT%\system32\runas" /netonly /user:PUT-YOUR-DOMAIN-NAME-HERE\%un% "\\PUT-YOUR-NETWORK-SHARE-PATH-HERE\Debug Support.bat"
@echo ACCESS GRANTED! LAUNCHING THE DEBUG UTILITIES....
@ping -n 4 127.0.0.1 > NUL
goto quit
:noaccess
cls
@echo.
@echo.
@echo.
@echo.
@echo   \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
@echo   \\                                   \\
@echo   \\    Insufficient privileges         \\  
@echo   \\                                    \\
@echo   \\      Call Cajun Wonder             \\
@echo   \\                                    \\
@echo   \\              At                    \\
@echo   \\                                    \\
@echo   \\        555-555-5555                \\
@echo   \\                                    \\
@echo   \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
@ping -n 4 127.0.0.1 > NUL
goto quit
@pause
:quit
@exit

আপনি "% আন%%" এবং আপনি যে সমস্ত ব্যবহারকারী অ্যাক্সেস দিতে চান তার জন্য "% আন%" না হলে আপনি অনেকগুলি যুক্ত করতে পারেন। @ পিপিং হ'ল আমার একটি সেকেন্ডের টাইমার তৈরির উপায়।

সুতরাং এটি প্রথম ব্যাচের ফাইলটির যত্ন নেয় - খুব সহজ?

ডিবাগ সাপোর্ট.ব্যাটের কোড এখানে:

cls
@echo off
TITLE SUPPORT UTILITIES
goto menu

:menu
cls
@echo %username%
echo.
echo           .....................................
echo            ~Written by Cajun Wonder 4/1/2010~
echo           .....................................
echo.
echo What do you want to do? 
echo.
echo [1]  Launch notepad
echo.

:choice
set /P C=[Option]? 
if "%C%"=="1" goto notepad
goto choice

:notepad
echo.
@echo starting notepad....
@ping -n 3 127.0.0.1 > NUL
start notepad
cls
goto menu

আমি কোনও কোডার নই এবং সত্যিই আমি প্রায় এক বছর আগে ব্যাচের স্ক্রিপ্টিংয়ে প্রবেশ শুরু করেছি এবং এই ব্যাচটি যেভাবে আমি ব্যাচের ফাইলে পাসওয়ার্ডটি মাস্কিং করে আবিষ্কার করেছি তা বেশ দুর্দান্ত!

আমি শুনতে শুনতে আশা করি যে আমার ব্যতীত অন্য কেউ এর থেকে কিছুটা ব্যবহার করতে সক্ষম হয়েছেন!

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