cmdlet到变量不被接受

时间:2019-03-15 19:20:26

标签: powershell variables directory

应该是一个非常简单的脚本,但是在获取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 :(得分:0)

当我在下面一行中删除$ usertocheck周围的引号时($ usertocheck已经是一个字符串,因此不需要引号),它对我有用

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

此外,您还可以像这样访问Get-AdUser返回的对象的department属性

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

根据我的经验,访问对象的属性是获取所需输出的更可靠,更简洁的方法,而不是使用“选择对象”。

希望这会有所帮助。