gpt4 book ai didi

powershell - 使用 PowerShell 安装多个 ServerRole

转载 作者:行者123 更新时间:2023-12-02 23:30:47 25 4
gpt4 key购买 nike

我为 Server 2008 R2 编写了一个 PowerShell 脚本,以检查是否安装了某些角色和功能以及是否安装它们(当然我首先导入了 ServerManager 模块),即:

if ((Get-WindowsFeature AS-NET-Framework).Installed -eq 0)
{$InstallFeatures += "AS-NET-Framework,"
Write-Host "AS-NET-Framework will be added"}

if ((Get-WindowsFeature GPMC).Installed -eq 0)
{$InstallFeatures += "GPMC,"
Write-Host "GPMC will be added"}

但是当我调用
Add-WindowsFeature $InstallFeatures

它给出了一个找不到名称的错误。
不知何故 PS 不接受逗号作为字符串中的分隔符。

但是如果你输入
Add-WindowsFeature AS-NET-Framwork,GPMC

在控制台中它工作得很好。

有什么方法可以调用 Add-WindowsFeature将我需要的所有参数放在一行中,而无需为每次检查创建新变量,因为那样我只需要重新启动所有缺少的角色和功能?

提前致谢。

最佳答案

尝试声明:

 [string[]]$InstallFeatures = @()

在你的代码之前。
if ((Get-WindowsFeature AS-NET-Framework).Installed -eq 0)
{$InstallFeatures += "AS-NET-Framework"
Write-Host "AS-NET-Framework will be added"}
if ((Get-WindowsFeature GPMC).Installed -eq 0)
{$InstallFeatures += "GPMC"
Write-Host "GPMC will be added"}
Get-WindowsFeature 的签名是:
Get-WindowsFeature [[-Name] <string[]>] [-logPath <string>] [<CommonParameters>]

参数名称接受 string array而不是 string .
在您的代码中,您需要删除我上面写的逗号。

关于powershell - 使用 PowerShell 安装多个 ServerRole,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910616/

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