2016-06-08 5 views
-1

Hallo Kollegen der Win10 IoT-Entwicklung!SSH über Code zu Set-Date unter Windows 10 IoT

Ich möchte ein Programm schreiben, das die Zeit meines Raspberry Pi 3 mit Windows 10 IoT setzt, damit meine Zeitstempel korrekt sind.

Ich erzeuge eine SSH-Verbindung über Renci.SshNet und Codes, wie sie völlig in Ordnung arbeiten:

Renci.SshNet.SshClient client = new SshClient(IP, Username, PW); 
client.Connect(); 
client.RunCommand("TZUTIL /s \"W.Europe Standard Time\""); 
client.RunCommand("shutdown /r /t 0"); 

Aber es ist unmöglich für mich, den Set-Date-Befehl übergeben:

I tried all of the following: 
// Manual 
client.RunCommand("Set-Date " + ((char)34) + "08.06.2016 14:08:45" + ((char)34)); 
client.RunCommand("Set-Date \"10/3/2015 2:00PM\""); 
// Dynamic 
System.DateTime dateTime; 
dateTime = System.DateTime.Now.AddHours(2); 
String datestr = dateTime.ToString(); 
client.RunCommand("set-date \"" + datestr + "\""); 

Es ist ein guide "Wie über Shell-Befehle verbinden" und der Befehl Set-Date "08.06.2016 14:31:00" funktioniert einwandfrei, aber der gleiche Code gibt nichts in das Programm ...

Ich bin froh für jede Hilfe!

Hinweis: Verwandt How to set system time in Windows 10 IoT?

+0

„ist es mir unmöglich, das Set-Date-Befehl übergeben "Was passiert konkret, wenn du es versuchst? Erhalten Sie Fehlermeldungen? Was sagt die Fehlermeldung? – Kenster

+0

Wie sieht dein 'datestr' aus? Ist es das gleiche Format mit '08.06.2016 14: 08: 45'? Haben Sie jemals versucht, es mit benutzerdefinierten Formatspezifizierungen und einer bestimmten Kultur zu formatieren? –

+0

@Kenster Es gibt keine Fehlermeldung, es bleibt nur dort stehen, bis der Timer die Methode erneut aufruft. Es stellt nur nicht die Zeit auf meinem Raspberry fest und verpflichtet weder den Befehl "set-date" noch alle Befehle danach. @ SonerGönül Spezifische Kultur dasselbe Problem: 'DateTime dt = DateTime.Now; Thread.CurrentThread.CurrentCulture = new CultureInfo ("de-DE"); CultureInfo ci = neue CultureInfo ("de-DE"); client.RunCommand ("Set-Date \" "+ dt.ToString (ci) +" \ ""); ' Irgendwelche Ideen, was es sonst noch sein könnte? – Kyagos

Antwort

1

Sie mischen Windows-Befehle und Powershell-Befehle.

Wenn Sie SSH to Windows 10 IoT Core sind, sind Sie mit der Windows-Eingabeaufforderung verbunden und können Windows-Befehle wie shutdown.exe ausführen.

Set-Date ist ein PowerShell-Cmdlet, das von PowerShell ausgeführt werden muss. Sie können Powershell ausführen aus der Windows-Eingabeaufforderung wie diese Befehle: PowerShell "Set-Date ""6/16/2016 11:00PM"""

In Ihrem Fall der Code für den SSH-Client sein würde:
var command = "PowerShell \"Set-Date \"\"6/16/2016 11:00PM\"\"\""; client.RunCommand(command);

+0

Thx! Leider drückt die Verbindung es immer noch nicht Meintest du, dass einige PowerShell-Befehle in WC-Proms nicht unterstützt werden? Dies kann zu der Schlussfolgerung führen, dass die Ressource von Rencii nicht der beste Weg für 'Set-Date via C# -Programm 'ist – Kyagos