【发布时间】:2019-03-15 19:20:25
【问题描述】:
应该是一个非常简单的脚本,但在从 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"
任何提示将不胜感激。
【问题讨论】:
-
欢迎来到 StackOverflow!而不是“任何提示将不胜感激”。你可以清楚地问你的问题。即“如何让 get-aduser cmdlet 的输出被识别为变量?”或类似的东西。
-
$titlelookup在哪里设置? -
我认为
$...= Get-ADUser..应该可以工作,然后直接引用属性。 -
A minimal reproducible example 应该包括预期/偏差行为以及您收到的错误消息。
-
一个更正确的编写过滤器的方法是
Get-AdUser -Filter "samAccountName -eq '$usertocheck'",在外面加上双引号,在变量周围加上单引号。尽管帮助和在线示例说了什么,但它不是 PowerShell 脚本块,只有一些组合可以正常工作。除此之外,您的代码确实看起来应该从部门创建一个文件夹,-Expand是正确的,而双引号内的$depttoadd对于 New-Item 是正确的。假设用户在 AD 中指定了部门,并且脚本具有文件系统权限。
标签: powershell variables directory