在Uwp上通过ProcessLauncher更改系统时钟

时间:2016-03-31 16:33:39

标签: c# powershell raspberry-pi win-universal-app impersonation

我试图在raspberry(uwp)上运行一个powershell脚本来用c#更改系统时钟。

运行以下代码会抛出异常' System.UnauthorizedAccessException'。

await ProcessLauncher.RunToCompletionAsync(..."set-date.ps1", date.ToString());

set-date.ps1文件内容:

function Set-Time ([string]$dateTime) {
    $newDate = Get-Date $dateTime
    Set-Date $newDate 
}

我试图找到其他方法来尝试或尝试在模仿者中运行ProcessLauncher,但我不知道如何在uwp上执行此操作。

  

根据Microsoft:"注意,ProcessLauncher API在当前用户凭据或DefautlAccount下启动可执行文件,因此需要管理员权限的应用程序将无法正常运行。"

有关更改系统时钟的任何帮助吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

您必须使用以下代码添加应用程序,以在Windows Iot核心中的 AllowedExecutableFilesList 注册表中添加这些代码,因此您需要使用以下命令将应用程序或文件添加到Windows注册表中的AllowedExecutableFilesList Key:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\EmbeddedMode\ProcessLauncher" /v AllowedExecutableFilesList /t REG_MULTI_SZ /d "c:\windows\system32\ipconfig.exe"\0"c:\windows\system32\tlist.exe"\0"c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe\0"

继续,使用SSHPowerShell在您的设备上运行上述命令。之后,您授权访问此应用和文件。

  

注意ProcessLauncher API会根据当前用户凭据或DefautlAccount启动可执行文件,因此需要管理员权限的应用将无法正常运行。

请参阅此链接了解更多详情:

https://ms-iot.github.io/content/en-US/win10/samples/ProcessLauncherSample.htm

答案 1 :(得分:0)

出于安全问题,我不认为这是开箱即用的。