Я пытаюсь понять область действия Powershell. Упрощенная выдержка из моего кода:
$AppData = (Get-Item env:appdata).value
$userName = $env:username
# The following 5 lines will query AD and get an ADUser object with all information
$filter = "(&(objectCategory=User)(samAccountName=$userName))"
$searcher = New-Object System.DirectoryServices.DirectorySearcher
$searcher.Filter = $filter
$ADUserPath = $searcher.FindOne()
$ADUser = $ADUserPath.GetDirectoryEntry()
write-host $ADUser.mobile
$usercell = $ADUser.mobile
write-host $usercell
If ($usercell = ""){
write-host "In if code "
write-host $usercell
}
else{
write-host "In else code "
write-host $usercell}
Результат: -
+64 21 999 150
+64 21 999 150
In else code
Это говорит мне, что код успешно извлекает расширенный атрибут mobile из ADU и успешно копируя его в переменную $ usercell. Это также говорит мне, что значение $ usercell правильно считывается кодом; он вводит код «else». Так почему же этот код "else" не знает значения $ usercell?