Ubuntu 게스트 OS에서 Windows 호스트의 전원 상태를 변경하는 방법은 무엇입니까?

Ubuntu 게스트 OS에서 Windows 호스트의 전원 상태를 변경하는 방법은 무엇입니까?

Windows 7 호스트의 VMWare Workstation 12에 Ubuntu14.04 게스트가 있습니다.

게스트 OS에서 호스트의 전원 상태(예: 전원 끄기 또는 절전 모드)를 어떻게 변경할 수 있습니까?

답변1

현재 내 방법은 게스트 OS에서 공유 폴더를 사용하는 것입니다.

echo "">/mnt/hgfs/share/sleep

그런 다음 호스트에서 "sleep" 파일이 존재하는지 모니터링하고 절전 동작을 실행하는 프로그램을 작성합니다.

전원을 끄려면 프로그램 모니터 vmware-vmx.exe가 사라지면 컴퓨터를 종료합니다.

C# 프로그램은 다음과 같습니다.

 class ShutdownComputer
{
    //true for sleep,false for shutdown
    static bool sleep = true;
    static public void ShutdownComputerDo()
    {
        string[] process_names = new string[]
        {
            "vmware-vmx",
        };

        while (true)
        {
            bool done = true;
            string sleep_signal_fn = @"C:\VMachine\VM_Ubuntu14.04\share\sleep";
            if (sleep)
            {
                done = File.Exists(sleep_signal_fn);
                if (done) File.Delete(sleep_signal_fn);
            }
            else
            {
                foreach (string pn in process_names)
                {
                    if (Process.GetProcessesByName(pn).Length > 0) done = false;
                }
            }



            if (done)
            {
                var psi=sleep?
                new ProcessStartInfo("rundll32.exe", " powrprof.dll,SetSuspendState 0,1,0")
                : new ProcessStartInfo("shutdown", "/s /t 0");
                psi.CreateNoWindow = true;
                psi.UseShellExecute = false;
                Process.Start(psi);

                if (!sleep) break;
            }
            Thread.Sleep(5 * 1000);
        }
    }
}

작동하지만 더 쉬운 방법이 있습니까?

관련 정보