powershell - CMD.exe与CScript/WScript

标签 powershell cmd wsh

所以我试图通过嵌入在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与自己调用它之间的区别吗?

非常感谢。

最佳答案

尝试引用密码:

cscript.exe c:\windows\system32\slmgr.vbs MIA-DC1  "contoso\administrator" 'Pa$$w0rd' /dlv

Cmd不会将$解释为任何特殊内容。但是,Powershell认为您有一个名为$ w0rd的变量,可能正在替换一个空字符串。单引号可以防止尝试替换;双引号不会。

关于powershell - CMD.exe与CScript/WScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143967/

相关文章:

powershell - Powershell-数字格式显示错误的结果

.net - 我可以在PowerShell 2.0中创建自己的属性类吗?

powershell - 为什么我的输出文件不将输出写入文件

windows - 如何从命令行启动这个程序?

powershell - Windows 相当于 efibootmgr?

java - 如何在 CMD 中运行小程序而不创建两个单独的文件(即 .html 和 .java 文件)。 html代码嵌入到java代码中

internet-explorer - 循环浏览网页并复制数据

asynchronous - Windows Script Host 中是否可以异步调用 JavaScript 函数?

javascript - 如何检查 *.js 文件是 JScript 还是 JavaScript?

windows - 检查所有驱动器(字母和自由大小)并比较高数字自由大小