【发布时间】:2019-09-19 21:46:52
【问题描述】:
所以这是我在 stackoverflow 上的第一篇文章 :-) 嗯,... 会认为我作为“经验丰富的初学者”使用 powershell 操作,在过去 2 年中为操作系统自动化编写了一些运行良好的脚本。没有编程技能,只有一点点脚本可以让我作为系统管理员的生活更轻松。
目前我有一个棘手的问题 - 请原谅我已经在另一个线程中解决了这个问题,但没有找到解决方案。
此处代码的用途:
允许普通的 windows 用户(不是本地管理员组的成员)以管理权限执行一些脚本。
- 将当前用户切换为具有管理员权限的用户>>已解决。创建了一个 pscredential 对象 ($pscreds)。效果很好。
- 启动提升的 powershell 会话以能够执行管理任务 >> 已解决。 powershell.exe -verb RunAs bla bla。效果很好。
- 启动具有管理员权限的修复命名脚本 >> 已解决。
问题本身:
script-name 并不总是同一个......我想让代码使用当前运行脚本的路径和名称($Myinvocation.Mycommand.Definition)。
$x = $myinvocation.MyCommand.Definition
Start-Process powershell.exe -Credential $pscreds -ArgumentList {
Start-Process powershell.exe -Verb RunAs -ArgumentList {
start-process powershell.exe -ArgumentList (-file "$x")
}
}
如何修改-file "$x"处的变量$x取第一行定义的值的代码?
我自己找到了一种解决方法,将路径和脚本名写入临时文件,然后使用“get-content”将其读回 $x。但我不喜欢这个丑陋的解决方案,并希望以更好的方式解决这个问题。
感谢德国的帮助和问候
拉尔夫
【问题讨论】:
标签: powershell launcher