|
你这个问题的产生是因为系统目录里没有powershell造成的,批处理是判断注册表,在你的注册表中有powershell的键值,但是实际上没有。如果针对您的PE,可以把注册表中的键值删除就行。
把这几行删除
::judge if exist powershell and its version
for /f tokens^=2^ delims^=^" %%a in ('reg query HKLM\SOFTWARE\Classes\Microsoft.PowerShellConsole.1 /v "FriendlyTypeName" ^|find "@"') do (
set existps=%%a
if defined existps (
for /f "tokens=2 delims= " %%b in ('powershell "$psversiontable" ^|find /i "psversion"') do (
set psver=%%b
set psver=!psver:~0,1!
if !psver! GEQ 3 set psok=yes
)
)
) |
|