我们使用 AD 扩展属性之一将具有用户 ID 的组标记为该组的“所有者”。只有所有者可以请求对群组进行更改/添加等。
我有一个相当长的 PowerShell 脚本,但运行良好。它要求在对话框中输入用户登录名,轮询他们所在的组,在另一个对话框中显示该列表,当我从该列表中选择一个组时,它将确认该用户是否是该组的所有者团体。最后一个对话框给出"is"或“否”答案,并且当我通过 ISE 运行脚本时确实有效,但如果我只是通过命令行运行脚本或使用“使用 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。但需要出现该对话框,特别是当相关用户不拥有该组时。如果他们这样做了,这将是一个点击进入下一个功能的过程(这些功能还没有真正以内聚的形式编写。)
最佳答案
System.Windows.MessageBox
type是 Windows 演示框架的一部分,包含在 PresentationFramework.dll
程序集中。
确保在调用 MessageBox.Show()
之前将其加载到 session 中:
Add-Type -AssemblyName PresentationFramework
# Now you can use [System.Windows.MessageBox]
它在 ISE 中工作的原因很可能是 ISE 本身已经是一个 WPF 应用程序,因此 PresentationFramework
程序集已加载到其 AppDomain 中
关于powershell - 仅在使用 ISE 时才会出现确认对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086146/