我是PowerShell的新手,正在尝试构建一个简单的脚本。虽然我可以使用read-host命令设置变量,但调用时它确实会返回结果。
如果我用实际的城市名称代替脚本而不是varial,那么脚本会按预期工作,所以我一定缺少带范围的东西?
$location = Read-Host -Prompt "enter the city name"
#get a list of users who have mailboxes in a specific city
$cityusers = Get-User -ResultSize unlimited -Filter {(RecipientType -eq 'UserMailbox') -and (City -eq $location)}
我希望脚本返回基于read-host命令中城市输入的结果,但我会从多个城市获得用户。如果我按名称指定城市(无变量),它将按预期运行。
答案 0 :(得分:0)
花点时间,但我想我发现了您的错误。请记住,变量实际上并不作为命令执行,而是仅在被调用时执行。 I.E
$dont_execute = 10+20
echo "Only this line shows."
这样做的时候:
$execute = 10+20
echo $execute
#Should show 30
echo "Oh hey, now you have two lines, but only because you used the variable."
请注意我如何使用变量而不是让它坐在那里。确保您的脚本没有做同样的事情。
答案 1 :(得分:0)
所以我现在终于可以工作了。问题在于我尝试按类型和城市筛选邮箱的方式:
-User -ResultSize unlimited -Filter {(RecipientType -eq 'UserMailbox') -and (City -eq $location)}
这需要使用$ _这样的变量来完成:
#prompt for a city
$location = Read-Host -Prompt "enter the city"
#get a list of users who have mailboxes in a specific city
$cityusers = Get-User -ResultSize unlimited | Where-Object {($_.RecipientTypeDetails -eq 'UserMailbox') -and ($_.city -eq $location)}
感谢您的帮助