Windows Notes

Windows相关的笔记

Posted by Ryan Yim on 2022-03-27
Estimated Reading Time 7 Minutes
Words 1.7k In Total
Viewed Times

Windows Note

Windows静默安装

第三方项目(不推荐):Silent Install > https://www.silentinstall.org/

命令行(推荐):

一般来说,不同的软件的封装类型都有固定的静默安装命令。

转载来源:https://www.cnblogs.com/toor/p/4198061.html

查看软件的封装类型

双击setup.exe,在弹出窗口的左上角单击,选择“About Setup”可查看软件的封装类型。然后根据其封装类型选择对应的静默安装命令。这个步骤可适用大部分的软件,不排除有些软件是比较特殊的。

  • Microsoft Windows Installer: 如果某个软件是用 Windows Installer打包的,那你就应该能在文件夹中看到 *.msi 文件。这是最典型的特征,这些文件通常可以使用 /QB/QN 参数进行自动安装。

    • /qb 会在窗口中显示一个基本的安装进程。
    • /qn 参数则不会显示任何窗口,直接在后台自动安装。

    为了阻止某些程序安装成功后自动重启动,你可以在 /qn 或者 /qb 参数后使用REBOOT=Suppress标记。
    例如:安装虚拟光驱 DaemonTools:msiexec /i dtools.msi /qb REBOOT=SUPPRESS

  • InstallShield with MSI: InstallShield with MSI 制作的安装文件,请使用类似:setup.exe /s /v" /qb 来安装。

  • WISE Installer: 用WISE技术打包的软件在安装的时候可以选择使用 /s 参数进行自动安装。

  • Inno Setup: Inno Setup 制作的安装文件,请使用:setup.exe /sp- /silent /norestart

  • NullSoft Installation System: 使用 NSIS(NullSoft Installation System)制作的安装文件,可用 /S (注意大写)来进行静默安装(“S”是大小写敏感的)。
    例如:Setup.exe /S ; 也可以用 /D参数选择将要安装的目标分区和文件夹,例如:Setup.exe /S /D=E:\Software\QQ2007

  • Wise Installation Professional: 制作的安装文件,可用 /silent 参数进行静默安装。

  • WinRAR: 所有WinRAR做的自解压安装包可以使用 /s 参数进行静默安装。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
常用软件的例子
TotalCommand
用解压缩软件解压tcm801x32.exe文件(此处以32位的系统为例子)
修改解压出来的INSTALL.INF文件,一般改
username=*
auto=1
hide=1
但是我想指定目录静默安装呢,怎么办?
我一不小心解压tcm801x64.exe文件,查看解压出来的INSTALL.INF文件,卧槽,一看:作者,你实在是太调皮了。
里面的参数比32位解压出来的文件要详细很多,可以直接拿64位的INSTALL.INF文件修改,然后替换32位的INSTALL.INF文件。注意有些参数值带有“64”,在32位的安装过程中是不会创建带有“64”字眼的文件,去掉“64”字符串即可。
[Destination]
Dir=c:\mytotalcmd
Ini=wincmd.ini,Configuration,InstallDir

everything
exerything_setup.exe /S /D=D:\Program Files\Everything

射手影音播放器
射手影音播放器_3.7.0.2437.exe /S /D=D:\Program Files\SPlayer

福昕阅读器
福昕阅读器_6.0.4.619.exe /sp- /verysilent /dir="D:\Program Files\Foxit Software\Foxit Reader" /NORESTART
资料参阅:http://www.dingniu8.com/article/html/30386.html

UltraISO
setup.exe /sp- /verysilent /dir="D:\Program Files\UltraISO"

Listary
Listary.exe /sp- /verysilent /dir=":\Program Files\Listary"

修改软件默认安装路径
修改注册表:开始→运行→regedit打开注册表:展开“HKEY_LOCAL_MACHINE\software\Microsoft\Windows\Current Version“项。在右侧窗口找到“ProgramFilesDir”值,改成你想要的目录,重新启动电脑后,也可以将默认安装目录安装到之前指定的文件夹中了

