-2

让我写这个例子:我们在一个部署过程中,我们想要调用一个命令运行时(例如 Get-SPFeature),并且这个命令接受一些你想要在部署一些 pkgs 的过程中更改的选项。某些功能必须安装在 Web 范围内,其他功能必须安装在站点范围内,其他功能必须安装在 WebApplication 范围内。

这个想法是只编写一个函数,可以帮助您在检查后选择启用该功能的位置:

function EnableFeatures ($features, $where, $url, $logFile)

$features 变量是一个包含要启用的功能列表的数组。$url 变量是这个特性应该存在的地方。在尝试在该范围内启用该功能之前,我们需要 $where 变量来检查该功能是否已启用:

Get-SPFeature -Identity "my feature" -Webapplication/Site/Web "my url"

我想做的是使用我需要的变量执行我的 EnableFeatures 函数并进行此检查。

我怎样才能做到这一点?

4

1 回答 1

2

我认为你只能使用散列表因为你在变量中使用命名参数。

所以这将导致:

Get-SPFeature -Identity $feature @{$where=$url}

或者

Get-SPFeature @{Identity=$feature; $where=$url}

哦......你也可以这样做:

Invoke-Expression "Get-SPFeature -Identity $feature $where $url"

但对于您的需求,它可能会很慢。

于 2013-05-22T17:16:09.080 回答