gpt4 book ai didi

powershell - 配置管理器

转载 作者:行者123 更新时间:2023-12-03 00:20:58 24 4
gpt4 key购买 nike

我是Powershell的新手,所以请不要惹我:)
我的问题是这样的:
我必须设置两种机器x86和x64。
在此安装过程中,我必须检查计算机上安装的.NET Framework版本。
我通过调用Test-Path来做到这一点:
测试键“HKLM:\ Software \ Wow6432Node \ Microsoft \ NET Framework安装程序\ NDP \ v1.1.4322”“安装”
我想做的是这样的:
#检查系统是否为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"
}

测试键
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
}

问题是,当我使用变量而不是带引号的字符串时,Test-Path会由于路径中的空格而失败:“\ NET Framework Setup”

该如何解决呢?

最佳答案

为了确定,我经常最终在路径周围放置“”,尝试将它们添加到上述函数中的Test-PathGet-ItemProperty调用中:
if(!(Test-Path -LiteralPath "$path"))if ((Get-ItemProperty "$path").$key
您可以使用以下命令获取计算机的体系结构
(Get-WmiObject Win32_OperatingSystem).OSArchitecture

关于powershell - 配置管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com