我对PS比较陌生,但在更广泛的IaC工作流程中使用PS。我有以下脚本,它检查安装的服务的数量,并将端口号变量递增1。
$Service = Get-Service Test* | Select-Object Name
If( $Service.Name.count -eq 0){
$port = 12000 }
If( $Service.Name.count -eq 1){
$port = 12001 }
If ( $Service.Name.Count -eq 2){
$port = 12002 }
If ( $Service.Name.Count -eq 3){
$port = 12003 }不幸的是,这并不像我希望的那样动态,因为如果有3个以上的服务,脚本就会失败。如何根据现有的服务数量动态递增端口号?端口号从12000开始,如果安装了其他服务,则端口号为12001,如果检测到第三个服务,则端口号为12002,依此类推。
发布于 2020-06-25 00:03:57
如果您确保$Service对象是一个集合,则可以遵循comment by AdminOfThings中的建议:
$Service = @(Get-Service Test* | Select-Object Name)
$port = 12000 + $Service.Count否则,您将遇到以下错误:
$Service = Get-Service Test* ; $Service; $Service.Count在此对象上找不到属性'Count‘。验证该属性是否存在。第1行: char:42 + $Service =获取服务测试*;$Service;$Service.Count +~+ CategoryInfo : NotSpecified:(:) [],PropertyNotFoundException + FullyQualifiedErrorId : PropertyNotFoundStrict
$Service = Get-Service Te* ; $Service; $Service.Count状态名称DisplayName -运行TermService远程桌面服务时,在此对象上找不到属性'Count‘。验证该属性是否存在。第1行: char:40 + $Service =获取服务Te*;$Service;$Service.Count +~+ CategoryInfo : NotSpecified:(:) [],PropertyNotFoundException + FullyQualifiedErrorId : PropertyNotFoundStrict
https://stackoverflow.com/questions/62558427
复制相似问题