我正在向我的团队分发一个PowerShell脚本。该脚本从Vsphere客户端获取一个IP地址,建立一个mstsc连接,并将其记录在共享文件中。
他们一使用脚本就知道了机器的IP地址。在此之后,他们总是倾向于直接使用mstsc,而不是运行PowerShell脚本。 (因为他们正在使用mstsc,我不知道他们是否经常使用VM。)
他们主要告诉我,运行PowerShell并不简单。
我对他们的懒惰感到厌恶。
是否有一种方法可以通过双击.ps1文件来使PowerShell脚本工作?
我正在向我的团队分发一个PowerShell脚本。该脚本从Vsphere客户端获取一个IP地址,建立一个mstsc连接,并将其记录在共享文件中。
他们一使用脚本就知道了机器的IP地址。在此之后,他们总是倾向于直接使用mstsc,而不是运行PowerShell脚本。 (因为他们正在使用mstsc,我不知道他们是否经常使用VM。)
他们主要告诉我,运行PowerShell并不简单。
我对他们的懒惰感到厌恶。
是否有一种方法可以通过双击.ps1文件来使PowerShell脚本工作?
当前回答
在Windows 10中,你可能还想删除Windows资源管理器对文件扩展名关联的覆盖:
HKEY_CURRENT_USER软件\ Microsoft \ Windows \ CurrentVersion探索者FileExts \ \ UserChoice。ps1
除了HKEY_CLASSES_ROOT\Microsoft.PowerShellScript之外。1\Shell\open\命令的变化在其他答案中提到。
参见https://stackoverflow.com/a/2697804/1360907
其他回答
或者如果你想让所有PS1文件都像VBS文件那样工作,你可以像这样编辑注册表:
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\open\command
编辑默认值,如下所示…
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -noLogo -ExecutionPolicy unrestricted -file "%1"
然后你可以像你想的那样双击所有的。ps1文件。以我的拙见,是能够跳出框框的。
我将称之为“Powershell去阉割黑客”。LOL享受吧!
在Windows 10中,你可能还想删除Windows资源管理器对文件扩展名关联的覆盖:
HKEY_CURRENT_USER软件\ Microsoft \ Windows \ CurrentVersion探索者FileExts \ \ UserChoice。ps1
除了HKEY_CLASSES_ROOT\Microsoft.PowerShellScript之外。1\Shell\open\命令的变化在其他答案中提到。
参见https://stackoverflow.com/a/2697804/1360907
如果你熟悉高级Windows管理,那么你可以使用这个ADM包(说明包括在那个页面上),并允许通过这个模板和本地GPO双击后运行PowerShell脚本。在此之后,您可以简单地将与.ps1文件类型相关联的默认程序更改为PowerShell .exe(使用搜索,它是相当隐藏的),并且您已经准备好双击运行PowerShell脚本。
否则,我建议坚持使用其他建议,因为使用这些管理工具可能会搞乱整个系统。
我认为默认设置太严格了。如果有人设法在你的计算机上放置一些恶意代码,那么他/她也能够绕过这个限制(将其包装成.cmd文件或.exe,或带有快捷方式的技巧),而它最终所实现的只是阻止你以简单的方式运行你所编写的脚本。
导航REGEDIT到 HKEY_LOCAL_MACHINE \ SOFTWARE \ \ Microsoft.PowerShellScript.1 \壳类 在右侧窗格中双击“(默认)” 删除现有的“Open”值(启动Notepad),输入“0”(为零,直接启动Powershell)。
如果希望再次使用“记事本”作为默认值,则恢复该值。
我使用了这个(只需要运行一次);还要确保你有执行的权利:
从PowerShell提升权限:
Set-ExecutionPolicy=RemoteSigned
然后从一个bat文件:
-----------------------------------------
ftype Microsoft.PowerShellScript.1="C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -noexit ^&'%%1'
assoc .ps1=Microsoft.PowerShellScript.1
-----------------------------------------
auto exit: remove -noexit
瞧;双击*。Ps1会执行它。