我是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“}
# 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测试键
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“
应该怎么做才能解决这个问题?
发布于 2011-04-12 14:28:42
为了确定,我经常在路径两边加上"“,尝试将它们添加到上面函数中的Test-Path和Get-ItemProperty调用中:
if(!(Test-Path -LiteralPath "$path"))
if ((Get-ItemProperty "$path").$key
您可以使用以下命令获取机器的体系结构
(Get-WmiObject Win32_OperatingSystem).OSArchitecture
https://stackoverflow.com/questions/5628872
复制相似问题