跳至主要内容

安装和卸载软件(msi\exe)


如何判断一个软件是64位的还是32位的?

情况1、未安装--右键安装程序查看属性,兼容性,勾选兼容模式查看最低适配是vista的是64位,反之32位,不太准确

情况2、已安装--运行软件,64位操作系统打开任务管理器看进程后缀名,带*32就是32位,反之64位



https://www.joci.net/xxbk/126251/
FileMon和Regmon不再可供下载。从Windows 2000 SP4,Windows XP SP2,Windows Server 2003 SP1和Windows Vista开始的Windows版本上,它们已被Process Monitor取代
Process Monitor是Windows的高级监视工具,它显示实时文件系统,注册表和进程/线程活动。它结合了两个旧的Sysinternals实用程序Filemon和 Regmon的功能,并添加了广泛的增强功能列表,包括丰富的和非破坏性的过滤,全面的事件属性(例如会话ID和用户名),可靠的过程信息,带有集成符号的完整线程堆栈支持每个操作,同时记录到文件等。它独特的强大功能将使Process Monitor成为您的系统故障排除和恶意软件搜索工具包中的核心实用程序。




https://wikileaks.org/ciav7p1/cms/page_42991626.html
HKLM\Software\Microsoft\Cryptography\MachineGuid
Machine GUID/Cryptography GUID---该密钥通常用作机器的唯一标识符。它也已用于将两台计算机链接在一起-在某些情况下,计算机GUID是与设备(MP3播放器等)一起传递的。
Machine GUID不是唯一

https://docs.microsoft.com/zh-cn/windows/win32/properties/props-system-identity-uniqueid?redirectedfrom=MSDN
UniqueID才是唯一


注册表是存储系统和应用程序的设置信息

打开注册表的方式很简单:cmd中输入regedit
卸载路径只有一个

已安装32位的程序,如果是系统是32位的,卸载路径路径为:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

如果系统是64位的,则要比32位的多一个路径,卸载路径路径为:
"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\"
此注册表项通常用于安装在64位计算机上的32位应用程序

WOW6432Node表示您正在运行64位版本的Windows,并允许管理在64位版本的Windows上运行的32位应用程序

安装时选择只针对当前用户
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall HKCU\Software\Microsoft\Installer\Products


  1. 打开以管理员身份运行的CMD提示
  2. 通过让WMIC产生一个列表来找出程序的确切名称:
    wmic product get name
  3. 使用WMIC PRODUCT NAME命令删除所需的程序 
    wmic product where name ="<PROGRAM NAME HERE>" call uninstall /nointeractive

如果不使用/ nointeractive开关,则WMIC将提示用户确认卸载,这可能会破坏编写卸载脚本的目的。

还要注意,通配符可以与WMIC一起使用,但是命令略有不同:

wmic product where "name like '<PROGRAM NAME HERE>%%'" call uninstall

您还可能需要清理安装文件夹(如果仍然存在),请使用:

rd /s /q C:\Program Files\<PROGRAM FOLDER NAME HERE>

C:\Users\DZL>rd /?
删除一个目录。

RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path

    /S      除目录本身外,还将删除指定目录下的所有子目录和
            文件。用于删除目录树。

    /Q      安静模式,带 /S 删除目录树时不要求确认


rd /? | clip   将输出黏贴到粘贴板




http://www.instedit.com/home.html
InstEd是专为专业人士打造的免费msi编辑器
安装InstEd后打开,File--Open--msi安装程序--Tables--Property--ProductCode


在Windows SDK的工具,orca会允许你打开和查看MSI文件的所有表


https://stackoverflow.com/questions/48315763/how-to-install-orca-which-windows-sdks-contain-the-orca-msi-editing-tool

安装
msiexec /a "C:\xxx.msi" /quiet /l* "C:\install_log.txt"

卸载
msiexec /x "C:\xxx.msi" /quiet /l* "C:\uninstall_log.txt"

msiexec /x {ProductCode} /quiet /l* "C:\uninstall0_log.txt"

'HKLM\Software\Classes\Installer\Products'找到ProductCode

使用安装MSI卸载

如果仍然可以访问.MSI安装文件,则可以简单地运行:

msiexec /x <PROGRAM NAME HERE>.msi /q

使用应用程序的GUID卸载

如果您无权访问.MSI安装文件:

  1. 通过打开REGEDIT并展开来找出程序的GUID:
    HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Uninstall
  2. 在以ADMIN身份运行的CMD窗口中或以ADMIN身份运行的脚本中,如:
    msiexec /quiet /norestart /uninstall {<GUID>}

    msiexec /quiet /norestart /uninstall {7FCA6452-46F2-452F-A5A7-DAB7DE12D0E6}

如何使用PowerShell卸载程序

  1. 您可以使用上述e WMIC方法中的前两个步骤来确定确切的程序名称
  2. 在以管理员身份运行的PowerShell中使用以下命令:
    $app = Get-WmiObject -Class Win32_Product -Filter "Name = '<PROGRAM NAME HERE>'"
    $app.Uninstall()


WMI Explorer是一种实用程序,旨在提供在单个视图窗格中浏览和查看WMI命名空间/类/实例/属性的功能

How do I use a batch file to silently install/uninstall from the command line?

These examples show how you can run a batch file to silently install or uninstall Studio and Runtime from the command line.

Note: You do not need to use the runas prefix if you are already running as the user you want to install as.

Installing Runtime silently

