如何查找通过Powershell安装了64位还是32位Excel?

Samselvaprabu

我们已经编写了powershell函数来查找是否安装了64位或32位msi。我们正在检查Outlook注册表项,因为该注册表项包含位数信息。

但是,当用户仅安装没有Outlook的excel时,此注册表项不可靠(在64位操作系统中可用,但在32位操作系统中不可用)。

以下是我们为找到该功能而编写的函数。现在由于注册表项不可用,因此无法正常工作。还有其他方法可以找到Excel的优点吗?

Function Get-OfficeVersionInstalled
{
    $NoExcelInstalled = '0'
    $excelApplicationRegKey = "HKLM:\SOFTWARE\Classes\Excel.Application\CurVer"
    if( Test-Path $excelApplicationRegKey)
    {
        $excelApplicationCurrentVersion = (Get-ItemProperty $excelApplicationRegKey).'(default)'

        #Get version number alone from registry value
        $($excelApplicationCurrentVersion -replace "Excel.Application.","")
    }
    else
    {
        $NoExcelInstalled
    }
}

Function Test-Excel2013AndAbove
{
    Param
    (
        [ValidateSet("x64", "x86")]
        $Edition="x64"  
    )
    $isExpectedEditionInstalled = $false
    $officeVersion = Get-OfficeVersionInstalled
    $office2013Version = 15

    if( $officeVersion -ge $office2013Version) {

    # In registry, version will be with decimal
        $officeVersion = $officeVersion+".0"

        # Outlook key is having bitness which will decide the edition. 
    # Even if outlook is not installed this key will be present.
    # This is the only place where we can reliably find the edition of Excel
        $OutlookKey = "HKLM:\SOFTWARE\Microsoft\Office\$officeVersion\Outlook"
        $OutlookWow6432NodeKey = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Office\$officeVersion\Outlook"

        if(Test-Path $OutlookKey)
        {       
            $officeRegKey = $OutlookKey
        }
        else
        {        
            $officeRegKey = $OutlookWow6432NodeKey
        }

        $BitNess = (Get-ItemProperty $officeRegKey).BitNess

        if($BitNess -eq $Edition)
        {
            $isExpectedEditionInstalled = $true
        }
        else
        {
            $isExpectedEditionInstalled = $false
        }

    }

    return $isExpectedEditionInstalled
}
罗伯特·哥伦比亚

没有仿真器,您将无法在32位版本的Windows上运行64位软件(是否可以在32位计算机上执行64位程序?这意味着如果您检测到32位操作系统,则任何本地的,非模拟的Excel安装(如果有)都将是32位。

因此,这里有一些伪代码可以做到这一点:

if (OS.BitSize == 32)
{
    Check if Excel installed. If so, then it is 32 bit.
}
else
{
    //64 bit OS
    Check registry key to determine whether 32 or 64 bit Excel is installed.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检测是否安装了32位或64位JDK?

来自分类Dev

如何检测是否安装了32位或64位JDK?

来自分类Dev

如何查找apk是32位还是64位

来自分类Dev

如何知道我的服务器中安装了哪个版本的Office 2013;32位还是64位?

来自分类Dev

如何检查已安装的Anaconda是32位还是64位?

来自分类Dev

如何确定我的cygwin安装是32位还是64位?

来自分类Dev

如何检查安装的 wxPython 是 32 位还是 64 位?

来自分类Dev

安装64位Ubuntu还是32位?

来自分类Dev

如何在PowerShell中检查要安装的可执行文件是32位还是64位?

来自分类Dev

当同时安装了32位和64位JVM时,如何使用32位JVM强制运行Jar文件?

来自分类Dev

通过使用注册表检测安装的MS Office是32位还是64位

来自分类Dev

查找ipa文件是32位还是64位。(macos / unix)

来自分类Dev

我的Ubuntu是安装32位还是64位?

来自分类Dev

我应该安装32位还是64位?

来自分类Dev

为NSIS安装程序选择32位还是64位?

来自分类Dev

如何查找我的WAMP服务器是32位还是64位?

来自分类Dev

如何查找我的WAMP Server是32位还是64位?

来自分类Dev

Powershell:确定进程是32位还是64位

来自分类Dev

WIX 如何知道它安装的是 32 位还是 64 位软件?

来自分类Dev

如何知道libpython27.a是32位还是64位?

来自分类Dev

如何检查我的软件是32位还是64位

来自分类Dev

如何确定我的Firefox是32位还是64位?

来自分类Dev

如何测试共享对象是32位还是64位?

来自分类Dev

如何判断我的代码是32位还是64位编译

来自分类Dev

如何检查我的软件是32位还是64位

来自分类Dev

如何确定我的Firefox是32位还是64位?

来自分类Dev

如何确定我的Windows是32位还是64位?

来自分类Dev

如何判断我编写的程序是 32 位还是 64 位?

来自分类Dev

JVM是32位还是64位?

Related 相关文章

  1. 1

    如何检测是否安装了32位或64位JDK?

  2. 2

    如何检测是否安装了32位或64位JDK?

  3. 3

    如何查找apk是32位还是64位

  4. 4

    如何知道我的服务器中安装了哪个版本的Office 2013;32位还是64位?

  5. 5

    如何检查已安装的Anaconda是32位还是64位?

  6. 6

    如何确定我的cygwin安装是32位还是64位?

  7. 7

    如何检查安装的 wxPython 是 32 位还是 64 位?

  8. 8

    安装64位Ubuntu还是32位?

  9. 9

    如何在PowerShell中检查要安装的可执行文件是32位还是64位?

  10. 10

    当同时安装了32位和64位JVM时,如何使用32位JVM强制运行Jar文件?

  11. 11

    通过使用注册表检测安装的MS Office是32位还是64位

  12. 12

    查找ipa文件是32位还是64位。(macos / unix)

  13. 13

    我的Ubuntu是安装32位还是64位?

  14. 14

    我应该安装32位还是64位?

  15. 15

    为NSIS安装程序选择32位还是64位?

  16. 16

    如何查找我的WAMP服务器是32位还是64位?

  17. 17

    如何查找我的WAMP Server是32位还是64位?

  18. 18

    Powershell:确定进程是32位还是64位

  19. 19

    WIX 如何知道它安装的是 32 位还是 64 位软件?

  20. 20

    如何知道libpython27.a是32位还是64位?

  21. 21

    如何检查我的软件是32位还是64位

  22. 22

    如何确定我的Firefox是32位还是64位?

  23. 23

    如何测试共享对象是32位还是64位?

  24. 24

    如何判断我的代码是32位还是64位编译

  25. 25

    如何检查我的软件是32位还是64位

  26. 26

    如何确定我的Firefox是32位还是64位?

  27. 27

    如何确定我的Windows是32位还是64位?

  28. 28

    如何判断我编写的程序是 32 位还是 64 位?

  29. 29

    JVM是32位还是64位?

热门标签

归档