首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MSIEXEC -Embedding

MSIEXEC -Embedding
EN

Stack Overflow用户
提问于 2018-02-19 16:11:37
回答 1查看 3.6K关注 0票数 0

下午好,

我需要一些处理windows安装程序的微软专家的帮助?

我试图监视msiexec,使用虚拟机上窗口中的调试键,并试图完全了解Msiexec是如何完全解析命令行的。

我已经设置了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\图像文件执行Options\msiexec.exe

重定向到示例应用程序以监视解析的命令行。

我在删除应用程序和安装应用程序(例如,C++可再发行版)时遇到了许多例子。

我理解标准的普通命令行,但无法理解如何使用-embedding开关。

语法一般为-Embedding 2FD6A2BDD8FE7E3EE9AD31C2970C272C A。

我已经尝试过在注册表中搜索,但是没有半自动的效果?

A-似乎意味着安装。C-似乎意味着移除。

任何人知道好的文件,我可以看看,以了解正在发生的事情,这是在背后的另一个问题,我问了几天前,我觉得已经得到了答案。

External handler for msiexec MsiSetExternalUI

EN

回答 1

Stack Overflow用户

发布于 2018-02-28 14:36:00

guids是如何重新排列的?

他们是微软所谓的“压缩”。正因为如此,他们的麻烦是一个神秘的but...whatever。我还看到他们被称为“达尔文转化的GUID”。下面是一个脚本,您可以输入GUID来获得压缩的GUID,反之亦然:

代码语言:javascript
运行
复制
'strCode    = "{87E21645-7A8E-454D-B899-0317F2AEE9B9}"
strMungedCode   = "4659EEA429F218A4CAEDA156497418B7"

'Call MungeProductCode(strCode, strMungedCode)
'WScript.Echo strCode & " munged becomes " & strMungedCode

Call UnMungeProductCode(strMungedCode, strCode)
WScript.Echo strMungedCode & " unmunged becomes " & strCode

Sub MungeProductCode(ByVal strProductCode, ByRef strMungedCode)
    '// This routine munges the ProductCode into the munged format 
    '// used by various registry entries for Windows Installer
    '// For example:    {D650B8A9-C547-42D3-A7DF-0FAD0AC6E9ED}
    '//             becomes
    '//         9A8B056D745C3D247AFDF0DAA06C9EDE

    Dim arrSortOrder
    Dim strNewCode
    Dim intIndex

    arrSortOrder                = Array(9,8,7,6,5,4,3,2,14,13,12,11,19,18,17,16,22,21,24,23,27,26,29,28,31,30,33,32,35,34,37,36)

    '// Generate the munged code
    For intIndex = 0 To UBound(arrSortOrder)
        strNewCode          = strNewCode & Mid(strProductCode,arrSortOrder(intIndex),1)
    Next

    strMungedCode               = strNewCode
End Sub

Sub UnMungeProductCode(ByVal strMungedCode, ByRef strProductCode)
    '// This routine reconstructs a ProductCode from the munged format 
    '// used by various registry entries for Windows Installer
    '// For example:    9A8B056D745C3D247AFDF0DAA06C9EDE
    '//             becomes
    '//         {D650B8A9-C547-42D3-A7DF-0FAD0AC6E9ED}

    Dim arrSortOrder
    Dim intIndex
    Dim strPartTemp
    Dim strPart1
    Dim strPart2
    Dim strPart3
    Dim strPart4
    Dim strPart5

    '// Part 1
    strPartTemp             = Left(strMungedCode, 8)
    strPart1                = StrReverse(strPartTemp)

    '// Part 2
    strPartTemp             = Mid(strMungedCode, 9, 4)
    strPart2                = StrReverse(strPartTemp)

    '// Part 3
    strPartTemp             = Mid(strMungedCode, 13, 4)
    '// Excuse me! May I borrow these variables for a moment?
    strPart3                = Left(strPartTemp, 2)
    strPart4                = Right(strPartTemp, 2)
    strPart3                = StrReverse(strPart4) & StrReverse(strPart3)

    '// Now deal with part 4 properly
    strPartTemp             = Mid(strMungedCode, 17, 2)
    strPart4                = Mid(strMungedCode, 19, 2)
    strPart4                = StrReverse(strPartTemp) & StrReverse(strPart4)

    strPartTemp             = Mid(strMungedCode, 21, 12)

    arrSortOrder                = Array(2,1,4,3,6,5,8,7,10,9,12,11)
    '// Generate the product code
    For intIndex = 0 To UBound(arrSortOrder)
            strPart5            = strPart5 & Mid(strPartTemp,arrSortOrder(intIndex),1)
    Next

    strProductCode              = ""
    strProductCode              = strProductCode & "{"
    strProductCode              = strProductCode & strPart1
    strProductCode              = strProductCode & "-"
    strProductCode              = strProductCode & strPart2
    strProductCode              = strProductCode & "-"
    strProductCode              = strProductCode & strPart3
    strProductCode              = strProductCode & "-"
    strProductCode              = strProductCode & strPart4
    strProductCode              = strProductCode & "-"
    strProductCode              = strProductCode & strPart5
    strProductCode              = strProductCode & "}"
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48869988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档