可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备。PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计。
1.启动 PowerShell (PS) 会话
注:若要使用装有Windows10 IoT Core设备启动PS会话,首先需要在主机电脑与设备之间创建信任关系。
启动 Windows IoT 核心版设备后,与该设备相连的屏幕上将显示一个 IP 地址:
(![Windows 10 IoT 核心版上的
CoreDefaultApp](/content/images/DefaultApp.png) 可在Windows10 IoT
Core Watcher实用工具中找到相同信息。
)
在本地电脑上启动管理员 PS 控制台。
(在 Windows“开始”菜单旁的“搜索 Web 和 Windows”文本框中键入“powershell”)
以管理员身份启动 PS,请右键单击“Windows PowerShell”项并选择“以管理员身份运行”:
Powershell控制台:
注:需要在桌面上启动 WinRM 服务以启用远程连接,在 Powershell 控制台中,输入:
net start WinRM
在 Powershell
控制台中,键入以下命令,从而使用相应的值替代 :
Set-Item
WSMan:\localhost\Client\TrustedHosts -Value
输入 Y 以确认更改。
-
现在,使用 Windows IoT 核心版设备启动会话,在管理员身份 PS 控制台中,键入:
-
Enter-PSSession -ComputerName -Credential \Administrator
在凭据对话框中,输入以下默认密码:p@ssw0rd
更改账户密码:在 PowerShell 连接中发出以下命令
net user Administrator [new password]
完成操作后,需要使用具有新凭据的 Exit-PSSession 和 Enable-PSSession 来建立新的 PowerShell 会话。
Exit-PSSession Enter-PSSession -ComputerName -Credential \Administrator
2.Visual Studio 远程调试程序疑难解答
为了能够从 Visual Studio 2015 部署应用程序,需确保 Visual Studio 远程调试程序正在 Windows IoT 核心版设备上运行。远程调试器应在计算机启动时自动启动,若要检查启动情况,请使用 tlist 命令列出 powershell 中所有正在运行的进程,应有两个 msvsmon.exe 的实例正在设备上运行。
在长时间都处于非活动状态后,Visual Studio 远程调试器可能会出现超时。若Visual Studio 无法连接到 Windows IoT 核心版设备,请尝试重新启动设备。
3.配置 Windows IoT 核心版设备
更改“计算机名”,请使用 setcomputername 实用工具:
setcomputername
重新启动设备使更改生效,使用 shutdown 命令:
shutdown /r /t 0
重新启动后,由于计算机名称已更改,需要重新运行此命令,以便连接到设备:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value
4.已知问题与解决方法
问题:PowerShell 安全策略中的一个已知 Bug 会导致远程会话内的清单出现以下问题:
① Get-Help 返回异常匹配项。
② 指定模块上的 Get-Command 将返回空命令列表。
③ 从以下任意模块运行 cmdlet 将引发 CommandNotFoundException: Appx、NetAdapter、NetSecurity、NetTCPIP、PnpDevice。
④ 上述任意模块上的 Import-Module 将引发 PSSecurityException 异常(包含 UnauthorizedAccess)。模块自动加载似乎也不起作用。
解决方法: 将远程 PowerShell 会话内的执行策略修改为“RemoteSigned”。
有关其他执行策略的更多详细信息,请参考https://technet.microsoft.com/zh-cn/library/ee176961.aspx
问题:有时,某些模块中的 cmdlet(如 NetAdapter)不可见。例如,Get-Module NetAdapter 将返回一个空列表。
解决方法: 将“-Force”参数与 Import-Module 结合使用。例如,Import-Module NetAdapter -Force。
问题: 将执行策略设置为“AllSigned”时会中断 PS 远程控制。创建远程会话的后续尝试均失败,并且 SecurityException 正在加载 Typesv3.ps1xml。
解决方法: 使用 winrs.exe 还原 Powershell 执行策略:
① 更改控制台代码页 Chcp 65001
② 登录到远程 cmd.exe shell Winrs.exe -r: -u: -p: cmd.exe
③ 在远程 cmd.exe 内,修改相应的注册表项 reg add HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell /v ExecutionPolicy /d RemoteSigned /f
④ 退出远程 cmd.exe 会话 exit
本文主要资源来自Windows 开发中心。