如何在windows命令提示符中锁定变量?

如何在windows命令提示符中锁定变量?,windows,cmd,passwords,Windows,Cmd,Passwords,简而言之,我正在尝试为自助密码重置脚本创建一个脚本,该脚本可以通过我们的远程应用程序(本例中为2X)交付 我的脚本的当前迭代如下所示: @ECHO OFF SET passchange=%username% ECHO Changing password for %passchange% runas /profile /user:administrator "net user %passchange% * /domain" PAUSE 我到达当前迭代是因为net user自己返回的系统错误5已

简而言之,我正在尝试为自助密码重置脚本创建一个脚本,该脚本可以通过我们的远程应用程序(本例中为2X)交付

我的脚本的当前迭代如下所示:

@ECHO OFF
SET passchange=%username%
ECHO Changing password for %passchange%
runas /profile /user:administrator "net user %passchange% * /domain"

PAUSE
我到达当前迭代是因为net user自己返回的系统错误5已经发生。访问被拒绝。因此,我尝试使用runas提升命令

这也是我尝试将自定义变量映射到系统变量的原因,就像使用runas时一样,%username%映射到管理员而不是登录用户。所以我想做的是找到一些方法来锁定%passchange%变量


或者也许有更好的方法来实现这一点,这样它就可以作为用户运行,而无需使用runas提升方法?我们不打算给用户管理员权限。除非这是另一个权限问题?

您无需执行任何操作。批处理脚本中的变量是在执行该行之前计算的,因此%passchange%将在批处理脚本的上下文中计算,而不是在runas进程的上下文中计算。我不知道你将如何在那里获得管理员密码,但那是另一个问题。可能是重复的谢谢Harry。我觉得自己像个傻瓜,我以为这是在提示更改管理员密码,还是在提示升级密码。如果没有你的评论,我不认为它会在我脑海中闪现。除了那个小小的障碍,它似乎在必要时起作用。我将寻找其他更好的特权提升途径。