其他:

  1. Microsoft.Net:dotnet-sdk-3.1.301-win-x64.exe /install /quiet /norestart (参考:https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=net60)

修改用户文件夹名称

  1. 启用管理员账户。找到“此电脑”右击,点击管理。在左边的“计算机管理”中找到“本地用户组”,点击打开右侧可见Administrator用户与当前用户,选中Administrator用户右击“属性”,将“账户已禁用”前面的√去掉,点击确定
  2. 登录管理员账户,修改用户文件夹名。
  3. 修改注册表。在注册表的 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist中找到要修改的用户目录,找到ProfileImagePath属性,修改即可。
  4. 注销管理员账户,登录用户,禁用管理员账户。

验证文件Hash

打开Powershell:

Get-FileHash C:\Users\用户1\Downloads\Contoso8_1_ENT.iso

命令行设置环境变量

1
2
3
4
5
6
7
8
9
# 设置环境变量
setx /m path "%path%;C:\WebDriver\bin\"
# Win XP以上查看Wifi密码:
netsh wlan show profiles
netsh wlan show profiles name="WiFi名称" key=clear
netsh wlan show profile * key=clear
# 用户文件夹路径中有'符号的,powershell打开会报错。修改用户文件夹名:
打开注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist
修改对应的ProfileImagePath路径。注销后进入会提示登录失败,修改用户文件夹名称即可。

Windows命令行查看Wifi信息

1
2
3
# 要求Win7以上。
netsh wlan show profiles
netsh wlan show profiles WiFi名称 key=clear

BAT & VBS Notes

BAT检测是否有管理员权限以及提权运行

提权运行推荐使用Gsudo。或者下面这个脚本:

1
2
3
4
5
6
7
8
9
10
11
12
@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
::echo 当前运行路径是:%CD%
::下面就是你提权后运行的内容
........

检测可以使用这个:

1
whoami /groups | find \"S-1-16-12288\" && echo 如果是管理员,则会运行这句话。

BAT时间延时

1
TIMEOUT /T 5

BAT调用另一个BAT文件或者其他文本文件

1
2
3
4
5
CALL xxx.bat

:: 临时将conf文件转为bat后执行
copy /y xxx.conf tmpScript.bat >nul 2>nul
CALL tmpScript.bat

BAT检测.Net版本

1
2
::参考:https://www.cnblogs.com/jiduoduo/p/6529750.html
reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /r

VBS支持拖拽文件以及拖拽文件路径问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
参考:
https://www.jb51.net/article/175941.htm
http://www.bathome.net/thread-37815-1-1.html

'vbs拖放操作的问题; 如下,只要将文件或文件夹拖到这个t.vbs上就可以得到该文件或文件夹的路径
'方法一
If wscript.Arguments.count=0 then
msgbox "拖拽文件到本vbs文件",0,"提示"
End if
for jb=0 to wscript.Arguments.count-1
strPath=wscript.Arguments(jb)
msgbox strPath
next
'方法二
For Each ar In WScript.Arguments
filename=ar
Next
Msgbox filename

'切换工作路径到第一个参数的父目录
Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.CurrentDirectory = WScript.Arguments(0) & "\.."

VBS执行命令

1
2
3
4
Dim WshShell
Set WshShell = WScript.CreateObject("Wscript.Shell")
'0表示后台 true表示等待运行结束
a = WshShell.run ("xxx.bat",0,true)

VBS写入文件

1
2
3
4
5
6
7
'写入文件
Dim fso,tf
Set fso = CreateObject("Scripting.FileSystemObject")
'True-代表可以被下次写入覆盖
Set tf = fso.CreateTextFile("xxx.txt", True)
tf.WriteLine("写入的内容")
tf.close

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !