Командлет для переменной не принимается - PullRequest
0 голосов
/ 15 марта 2019

Должен быть очень простым сценарием, но при этом возникают проблемы с распознаванием выходных данных get-aduser в качестве переменной, помимо прочего. Я перепробовал все форматы кавычек и скобок, о которых я могу думать, но не могу получить правильный вывод. Сценарий просто запрашивает определенного пользователя и экспортирует группы AD в папку, названную для их отдела, а затем в текстовый файл с именем и заголовком.

$usertocheck = Read-Host -Prompt 'Input user to check'

$depttoadd = Get-AdUser -Filter {samAccountName -eq "$usertocheck"} -Properties Department | 
    Select-Object -expand Department

New-Item -ItemType Directory -Force -Path "C:\Users\Public\Desktop\UserRecords\$depttoadd\"

Get-ADPrincipalGroupMembership $usertocheck | select name | 
    Out-File -FilePath "C:\Users\Public\Desktop\UserRecords\$($usertocheck)_$($titlelookup).txt"

Любые советы будут оценены.

1 Ответ

0 голосов
/ 15 марта 2019

Это работает для меня, когда я удаляю кавычки вокруг $ usertocheck в строке ниже ($ usertocheck уже является строкой, поэтому нет необходимости в кавычках)

$depttoadd = Get-AdUser -Filter {samAccountName -eq $usertocheck} -Properties Department |

В качестве примечания вы также можете получить доступ к свойству отдела объекта, возвращаемого Get-AdUser, например:

$depttoadd = $(Get-AdUser -Filter {samAccountName -eq $usertocheck} -Properties Department).Department

По моему опыту, изменение свойств объекта является более надежным и чистым способом получения нужного результата, чем использование Select-Object.

Надеюсь, это поможет.

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