Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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
如何在UAC处于活动状态时设置系统环境变量(Windows脚本主机)_Windows_Vbscript_Environment Variables_Uac_Wsh - Fatal编程技术网

如何在UAC处于活动状态时设置系统环境变量(Windows脚本主机)

如何在UAC处于活动状态时设置系统环境变量(Windows脚本主机),windows,vbscript,environment-variables,uac,wsh,Windows,Vbscript,Environment Variables,Uac,Wsh,在启动程序之前,我必须创建一个脚本来更新系统环境变量(基于命令行参数) 在Windows 7中,更新系统环境变量被拒绝。我只想为env的设置执行特权提升。变量,但以普通用户身份运行该程序 怎么做 注: 我尝试了以下解决方案: 使用2个脚本: 1个主机,从命令行获取所有信息,调用从脚本更改系统环境。最终启动了该计划 1个用于更新系统环境的从属脚本。变种 主脚本尝试使用特权提升调用从脚本,但这不起作用 我尝试了两种解决方案: 使用“runas/User:Administrator…”命令,但它要

在启动程序之前,我必须创建一个脚本来更新系统环境变量(基于命令行参数)

在Windows 7中,更新系统环境变量被拒绝。我只想为env的设置执行特权提升。变量,但以普通用户身份运行该程序

怎么做

注: 我尝试了以下解决方案:

使用2个脚本:

  • 1个主机,从命令行获取所有信息,调用从脚本更改系统环境。最终启动了该计划
  • 1个用于更新系统环境的从属脚本。变种
  • 主脚本尝试使用特权提升调用从脚本,但这不起作用
我尝试了两种解决方案:

  • 使用“runas/User:Administrator…”命令,但它要求管理员密码:Fail
  • 使用“ShellExecute…”,“runas”命令,但它告诉我脚本不是应用程序:Fail

  • 嗯,禁用UAC,这只是一种痛苦*
    但是如果你不能(像我一样)禁用UAC,那只是一种痛苦*
    但是如果你不能(像我一样8我找到了一种至少在Windows7上工作的方法(不知道它是否能在我们仍然有的少数WindowsXP上工作)

    我从主脚本中执行了以下操作:

    currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
    
    Set UAC = WScript.CreateObject("Shell.Application")
    UAC.ShellExecute "wscript.exe", currentDirectory + "my-script.vbs /Param1:Value1 ...", "", "runas", 0
    
    我的脚本正在进行sys-var-env更新


    注意:我第一次使用ShellExecute失败,因为我尝试执行脚本。我没有使用“wscript.exe”,而是使用“My script.vbs”作为可执行文件名。

    我找到了一种至少在Windows 7上可以工作的方法(不知道它是否能在我们仍然使用的少数Windows XP上工作)

    我从主脚本中执行了以下操作:

    currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
    
    Set UAC = WScript.CreateObject("Shell.Application")
    UAC.ShellExecute "wscript.exe", currentDirectory + "my-script.vbs /Param1:Value1 ...", "", "runas", 0
    
    我的脚本正在进行sys-var-env更新


    注意:我第一次使用ShellExecute失败,因为我尝试执行脚本。我使用的不是“wscript.exe”,而是“My script.vbs”用于可执行文件名。

    谢谢您的提示。我可以在我的计算机上停用它,但不能在所有运行脚本的计算机上停用。此外,用户名和密码将是特定于用户的,这也是我希望避免的。最后,我真的希望避免在脚本中以明文形式写入密码。我认为这是一种错误如果不需要用户/密码,这将是一个安全缺陷,这样的脚本可能会被用作病毒。为什么需要系统变量,您有不同类型的环境变量,可以设置用户环境变量我们正在使用IBM Rational DOORS。有几个同事需要2个(或更多)DOORS配置(不同的DOORS客户端版本和不同的DOORS许可证服务器配置)。遗憾的是,许可证配置存储在一个系统环境变量中。我的目标是创建一个通用脚本,该脚本带有一些参数,可以为许可证服务器设置正确的系统环境变量,并启动请求的DOORS客户端版本。这是购买昂贵的封闭源代码软件的奖励:(我只是希望有UAC请求,更像我运行安装程序时的请求,在某些情况下,它请求更高的权限,并显示一个弹出窗口,只有一个是/否按钮对话框。不需要密码。此外,我试图将权限提升限制为env.var的设置。我已经尝试过了。)ur命令,但我遇到了与runas相同的问题。虽然我的帐户具有管理权限,但我没有获得设置sys env var(我拥有的权限)所需的权限提升。而且我不知道管理员密码。因此我也无法使用此解决方案:(但无论如何,谢谢你的时间!谢谢你的提示。我可以在我的计算机上停用它,但不是在所有运行脚本的计算机上。此外,用户名和密码将是特定于用户的,这也是我希望避免的。最后,我真的希望避免在脚本中清楚地写入密码。我认为如果不需要用户/密码,这将是一个安全缺陷,这样的脚本可能会被用作病毒。为什么您需要一个系统变量,您有不同类型的环境变量,可以设置一个用户环境变量。我们正在使用IBM Rational DOORS。有几个同事需要2个(或更多)DOORS配置(不同的DOORS客户端版本和不同的DOORS许可证服务器配置)。遗憾的是,许可证配置存储在一个系统环境变量中。我的目标是创建一个通用脚本,该脚本带有一些参数,可以为许可证服务器设置正确的系统环境变量,并启动请求的DOORS客户端版本。这是购买昂贵的封闭源代码软件的奖励:(我只是希望有UAC请求,更像我运行安装程序时的请求,在某些情况下,它请求更高的权限,并显示一个弹出窗口,只有一个是/否按钮对话框。不需要密码。此外,我试图将权限提升限制为env.var的设置。我已经尝试过了。)ur命令,但我遇到了与runas相同的问题。虽然我的帐户具有管理权限,但我没有获得设置sys env var(我拥有的权限)所需的权限提升。而且我不知道管理员密码。因此我也无法使用此解决方案:(无论如何,谢谢您的时间!请尝试在cmd.exe或wscript.exe上使用runas,而不是直接在脚本上使用。@Harry我曾尝试过runas,但我有以下警告:我们不知道机器的管理员密码。但我们每个人都具有管理权限(在某种程度上),因此我可以从Windows配置GUI修改sys env var(在UAC提示后)。但是我不能对我自己的用户使用runas命令,我的权限被拒绝。我不能作为管理员运行它,因为我不知道密码…我真的需要一个简单的权限