2011-01-31 9 views
1

起動時にSystem.Diagnostics.Process.Startが動作しません。起動時に実行されるはずのvb.net 2008アプリケーションがあります。特定の条件を満たすと、PCは再起動されます。 MYPASSWORDはSecureStringいる間提供されたユーザーアカウント

System.Diagnostics.Process.Start("shutdown", "-r -t 00 -f", myUsername, myPassword, myDomain) 

MYUSERNAMEとMYDOMAINは両方の文字列である:以下失敗しているコードです。アプリケーションは、起動時から(スタートアップフォルダに配置することによって、またはレジストリに追加することにより、いずれか)を実行したときに手動で実行しますが、次のエラーを与えるとき正しく動作:

ディレクトリ名

また、プログラムは無効です最後の3つの引数が省略され、ユーザーが必要な権限を持っているときに正しく実行されます。

起動時に別のユーザー資格情報を使用して強制的に再起動するにはどうすればよいですか。

答えて

1

現在の作業ディレクトリをデフォルトとしてプロセスを開始しています。そのディレクトリが指定したユーザーに対して有効でない場合、問題が発生する可能性があります。代わりに、Process.Start(ProcessStartInfo)オーバーロードを使用してください。 ProcessStartInfo.WorkingDirectoryを任意のユーザーに適したディレクトリに設定します。ようこそc:\

さらに詳しい情報はKB articleにあります。

+0

驚くばかりです。それはうまくいった。ありがとうございました! – mp42871

関連する問題