2012-03-09 4 views
0

cmdを使用してシステムの日付と時刻を変更しようとしています。コマンドプロンプトでcmdを手動で実行することができます。 IIS5.1/XPがホストしているときは動作しません。コマンドを実行する方法は次のとおりです。c#new Process()。WindowsでStart()が機能しないxp IIS 5.1

/// <summary> 
/// Runs a cmd and returns the response 
/// </summary> 
/// <param name="cmd"></param> 
/// <returns>The respond of the cmd</returns> 
private static string RunCmd(string cmd) 
{ 
    var p = new Process(); 

    p.StartInfo = new ProcessStartInfo("cmd", cmd) 
    { 
     RedirectStandardOutput = true, 
     UseShellExecute = false, 
     CreateNoWindow = true 
    }; 

    p.Start(); 

    string output = p.StandardOutput.ReadToEnd(); 

    p.WaitForExit(); 

    return cmd + Environment.NewLine + output; 
} 

これは、cassiniとIIS7の両方を使用して、私の開発ボックス(Windows Server 2008 r2)で期待どおりに動作します。なぜXP/IIS5.1では動作しないのですか?私はそれがパーミッションの問題だと思う。もしそうなら、どのように私はIIS5.1の完全な吹き出しの管理アクセス権の既定のWebサイトを取得できますか?

また、ここでは私が前に述べた方法を呼び出すために使用するコードです。

/// <summary> 
/// Sets the date. 
/// </summary> 
/// <param name="year">The year.</param> 
/// <param name="month">The month.</param> 
/// <param name="day">The day.</param> 
/// <remarks></remarks> 
public static string SetDate(int year, int month, int day) 
{ 
    var date = month.ToString("##") + "-" + day.ToString("##") + "-" + year.ToString("####"); 
    return RunCmd("CMD /c DATE " + date); 
} 

答えて

0

標準エラーを調べることはできますか? Mabyは呼び出しが失敗する理由を見ることができます。

関連する問題