首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置管理器

配置管理器
EN

Stack Overflow用户
提问于 2011-04-12 07:51:25
回答 1查看 289关注 0票数 2

我是powershell的新手,所以不要把我难住了:)我的问题是:我必须设置两种类型的机器: x86和x64。在此设置过程中,我必须检查机器上安装的.NET框架的版本。我正在通过调用Test-Path: Test-Key "HKLM:\Software\ Wow6432Node \Microsoft\NET Framework Setup\NDP\v1.1.4322“"Install”“安装”“安装”我想做的是:#检查系统是否为x64体系结构#如果是肯定的,请将注册表#更改为Wow6432Node if($os_architecture -eq "x64") { $dot_net_registry_root_path = "HKLM:\SOFTWARE\Wow6432Node“}

代码语言:javascript
复制
# Add common framework path
$dot_net_registry_path = $dot_net_registry_root_path + "\NET Framework Setup\NDP\"

# Check 1.0 version of .NET Framework
$dot_net_1_0_registry_path = $dot_net_registry_root_path + "\Microsoft\.NETFramework\v1.0\SBSDisabled"

if(!(Test-Key $dot_net_1_0_registry_path "Install"))
{
    Write-Output ".NET Framework v1.0.3705 is NOT installed"
}
else
{
    Write-Output ".NET Framework v1.0.3705 is installed"
}

# Check 1.1 version of .NET Framework
$dot_net_1_1_registry_path = "'" + $dot_net_registry_path + "v1.1.4322"  + "'"

if (!(Test-Key $dot_net_1_1_registry_path "Install"))
{
    Write-Output "Please install .NET Framework v1.1.4322"
}
else
{
    Write-Output ".NET Framework v1.1.4322 is installed"
}

where测试键

代码语言:javascript
复制
function Test-Key([string]$path, [string]$key)
{
    if(!(Test-Path -LiteralPath $path)) { return $false }

    if ((Get-ItemProperty $path).$key -eq $null) { return $false }

    return $true
}

问题是,当我使用变量而不是带引号的字符串时,测试路径失败,因为路径中有空格:"\NET Framework Setup“

应该怎么做才能解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2011-04-12 14:28:42

为了确定,我经常在路径两边加上"“,尝试将它们添加到上面函数中的Test-PathGet-ItemProperty调用中:

if(!(Test-Path -LiteralPath "$path"))

if ((Get-ItemProperty "$path").$key

您可以使用以下命令获取机器的体系结构

(Get-WmiObject Win32_OperatingSystem).OSArchitecture

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5628872

复制
相关文章

相似问题

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