CMD.exe和cscript / wscript
|
所以我试图通过嵌入在powershell脚本中的cscript.exe运行VBscript。它会因允许错误而不断出错。在调试代码时,我意识到确切的命令不会在cscript或wscript中运行,而是从命令提示符下运行。我的印象是,默认情况下,cmd.exe调用wscript来执行VBScript。
这是令我失望的代码。
$hostname = MIA-DC1
$user = contoso\\administrator
$password = Pa$$w0rd
cscript.exe c:\\windows\\system32\\slmgr.vbs $hostname $user $password /dlv
我首先以为是导致问题恶化的变量,但是,以下所有操作均因相同的错误而失败:
cscript.exe c:\\windows\\system32\\slmgr.vbs MIA-DC1 contoso\\administrator Pa$$w0rd /dlv
cscript.exe c:\\windows\\system32\\slmgr.vbs MIA-DC1 \"contoso\\administrator\" Pa$$w0rd /dlv
wscript.exe c:\\windows\\system32\\slmgr.vbs MIA-DC1 contoso\\administrator Pa$$w0rd /dlv
wscript.exe c:\\windows\\system32\\slmgr.vbs MIA-DC1 \"contoso\\administrator\" Pa$$w0rd /dlv
但是,如果我在命令提示符下键入命令(以任何形式),它会按预期运行,而不会出现任何问题。
在这一点上我有点想法。有人可以指出我cmd.exe调用cscript / wscript与自己调用它之间的区别吗?
非常感谢。
没有找到相关结果
已邀请:
1 个回复
冕偷淮款
Cmd不会将$解释为任何特殊字符。但是,Powershell认为您有一个名为$ w0rd的变量,可能正在替换一个空字符串。单引号可以防止尝试替换;双引号不会。