5

密码中包含 PowerShell 特殊字符怎么办?

Invoke-Expression -Command "net use x: $Path /USER:domain1\user1 7Ui4RT,@T /persistent:no"

这在语法上失败了——因为 PowerShell 解释7Ui4RT,@T为一个数组:

Invoke-Expression -Command "net use x: $Path /USER:domain1\user1 7Ui4RT`,@T /persistent:no"

这在语法上失败了——显然是因为 PowerShell 无法解释7Ui4RT``,@T

Invoke-Expression -Command "net use x: $Path /USER:domain1\user1 "7Ui4RT,@T" /persistent:no"

这会失败,因为 PowerShell 将其解释7Ui4RT,@T为对象,而不是字符串(错误 =“找不到接受参数‘System.Object[]’的位置参数。”)。

我应该怎么办?

4

2 回答 2

7

你为什么用它Invoke-Expression来评估你的命令?如果您需要动态构建一组参数,可以将它们放在一个数组中:

$command = 'net'
$commandArgs = @('use','x:',$Path,'/USER:domain1\usr1','7Ui4RT,@T','/persistent:no')
& $command $commandArgs

如果提前知道命令,可以直接调用:net $commandArgs

于 2013-04-17T23:48:00.680 回答
3

加上单引号7Ui4RT,@T,即

'7Ui4RT,@T'
于 2013-04-16T23:40:41.573 回答