环境是一台WIN7_64位旗舰版的系统,我要给打开cmd的时候设置一个密码,通过输入正确的密码才可以使用cmd,这个密码设置已经通过批处理实现,加密的代码是下面- @echo off
- color 2
- cls
- title 不会游泳的渔欢迎您的到来!!!
- set pass=0
- set time=0
- echo 不会游泳的渔 www.laicuxiao.com 不会游泳的渔歡迎您的到來
- echo 咩事啊你?需要密码噶~
- :start
- set /p pass=请输入CMD密码:
- if %pass%==111111 goto ok
- if %time%==0 goto end
- set /A times=%time%-1
- :end
- exit
- cls
- :ok
- title 密码正确!欢迎进入不会游泳的渔DOS的世界!
复制代码 把这段代码命名为2.bat文件放在C:\windows\system32\2.bat
打开注册表,regedit---...MACHINE---SOFTWARE-----microsoft------Command Processor里的------AutoRun修改数值数据,添入C:\windows\system32\2.bat。如果没有自己新建一个。
这样的话就实现好cmd加密了,但是有个问题就是输入的密码是可见的,所以我希望让密码不可见或者是星号隐藏也行。
然后又在网上试了很多隐藏输入密码的方法,但几乎在WIN7_64位的系统都是不可用的。唯一找到一个能星号隐藏的代码如下- @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%
复制代码 这个代码命名为3.bat,接着把注册表AutoRun数值数据去掉。测试过,3.bat没问题,很正。然后就试着把3.bat放到C:\windows\system32\3.bat,AutoRun数值数据修改为C:\windows\system32\3.bat
再运行cmd就不能正常使用了。请问这个事情怎么解决?是什么导致不可用?有没有什么好办法能实现我这个需求?恳请帮忙一下!!! |