1
コードを実行しているWindowsマシンを再起動する必要があるアプリケーションを作成しています。InitiateSystemShutdown呼び出しが機能しない
これは.NET内にAPIがないため、Win32 APIを参照してInitiateSystemShutdownと呼ばれていました。 extern宣言は以下のとおりである:
[DllImport("advapi32.dll")]
public static extern bool InitiateSystemShutdown(string Machinename, string
Message, long Timeout, int ForceAppsClosed, int RebootAfterShutdown);
私は、次の引数で、このオペレーティングシステムのルーチンを呼び出すようにしてみてください。
InitiateSystemShutdown(null, null, 30, 1, 1);
しかし、これは常にfalseを返します。私はMarshal.GetLastWin32Errorメソッドを呼び出すと、1008のエラーコードを返します。
"存在しないトークンを参照しようとしました。"
コードはWindowsサービス内で実行されており、Administratorアカウントで実行されています。私はそれをローカルシステムとして実行しようとしましたが、それは効果がありませんでした。