关于powershell输出结果的顺序问题


PowerShell交流中心分类: Questions关于powershell输出结果的顺序问题
0
SwaggggYY asked 6 年 ago

Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName
$name = read-host “Please enter the username you want to unlock”
Unlock-ADAccount -Identity $name
$tip = “User unlock Success!!!”
Write-Host $tip -ForegroundColor Green

本意就是想先列出域中被lock的用户, 再让用户输入想要解锁的用户名, 但是几条命令一起执行的时候 显示的结果为 

 
Please enter the username you want to unlock: test
User unlock Success!!!
Name SamAccountName
—- ————–
test test
 
就是先让用户输入用户名  再显示了域中被lock的用户, 请问应该怎么调才能让输出结果先显示被lock的用户表 再让用户去解锁?
谢谢!!

2 Answers
1
Best Answer
神经元短路 answered 6 年 ago

这个问题我遇到过,后来发现可能是这样的。
Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName
输出的是一个对象,似乎会被系统自动安排到最后输出。
后来琢磨了一下用select -expandproperty展开成文本的形式就好了。你这个要输出多个字段的可能需要写成这样
Search-ADAccount -LockedOut -UsersOnly | select @{l=’newname’;e={$_.name +”`t”+ $_.samaccountname}} |select -ExpandProperty newname 
当然这样丢失了表头,可以自己另外模拟一个。
如果有更好的办法欢迎交流分享。

1
六翼天使 answered 6 年 ago

语句不严谨啊,你不确定一下unlock是不是成功了就显示成功?

Unlock-ADAccount -Identity $name
$tip = “User unlock Success!!!”