我在网上找到了一个脚本,它将检查您是否在Admin角色下运行当前的Powershell控制台,如果没有,开始一个新的脚本Powershell的实例并关闭以前的窗口。创建新进程或使用Powershell中的开始cmdlet
检查它的部分并不是真正的问题,我只是有一个关于如何启动一个Powershell的新实例的问题。
这是它是如何在脚本执行:
$newProcess = New-Object System.Diagnostics.ProcessStartInfo "Powershell";
$newProcess.Arguments = "& '" + $MyInvocation.MyCommand.Name + "'"
$newProcess.Verb = "runas";
[System.Diagnostics.Process]::Start($newProcess);
Exit;
这是一个相当知名的和经常使用的脚本(根据经验,它是分散在无数的在网站上的网页)。
由于大多数PowerShell的精明的人知道,你可以打开PowerShell和有它通过键入运行作为命令行(一个运行提示,命令行解释器,& PowerShell中)管理员:
Start Powershell -ArgumentList "& '$scriptpath'" -Verb runas
而且任何熟悉脚本的人都可以看到,这些将完成同样的事情 - 它们看起来似乎彼此相似!
在启动Powershell的一个新实例并运行一个被调用脚本的两种方法之间,有什么区别?哪些是推荐的,哪些不是?比另一个更正确(合适)吗?
由于我是自学成才,而且我一般都会学习,所以最佳实践,建议和弃用的\被取代的东西经常被忽视。我真的没有在.NET框架或C#中的背景,所以,如果从这个角度来看答案是显而易见的,你将不得不原谅我。
谢谢。