我有一个简单的PowerShell脚本,可以在Exchange中启用名为test.ps1的邮箱。这是脚本:
add-pssnapin microsoft.exchange.management.powershell.admin Enable-Mailbox -Identity'gi joe'-database'myserver \ myserver mailbox database 17'
如果我转到Powershell控制台并输入
./ test.ps1
它将成功运行。但是,如果我使用
在VB.net中调用它Process.Start(“powershell”,“test.ps1”)
终端闪烁得太快,让我看不出它的内容,也没有创建邮箱。为什么会发生这种情况,或者如何在我能够读取错误之前阻止终端消失?
答案 0 :(得分:4)
要查看出现了什么问题,请尝试以下方法:
Process.Start("powershell", "-noexit -file c:\<path>\test.ps1")
我怀疑你得到的错误是因为你没有提供test.ps1的完整路径。
另一种可能性是你的32位VB应用程序需要启动64位Powershell(snapin或模块可能只在那里可用)。在这种情况下,您需要按路径调用PowerShell,并且必须在路径中使用SysNative
才能看到64位PowerShell目录。
var powerShellPath = "C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe"
Process.Start(powerShellPath , "-noexit -file c:\<path>\test.ps1")
很抱歉,这可能不是正确的VB语法,但应该让你去。