UWP中的netsh处理缺少的命令

时间:2018-10-23 15:42:05

标签: process uwp netsh

在UWP中,我尝试使用netsh查找保存的wifi配置文件。我通过使用类似这样的参数启动cmd进程来做到这一点:

import re
from collections import namedtuple

Hello = namedtuple('Hello', 'i time x y')  # or import your own ready definition
hello_pattern = re.compile(r'Hello\(i=(\d+), time=(\d+), x=(\d+), y=(\d+)\)')

data = []
with open('file.txt') as inputfile:
    for line in inputfile:
        recovered = [
            Hello(*map(int, match))
            for match in hello_pattern.findall(line)
        ]
        data.append(recovered)

该过程运行正常,但输出如下:

public MainPage()
{
    this.InitializeComponent();
    var proc = new Process
    {
        StartInfo = new ProvessStartInfo
        {
            FileName = "cmd.exe",
            Arguments = "/C netsh wlan show profiles",
            UseShellExecute = false,
            RedirectStandardOutput = true,
            CreateNoWindow = true
        }
    };
    proc.Start();
    while(!proc.StandardOutput.EndOfStream)
    {
        string line = proc.StandardOutput.ReadToEnd();
    }
    proc.WaitorExit();
}

因此,我尝试在代码的The following command was not found: wlan show profiles 中使用netsh help命令,看看输出是什么,我得到了:

Arguments

您可以看到,缺少了很多命令,包括我需要的wlan命令。

UWP的目标版本是Windows 1809 /最低Windows 1803,它的版本为x64。我首先认为丢失的命令可能是由于在SysWow64而不是System32下使用netsh的过程,但是当我尝试使用常规cmd时,wlan可以正常工作并且命令的完整列表可以按预期使用。

有人知道为什么吗?谢谢。

0 个答案:

没有答案