我已经为简单的启动或停止以及服务数组编写了一个powershell脚本。
这是我目前的剧本:
param([Switch] $Stop, [Switch] $Start)
$services = @(
"Service1",
"Service2",
"Service3",
"etc"
)
if ($Start -eq $true) {
echo "Starting services..."
get-service $services | start-Service
}
if ($Stop -eq $true) {
echo "Stopping services..."
get-service $services | stop-Service
}
echo "Done."
该命令只是Services -stop
或Services -start
我喜欢的参数-stop
或-start
是可以发现的(当你点击标签时)。
目前这将停止或启动数组中的所有服务,我想要做的还有停止或启动特定服务的选项。
如果我修改参数并接受服务名称,这很容易。
但我真正想做的是,将这些服务名称修复为我的数组中的那些服务名称,并以相同的方式发现,以便命中选项卡将通过可用的默认值?
结果可能是这样的:
Services -stop -service:Service1
这可能吗?将服务限制在我的数组中?
答案 0 :(得分:3)
您可以使用ValidateSet属性执行此操作,例如:
param(
[Parameter()]
[Switch]
$Stop,
[Parameter()]
[Switch]
$Start,
[Parameter()]
[ValidateSet("Service1","Service2","Service3","etc")]
[string[]]
$Service
)
...
您可以像这样调用制表符完成:
Services -stop -service <tab>