простая переменная powershell не сохраняется для последующего использования в скрипте - PullRequest
1 голос
/ 01 мая 2019

Я новичок в powershell и пытаюсь создать простой скрипт.Хотя я могу установить переменную с помощью команды read-host, она возвращает результаты при вызове.

Если я подставлю реальное название города, сценарий вместо varialbe будет работать так, как задумано, поэтому я должен отсутствоватьчто-то с областью действия?

$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, но вместо этого я получаю пользователей из нескольких городов.Если я укажу город по имени (без переменных), он будет работать как положено.

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Итак, теперь у меня наконец-то все работает. Проблема была в том, как я пытался отфильтровать почтовые ящики по типу и городу:

-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)}

Спасибо за вашу помощь

0 голосов
/ 02 мая 2019

Мне потребовалась минута, но я думаю, что нашел вашу ошибку.Имейте в виду, что переменные на самом деле не выполняются как команды, а только при вызове.IE

$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."

Обратите внимание, как я использую переменную вместо того, чтобы позволить ей сидеть там.Убедитесь, что ваш скрипт не делает то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...