我使用对GetADUser的调用,它只是返回OU中所有用户的Sam帐户名。我试图在系统窗口窗体消息框中显示它们,但不起作用。我知道我很接近了,但是我的脑子出了问题。有没有更好的方法来做到这一点?同样,我非常努力地避免使用Out-GridView。我希望有这样的东西:
GetADUser
Out-GridView
UserTest1 UserTest2 UserTest3
我尝试了几个谷歌搜索,但他们不是真的我想做的。任何帮助将不胜感激,谢谢
c90pui9n1#
如果你真的想使用WinForms message box来完成这个任务:
Add-Type -AssemblyName System.Windows.Forms # Create 20 sample user names. # In your real code, use: # $users = (Get-ADUser -filter * -Searchbase $OU).SamAccountName $users = 1..20 | ForEach-Object { "user" + $_ } # Display a message box with each username on its own line. [Windows.Forms.MessageBox]::Show( $users -join "`n", 'Title', # window title 'OKCancel', # buttons 'Information' # icon )
请注意,这只适用于 * 有限 * 数量的用户名,即尽可能多的用户名将适合您的屏幕 * 一次 *,不包括显示标题栏和按钮所需的空间。如果有太多,并非所有的都是可见的,按钮(S)不会显示。为了避免这个问题,您需要创建一个带有(可滚动)列表框的自定义表单。
zour9fqk2#
这就是我最终做的:Get-ADUser -Filter * -Searchbase $Var1|{$__.name -notlike“$var2*"}|ForEach-Object{[void]$Var3.Items.Add($_.SamAccountName)}希望这能帮助到其他人
2条答案
按热度按时间c90pui9n1#
如果你真的想使用WinForms message box来完成这个任务:
请注意,这只适用于 * 有限 * 数量的用户名,即尽可能多的用户名将适合您的屏幕 * 一次 *,不包括显示标题栏和按钮所需的空间。
如果有太多,并非所有的都是可见的,按钮(S)不会显示。
为了避免这个问题,您需要创建一个带有(可滚动)列表框的自定义表单。
zour9fqk2#
这就是我最终做的:Get-ADUser -Filter * -Searchbase $Var1|{$__.name -notlike“$var2*"}|ForEach-Object{[void]$Var3.Items.Add($_.SamAccountName)}
希望这能帮助到其他人