两个问题,第一个可能很简单但是非常烦人。我正在使用用户名变量作为属性运行AD查找脚本:
[string]$FirstName = Read-Host "User First Name"
[string]$LastName = Read-Host "User Last Name"
[string]$FullName = "*$FirstName* *$LastName*"
write-host
Get-ADUser -Filter {name -like $FullName} -properties * | select-object name, samaccountname | sort-object
read-host "Press Enter to exit"
问题是“读取主机”被解释为同一命令的一部分,查询结果出现在提示之后。我想暂停脚本,以便在控制台关闭之前通过按Enter键从屏幕上读取结果。我一直在尝试使用括号或不同类型的循环,但却无法弄清楚应该如何进行循环。
我的第二个问题是我想将samaccountname作为搜索属性。像这样:
[string]$Login = Read-Host "User Login name"
[string]$LoginName = "*$Login*"
应该添加变量以过滤类似于使用FullName变量的方式。
答案 0 :(得分:0)
1)。 暂停脚本并且仅在输入后继续的更好方法是使用:
$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") > $null
查询应该在显示Get-ADUser后显示,如果它仍然无效,可能会提交一些输出示例或尝试从Get-ADUser * | Where-Object {$_.Fullname like $Fullname}
获取AD用户
2.)我在这里并没有完全理解你的问题,但如果你想通过他的登录名获取和用户,你可以这样做:
$login = Read-Host "Login name"
Get-ADUser $login | select-object name, samaccountname | sort-object
答案 1 :(得分:0)
我自己设法解决了这个问题。对于第一个问题,在管道末尾添加“format-table”会关闭命令,之后脚本会正常进行。
对于第二个问题,作为一种解决方法,我将查询分解为两个独立的问题。第一个是搜索全名,第二个是搜索登录名:
Get-ADUser -Filter {name -like $FullName} -properties * | select-object name, samaccountname | sort-object name | format-table
write-host
Get-ADUser -Filter {samaccountname -like $LoginName} -properties * | select-object name, samaccountname | sort-object name | format-table
答案 2 :(得分:0)
有助于您找到问题的解决方案,
我也会把我所做的事情放在这里,也许你可以使用它。
首先是第一部分:
$FirstName = Read-Host "Please provide the Fist name of the User: "
$LastName = Read-Host "Please provide the Last name of the User: "
$Fullname = "$FirstName $LastName"
$Users= Get-AdUser -Filter {name -like $FullName} -Properties * | Select Name, Samaccountname | Sort-Object -Verbose
Get-AdUser -Filter {name -like $FullName} -Properties * | Select Name, Samaccountname | Sort-Object -Verbose
#$Users
您可以取消注释最后一个用户变量,以便在屏幕上显示结果。
截至您的第二个问题,您可以使用-or,以便您可以使用$ fullname或$ login
进行搜索$Login = Read-Host "User Login name"
Get-ADUser -Filter {name -like $FullName -or samaccountname -like $Login } -properties *
在运行代码之前,我更喜欢选择,就像我在AD上检查一样
如果你想给我发送我可以做的代码,我只是不想把这个答案与你提出的不同。