Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ps1脚本中使用预定义变量启动powershell.exe_Powershell_Launcher - Fatal编程技术网

在ps1脚本中使用预定义变量启动powershell.exe

在ps1脚本中使用预定义变量启动powershell.exe,powershell,launcher,Powershell,Launcher,这是我在stackoverflow上的第一篇帖子:-)嗯,。。。我会认为我是一个“经验丰富的初学者”,在过去的两年里为操作系统自动化编写了一些很好的工作脚本。没有编程技能,只有一点点脚本使我作为系统管理员的生活更容易 目前我有一个棘手的问题-请原谅,如果这个问题已经在另一个线程中解决了,但没有找到解决方案 代码的目的如下: 允许普通windows用户(不是本地管理组的成员)执行某些具有管理权限的脚本 将当前用户切换为具有管理员权限>>已解决的用户。创建了pscredential对象($pscre

这是我在stackoverflow上的第一篇帖子:-)嗯,。。。我会认为我是一个“经验丰富的初学者”,在过去的两年里为操作系统自动化编写了一些很好的工作脚本。没有编程技能,只有一点点脚本使我作为系统管理员的生活更容易

目前我有一个棘手的问题-请原谅,如果这个问题已经在另一个线程中解决了,但没有找到解决方案

代码的目的如下:

允许普通windows用户(不是本地管理组的成员)执行某些具有管理权限的脚本

  • 将当前用户切换为具有管理员权限>>已解决的用户。创建了pscredential对象($pscreds)。效果很好
  • 启动提升的powershell会话,以便能够执行管理工作>>已解决。powershell.exe-动词RunAs bla bla。效果很好
  • 启动名为脚本的修复程序,并解决管理员权限>>问题
  • 问题本身:

    脚本名称并不总是相同的。。。。我想让代码使用当前运行脚本的路径和名称
    ($Myinvocation.Mycommand.Definition)

    如何修改变量$x在
    -文件“$x”
    中采用第一行中定义的值的代码

    我自己找到了一个解决方法,将路径和脚本名写入临时文件,并使用“获取内容”将其读回$x。但我不喜欢这个丑陋的解决方案,希望能以更好的方式解决这个问题

    感谢德国的帮助和问候


    Ralph

    我认为,如果不在一个脚本中处理大量的Windows身份验证问题,我会坚持你所说的胡言乱语——尝试让非管理员编辑他们有权访问的文件中的$x值。然后使用读取文件的管理员帐户按计划运行脚本

    $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")
                }
            }