![Windows 服务:如何以管理员权限运行程序?](https://linux22.com/image/1564560/Windows%20%E6%9C%8D%E5%8A%A1%EF%BC%9A%E5%A6%82%E4%BD%95%E4%BB%A5%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我想创建一个以管理员权限启动 Powershell 脚本的 Windows 服务。为此,我使用 PowerGUI 将脚本转换为 exe 文件,并使用 PowerGUI 从此 exe 文件创建服务。
当我启动服务时它可以运行,但是我的脚本未以管理员权限运行,如果我选择以本地管理员身份登录,则会出现以下错误:“Windows 无法在本地计算机上启动 myservice 服务。错误 5:访问被拒绝”。
如果可以以管理员权限运行该脚本,有人可以帮忙吗?
答案1
如果您说您正在脚本中嵌入管理员凭据。这是一种非常糟糕的风险态势。有一些免费工具可以将 .ps1 转换为 .exe,但它们不是真正的 .exe,并且可以轻松还原回纯文本。因此,在脚本/exe 中暴露任何凭据。
建议的计划任务是最谨慎的方法,您只需使用脚本即可。使用您需要的任何凭据设置 ST,或者在 ST UI 设置中将其设置为以最高凭据运行,这通过内置的 Windows DPAPI 进行保护,因此不可逆。
您还可以使用“Requires”语句在脚本中检查管理员,以确保正在使用管理员级别,如果没有,您可以将其设置为自行提升。但是,仍然会提示某人输入管理员凭据。
然后您可能还需要考虑 PS JEA 实施。
足够的管理:Windows PowerShell 安全控制有助于保护企业数据
'msdn.microsoft.com/en-us/library/dn896648.aspx'
利用 PowerShell 为您的帮助台提供足够的管理
“blogs.technet.microsoft.com/datacentersecurity/2017/04/24/leverage-powershell-just-enough-administration-for-your-helpdesk”
根据可点击内容的请求进行了更新。
https://msdn.microsoft.com/en-us/library/dn896648.aspx?f=255&MSPPError=-2147217396