我们使用其中一个AD扩展程序属性来标记具有用户ID的组作为该组的“所有者”。只有业主可以向集团申请变更/增加等。
我有一个相当冗长的PowerShell脚本,效果很好。它在对话框中询问用户登录名,轮询他们所在的组,在另一个对话框中显示该列表,当我从该列表中选择一个组时,它将确认该用户是否是该用户的所有者组。当我通过ISE运行脚本时,最后一个对话框给出YES或NO答案,并且DOES WORK,但如果我只是通过命令行运行脚本或使用'运行PowerShell',则不会显示最终答案'选项。
这是有问题的代码。如果人们认为有必要参考,我会抛弃整个脚本。
#Declares if the user is an owner of selected group or not.
if ($match -eq $False) {
#write-host "The user $user IS NOT an owner of $group"
[System.Windows.MessageBox]::Show("The user $user IS NOT an owner of $group")
}
else
{
#write-host "The user $user DOES own $group"
[System.Windows.MessageBox]::Show("The user $user DOES own $group")
}
此脚本的原因最终是因为用户可以自行提供一些基本的组处理请求。添加新成员,删除成员,甚至将组移动到另一个OU。但是需要出现对话框,特别是如果有问题的用户不拥有该组。如果他们这样做,那将是对下一个功能的点击(它们实际上并没有以一种有凝聚力的形式写出来。)
答案 0 :(得分:4)
System.Windows.MessageBox
type是Windows Presentation Framework的一部分,包含在PresentationFramework.dll
程序集中。
确保在调用MessageBox.Show()
之前将其加载到会话中:
Add-Type -AssemblyName PresentationFramework
# Now you can use [System.Windows.MessageBox]
它在ISE中工作的原因可能是ISE本身已经是WPF应用程序,因此PresentationFramework
程序集已经加载到它的AppDomain中