此 powershell 代码工作正常:
powershell -NoProfile -Command {Start-Process -FilePath wscript.exe -Verb RunAs -ArgumentList '"C:\Users\TestAccount\Desktop\cartella con spazi\test.vbs" "/CurrentDirectory:C:\Users\TestAccount\Desktop\Cartella con spazi" "/AppData:C:\Users\TestAccount\AppData\Roaming"'}
但是当我输入完整的命令时,powershell 在单词之间只留下一个空格,但在我的路径中有两个连续的空格:
Start-Process -FilePath powershell.exe -WorkingDirectory "$env:ALLUSERSPROFILE" -Credential $credential -WindowStyle Hidden -ArgumentList "-NoProfile -Command & {Start-Process -FilePath wscript.exe -Verb RunAs -ArgumentList '\`"C:\Users\TestAccount\Desktop\cartella con spazi\test.vbs\`" \`"/CurrentDirectory:C:\Users\TestAccount\Desktop\Cartella con spazi\`" \`"/AppData:C:\Users\TestAccount\AppData\Roaming\`"'}"
与此相同的错误:
Start-Process -FilePath powershell.exe -WorkingDirectory "$env:ALLUSERSPROFILE" -Credential $credential -WindowStyle Hidden -ArgumentList "-NoProfile -Command Start-Process -FilePath wscript.exe -Verb RunAs -ArgumentList '\`"C:\Users\TestAccount\Desktop\cartella con spazi\test.vbs\`" \`"/CurrentDirectory:C:\Users\TestAccount\Desktop\Cartella con spazi\`" \`"/AppData:C:\Users\TestAccount\AppData\Roaming\`"'"
这是错误消息:
如您所见,在错误消息中,路径仅包含单词之间的一个空格,而在代码中我正确输入了两个连续的空格。
这是输入凭据的代码(就在给出错误的行之前):
$username = 'Username'
$password = 'Password'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
几天来,我一直在让一行代码正常工作,但没有成功。
我输入的那些示例路径实际上是变量(具有不定数量的连续空格),因此通过将 -ArgumentList 括在单引号中,变量不会被扩展。
你可以采用你认为最适合帮助我的策略。
Windows 10 Pro 64 位
Powershell 版本:5.1.19041.1237(集成在 Windows 10 中)。
更新:
@mklement0 存在的问题是,实际上有问题的行包含一个可扩展变量:
Start-Process -FilePath powershell.exe -WorkingDirectory "$env:ALLUSERSPROFILE" -Credential $credential -WindowStyle Hidden -ArgumentList @"
-NoProfile -Command "Start-Process -FilePath wscript.exe -Verb RunAs -ArgumentList '\"$PWD\test.vbs\" \"/CurrentDirectory:$PWD\" \"/AppData:$env:APPDATA\"'"
"@
因此,如果路径包含单引号,则该行出错。
更新 2:
@mklement0您的解决方案已停止工作,因为我将它放入我需要的脚本中,并带有以下错误消息: