【问题标题】:How can I use "Shift + Right Click" to launch *.ps1 files as a different user?如何使用“Shift + Right Click”以其他用户身份启动 *.ps1 文件?
【发布时间】:2019-01-03 18:52:56
【问题描述】:

我需要能够在 PS1 文件上使用“Shift + 右键单击​​”并选择“以其他用户身份运行”来执行脚本,就好像我是那个用户一样。我无法存储凭据,也不想使用“Shift + 右键单击​​”来执行 PowerShell,然后通过控制台导航到我的脚本。我该如何做到这一点?我找不到任何不需要我启动单独的窗口或存储凭据的东西。

【问题讨论】:

标签: powershell elevated-privileges runas


【解决方案1】:

右键单击或移动右键单击,以其他用户身份运行是可执行文件的 Windows 标准。这个右键runas是由操作系统控制的。

根据设计,您不能双击或右键单击 .ps1 文件并使其运行。 .ps1 设置为默认启动记事本或您可能分配给它的其他文本编辑器,即 VSCode、Notepad++ 等。

.ps1 不是双击运行的 .bat、.cmd、.vbs。

如果您想双击一个 .ps1 并让它运行,那么您至少必须使用 Windows 资源管理器设置文件类型并将其分配给 PowerShell.exe。 MS或任何人都不建议这样做,顺便说一句,但可以做到。不推荐这样做的原因完全是关于风险/安全管理。

要接近这一点,您需要做的是使用所需的启动设置创建一个 PowerShell 快捷方式集。专门设置 RunAs 选项。 将该快捷方式固定到您的 Windows SendTo 菜单(在 Windows 资源管理器栏中,只需键入 shell:SendTo 以打开该文件夹以放置该快捷方式),或者您需要编辑注册表以获取默认的右键单击“使用 PowerShell 运行”选项,调整添加RunAs参数后。

Using a PowerShell script to run as a different user & elevate the process.

否则,您可能需要考虑使用 RunAS 设置。

Drag and Drop to a Powershell script

话虽如此,这可能不会让你得到你所追求的一切,但它会让你接近。

关于问题的 OP 更新

你有没有觉得限制使用powershell的组策略 其他脚本语言对域管理员来说就足够了 还是您认为安全控制也有问题?

至少特权原则始终是一种可靠的做法,但还有更多工作要做。有一些关于 PowerShell 安全操作/配置的非常不错的文章。

限制/阻止powershell.exe的使用,push.exe不阻止PowerShell的使用。这些只是主机,我可以使用任何开发工具来创建自己的 PowerShell 主机并运行命令。我什至可以创建自己的 PowerShell 编辑器,甚至可以扩展其他编辑器。

PowerShell Editor Services PowerShell Editor Services 提供了跨多个编辑器实现一致且强大的 PowerShell 开发体验所需的通用功能。

Getting Started with Editor Commands

Extending the Host Editor PowerShell 编辑器服务公开了一个通用的可扩展性模型,允许您在 PowerShell 中编写扩展代码,该代码可在任何使用 PowerShell 编辑器服务的编辑器中运行。

PowerShellEditorServices 在任何编辑器或应用程序中提供 PowerShell 开发支持的通用平台!

Join us for the PowerShell Editor Services Hack Week, Dec 6-13!

我几乎可以使用 WMIC 或 VBS 完成所有 PowerShell 工作(但是,我从未见过任何企业真正尽可能深入地解决这些问题)。是的,它更多的代码和丑陋,但可行。因此,审计、约束/授权等是控制和事件响应的必备条件。所以,当端到端的风险/安全管理时,这里有一些事情需要阅读。

企业客户的 PowerShell 安全性 https://blogs.msdn.microsoft.com/daviddasneves/2017/05/25/powershell-security-at-enterprise-customers https://acsc.gov.au/publications/protect/Securing_PowerShell.pdf

PowerShell logging boosts security in the enterprise

Practical PowerShell Security: Enable Auditing and Logging with DSC

More New Stuff in PowerShell V5: Extra PowerShell Auditing

PowerShell Injection Hunter: Security Auditing for PowerShell Scripts

15 Ways to Bypass the PowerShell Execution Policy

Introduction to PowerShell Endpoints

Build Constrained PowerShell Endpoint Using Configuration File

【讨论】:

  • 您是否认为将 powershell 和其他脚本语言的使用限制为域管理员的组策略只是一种足够的安全控制,或者您是否认为这也存在问题?如果有问题,您能否详细说明为什么组策略不够用?
猜你喜欢
  • 2015-12-04
  • 2012-01-17
  • 2016-12-27
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多