2013-07-08 87 views
1

我无法将cmds从powershell 2.0发送到cmd中的netsh。powershell解析cmd中的特殊字符

的奇怪的事情是,有一种类型的命令来NETSH它的工作原理

实例 - 这个工程:

$input1 = @" 
netsh wlan connect name=Aaknet ssid=Aaknet interface="Trådløs netværksforbindelse" 
"@ 
$OutputVariable = ($WifiOn | netsh) | Out-String 

netsh的运行命令没有任何问题沉绵接口名称包含字符å

但是,如果我运行这个 - Powershell解析å作为?于Netsh CMD

$ConnectMBN = @" 

netsh mbn connect interface="Mobilbredbåndsforbindelse" connmode=name name=3 

"@ 

$ConnectMBN | netsh 

PWS回报控制台:

netsh>netsh>Decommand not found: netsh mbn connect interface="Mobilbredb?ndsforbindelse" connmode=name name=3. 

正如你可以看到PWS转动阿成?

任何人都可以帮忙,因为我很困惑!?

回答

0

根据评论中的对话框进行更新。

下面的代码是一个编辑,你的编辑,我的建议:-)

$Char =[Char]34 
    $Name ="Mobilbredbåndsforbindelse" 
    $Interface ="$Char$Name$Char" 
    $Name2="3" 
    $Opts = @("mbn","connect","interface=$Interface","connmode=name","name=$Name2"); 
    netsh $Opts 

所以,把参数netsh到数组$Opts,使用[char]34表示中唯一一个双引号需要它的参数,接口。

在数组项中使用双引号而不是单引号表示其中的任何变量都被扩展,因此它们的内容是参数数组的一部分。

最后直接调用netsh,就像在命令行中一样,然后是参数数组$Opts

正如我所说,我没有移动宽带,所以我得到约wwansvc没有运行错误,但如果我进入$Opts事后查看我看到的内容:

mbn 
connect 
interface="Mobilbredbåndsforbindelse" 
connmode=name 
name=3 

编辑:试试这个(已使用netsh的尝试WLAN连接,我可以用测试,因为我无法测试MBN)...

$Char =[Char]34 
    $Name ="Mobilbredbåndsforbindelse" 
    $Interface ="$Char$Name$Char" 
    $Name2="3" 
    $connect = ("netsh mbn connect interface=$Interface connmode=name name=$Name2"); 
    $connect 
+0

对不起,在$ ConnectMBN netsh一个错字 - 但我仍然得到一个丹麦版本的Windows7的问题,只要我把$ ConnectMBN管netsh - pws将“Mobilbredbåndsforbindelse”更改为“Mobilbredb ?ndsforbindelse“ - 并且netsh返回CMD找不到(因为它找不到具有该名称的NIC)如果我不管它并且只触发$ ConnectMBN,则输出(在屏幕上)是正确的,但NIC不会连接我只是没有得到它..帮助只是唠叨,注意到我只在客户端上运行PWS v1.0 - 这可能是问题吗 – user2560013

+0

因为我不用英文以外的语言运行Windows,有点难以测试,但尝试以下列方式运行netsh:'$ Opts = @('mbn','connect','interface =“Mobilbredbåndsforbindelse”','connmode = name','name = 3'); netsh的$ Opts' –

+0

格雷厄姆嗨 - 你试过例如用$ OPTS - 仍然没有运气 – user2560013

1

找到了原因 - 我的域管理员已经重定向我HOMESHARE%%,至networkdrive - 这resultet中的所有错误导致PWS库仑dn't发现在netsh上的共享

我这样做,而不是: $ AakHotWifiOn = @”

wlan connect name="AAKHotspot" ssid="AAKHotspot" interface="Trådløs netværksforbindelse" 

    "@ 

Invoke-WmiMethod -ComputerName . -Path win32_process -Name create -ArgumentList "netsh $AakHotWifiOn" 

同样的方法使用netsh MBN cinnect问题

感谢合作,格雷厄姆所有输入:)

+1

很高兴你已经接近它的底部,很高兴我能以某种方式提供帮助:-) –