System.diagnostics.process.startは、ユーザーアカウントが提供された場合、起動時には機能しません
-
27-10-2019 - |
質問
Startupで実行されるはずのVB.NET 2008アプリケーションがあります。特定の条件を満たした後、PCは再起動することになっています。以下は失敗しているコードです。
System.Diagnostics.Process.Start("shutdown", "-r -t 00 -f", myUsername, myPassword, myDomain)
myusernameとmydomainはどちらも文字列ですが、mypasswordはセキュリティです。アプリケーションは手動で実行されるときに適切に機能しますが、起動時から実行されたときに次のエラーが発生します(スタートアップフォルダーに配置するか、レジストリに追加することで):
ディレクトリ名は無効です
また、最後の3つの引数が除外され、ユーザーに必要な権利がある場合、プログラムは適切に実行されます。
スタートアップで特定の代替ユーザー資格情報を使用して再起動を強制するにはどうすればよいですか?
解決
現在の作業ディレクトリをデフォルトとしてプロセスを開始します。指定したユーザーにそのディレクトリが有効でない場合、問題を引き起こす可能性があります。代わりに、process.start(processstartinfo)オーバーロードを使用します。 ProcessStartInfo.WorkingDirectoryをどのユーザーに適したディレクトリに設定します。 c:のように
これの詳細 KBの記事.
所属していません StackOverflow