powershell - powershell 从作业中执行 Visual Basic 代码
问题描述
我试图将下面的代码作为一项工作启动,但我认为我没有在工作中正确初始化程序集。
下面的块是我想在 powershell 的作业中执行的
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
[Microsoft.VisualBasic.Interaction]::MsgBox("DART Report completed.", "okonly,MsgBoxSetForeground,Information,DefaultButton2", "Report")
这是我试图执行一个类似的代码块,当它完成时,它似乎给了我一个 powershell 弹出窗口,不像上面的代码块。
$script:job = Start-Job -ScriptBlock {param($HostName, $username)
Add-Type -AssemblyName System.Windows.Forms, System.Reflection.Assembly, Microsoft.VisualBasic
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
[Microsoft.VisualBasic.Interaction]::MsgBox("Report completed.", "okonly + vbExclamation,MsgBoxSetForeground,Information,DefaultButton2", "DART Report")} -ArgumentList ($HostName, $username)
任何帮助将不胜感激谢谢!!
解决方案
您的脚本需要一些更正:
- 您应该添加 System.Reflection 而不是 System.Reflection.Assembly
- MsgBox 的第二个参数应该是引号分隔的 vb 选项,您不应该混合
Information
使用Exclamation
vb DialogBox。
这是修正后的脚本:
$script:job = Start-Job -ScriptBlock {param($HostName, $username)
Add-Type -AssemblyName System.Windows.Forms, System.Reflection, Microsoft.VisualBasic
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
[Microsoft.VisualBasic.Interaction]::MsgBox("Report completed.", "okonly,MsgBoxSetForeground,Exclamation,DefaultButton2", "DART Report")} -ArgumentList ($HostName, $username)
它应该会提示您正确的感叹号对话框。如果您想从第一个 powershell 两行中获得类似的 Dialog,则必须替换Exclamation
为Information
.
编辑:正如评论中的@mklement0 所述,[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
您的脚本中不需要。System.Reflection
和类型在逻辑上也是相同的System.Windows.Forms
,即使您想稍后使用反射。
这是修改后的相应脚本:
$script:job = Start-Job -ScriptBlock {param($HostName, $username)
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.Interaction]::MsgBox("Report completed.", "okonly,MsgBoxSetForeground,Exclamation,DefaultButton2", "DART Report")} -ArgumentList ($HostName, $username)
推荐阅读
- c++ - Boost Qi/X3 解析的类型安全
- python - Vercel:无法使用 Python Serverless API 导入其他函数
- jmeter - 使用 JS223 处理器将双反斜杠替换为单反斜杠
- docker - 使用 nestjs 和 mongoose 哈希密码在生产中崩溃
- javascript - 像多个元素的计数器
- python - 在另一列 pandas python 中找到只取一个值的值
- ios - 在 UICollectionViewCompositionalLayout 子类中覆盖 layoutAttributesForElements(in:)
- javascript - 将数据库中的新项目附加到组件状态的列表顶部
- c# - DevExpress Winforms Report Designer(程序运行时)对象数据源绑定到表以获得动态结果
- java - 如何确保我的后台线程绑定到我的 ViewModel 而不是 Zombie Activity?(安卓/Java/MVVM)