我已经进行了所有这些工作,但是必须更改某些内容,因为现在还不行!我想传递变量,然后从中创建一个映射驱动器。
$d = "O:";
$s = "\\Server\Folder";
$u = "/user:DOMAIN\UserId password";
net use $d $s $u;
现在运行该命令时,powershell会挂起。我没有任何错误,也没有任何错误,只是“运行”但没有完成。我必须点击停止脚本按钮。如果我选中net use
,则那里没有条目。
如果我手动键入net use O: \\Server\Folder /user:DOMAIN\UserId password
,它将起作用并创建映射的驱动器。
我尝试按如下所示转义反斜杠:
$d = "O:";$s = "\\\\Server\Folder";$u = "/user:DOMAIN\\UserId password";
还可以像这样构建字符串(带有和不带有转义的反斜杠):
$n = $d+' '+$s+' '+$u;
net use n;
此方法建议,无论是否有转义的反斜杠,都无法找到该网络。如果我echo $n
粘贴代码会创建驱动器,那么我完全茫然了!
答案 0 :(得分:1)
在PowerShell脚本中调用CMD命令,应该使用Invoke-Expression。
$d = "O:";
$s = "\\Server\Folder";
$u = "/user:DOMAIN\UserId password";
Invoke-Expression "C:\Windows\System32\net.exe use $d $s $u"