Powershell脚本foreach($ y in $ y)无法正常工作

时间:2016-06-23 16:01:14

标签: powershell automation

在避免使用PowerShell之后,只需编写一些基本脚本,我就会陷入困境。试图将多个参数传递给单个"参数"在函数中但它只会返回字符串

中的第一个值
#--------------------------------
# Returns logged on user of machine(s) given in parameter
#--------------------------------
function Get-UserLogged{
    param($computerName)
    foreach ($computer in $computerName) {

        return (query user /server:$computerName)
    }
}

现在如果我调用该函数并运行例如......

Get-UserLogged Server01 Server02 Server03

它只返回服务器1的输出,所以似乎foreach没有按预期工作

不同的脚本相同的问题:

function p{
    param($computerName)

    foreach ($computer in $computerName) {

        return (test-connection $computer -Count 1)

    }

}

如果我跑:

p localhost, google.com, bbc.com

它只会尝试localhost

1 个答案:

答案 0 :(得分:3)

您在循环内引用数组$computerName,而不是“当前项目”,$computer

function Get-UserLogged{
    param($computerName)
    foreach ($computer in $computerName) {

        query user /server:$computer
    }
}

要将字符串数组传递给参数,请使用逗号分隔项目:

Get-UserLogged -computerName Server01, Server02, Server03