winforms 尝试不使用Out-GridView

uyhoqukh  于 2023-04-12  发布在  其他
关注(0)|答案(2)|浏览(101)

我使用对GetADUser的调用,它只是返回OU中所有用户的Sam帐户名。
我试图在系统窗口窗体消息框中显示它们,但不起作用。
我知道我很接近了,但是我的脑子出了问题。有没有更好的方法来做到这一点?同样,我非常努力地避免使用Out-GridView。我希望有这样的东西:

UserTest1
UserTest2
UserTest3

我尝试了几个谷歌搜索,但他们不是真的我想做的。任何帮助将不胜感激,谢谢

c90pui9n

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)不会显示。
为了避免这个问题,您需要创建一个带有(可滚动)列表框的自定义表单。

zour9fqk

zour9fqk2#

这就是我最终做的:Get-ADUser -Filter * -Searchbase $Var1|{$__.name -notlike“$var2*"}|ForEach-Object{[void]$Var3.Items.Add($_.SamAccountName)}
希望这能帮助到其他人

相关问题