runas /user:"Administrator" "msiexec /i C:\Test\5.2.259\OpenSpanRuntimeEntSetup.x64.msi /qn /lv C:\Test\runtime5.2.259.log"
pause

You can also pass parameters to the installer if you want to change the default settings, such as enabling server connectivity. Here is an example of a Runtime install with parameters:

runas /user:"Administrator" "msiexec /i C:\Test\5.2.259\OpenSpanRuntimeEntSetup.x64.msi /qn /lv C:\Test\runtime5.2.259.log SERVERCONNECTIVITYENABLED=TRUE SERVERHOSTNAME=myserver.com"
pause

Uninstalling Runtime silently

runas /user:"Administrator" "msiexec /x C:\Test\HF5.2.259.17\OpenSpanRuntimeEntHF23626x64.msi /qn /lv C:\Test\UninstallRuntime5.2.259.17.log"
pause

Installing a patch silently

runas /user:"Administrator" "msiexec.exe /update C:\Test\HF5.2.259.17\OpenSpanRuntimeEntHF23626x64.msi /qn /lv C:\Test\runtimeHF5.2.259.17.log"
pause

Uninstalling a patch silently

runas /user:"Administrator" "msiexec /uninstall C:\Test\HF5.2.259.17\OpenSpanRuntimeEntHF23626x64.msi /package C:\Test\5.2.259\OpenSpanRuntimeEntSetup.x64.msi /qn /lv C:\Test\UninstallRuntime5.2.259.17.log"
pause

Note: When uninstalling just a patch, keep in mind that you must pass in the path to the original MSI.





FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
会枚举当前环境中的环境变量名称

评论

此博客中的热门博文

Chrome浏览器

谷歌搜索 双引号——精确搜索 冒号后加文件类型——搜索特定类型的结果 关键词 后 site:**——搜索特定网站的关键词 +、-关键词——实现特定需求筛选 Google中/——快捷键入浏览·搜索框 关键词后..——搜索特定范围(地点)关键词 intitle:关键词——搜索特定标题 用 puppeteer 直接运行 chrome 爬 https://github.com/puppeteer/puppeteer Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议 控制 Chrome 或 Chromium 。Puppeteer默认 无头 运行,但可以配置为运行完整(非无头)Chrome 或 Chromium。 了解如何为 Chrome 开发扩展程序 https://developer.chrome.com/docs/extensions/mv3/ 什么是Chrome插件 https://github.com/sxei/chrome-plugin-demo Google Workspace 状态信息中心 https://www.google.com/appsstatus#hl=zh&v=status 此页面提供属于“Google Workspace”的服务的状态信息 谷歌浏览器离线下载 https://support.google.com/chrome/answer/95346?co=GENIE.Platform%3DDesktop&hl=zh-Hans 企业版 https://cloud.google.com/chrome-enterprise/browser/download 也可以在谷歌浏览器 帮助中心 中搜索chrome https://www.google.com/intl/zh-CN/chrome/?standalone=1 chrome 打开新网页时不要覆盖 鼠标 中键(滚轮)点击超链接 ,或者右击超链接,选择新标签页打开, 还有点链接的同时按下 Ctrl 键也可以 谷歌在线翻译网页 http://translate.google.com/translate?u= http://www.dropitproject.com/index.php 打开chrome浏览器按 F6 ,等同于按 ...

python 之 configparser、configobj(ini配置文件)

ini 即 Initialize 初始化之意,通常由节(Section)、键(key)和值(value)组成 ini修改工具 https://visionlore.com/lab/ini_editor.php https://www.horstmuc.de/wbat32.htm#inifile 语法      INIFILE filename.ini [section] item=string # db.ini 中的内容 # ********************* # [localdb] # host     = 127.0.0.1 # user     = root # password = 123456 # port     = 3306 # database = mysql # *********************   import pymysql from configparser import ConfigParser   cfg = ConfigParser ( ) cfg. read ( "db.ini" )   print ( cfg. items ( "localdb" ) ) db_cfg = dict ( cfg. items ( "localdb" ) ) print ( db_cfg )   # 端口port类型str转为int db_cfg [ 'port' ] = int ( db_cfg [ 'port' ] ) con = pymysql. connect ( **db_cfg )   from pprint import pprint lst = [ line. strip ( ) for line in open ( 'db.ini' ) ] pprint ( lst ) http://www.voidspace.org.uk/python/articles/configobj.shtml https://configobj.readthedocs.io/en/latest/configobj.html https://pythonhosted.or...

python 代码示例

  加密软件 谷歌搜registration codes python和license keys python https://www.nuvovis.com/python-software-licensing.html https://build-system.fman.io/generating-license-keys https://codereview.stackexchange.com/questions/95499/register-login-and-authentication-through-terminal 获取MAC地址并生成序列号,从序列号生成激活密钥 secrets模块资料 https://blog.miguelgrinberg.com/post/the-new-way-to-generate-secure-tokens-in-python # 不足十位左边加零 while True:     num = input('Enter a number : ')     print('The zero-padded number is : ', str(num).rjust(10, '0')) 查找n个自然数的和 # Sum of natural numbers up to num   num = 16   if num < 0 :     print ( "Enter a positive number" ) else :     sum = 0     # use while loop to iterate until zero     while ( num > 0 ) :         sum + = num        num - = 1     print ( "The sum is" , sum )   使用匿名函数显示整数2的幂 # Display the powers of 2 using anonymous function ...