Powershell Cmd和Option在运行时

时间:2013-05-22 15:43:38

标签: sharepoint powershell

让我编写这个示例:我们处于一个部署过程,我们希望调用命令运行时(例如Get-SPFeature),并且此命令接受一些您希望在部署某些pkgs的过程中更改的选项。 某些功能必须安装在Web Scope中,其他功能必须安装在Site Scope中,其他功能必须安装在WebApplication范围内。

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

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

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

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

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

我认为你只能使用哈希表splatting,因为你在变量中使用了命名参数。

所以这会导致:

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

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

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

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

但是你的需求可能会很慢。