Beispiel #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="virtualMachine"></param>
 protected void LoginGuest(VMWareVirtualMachine virtualMachine)
 {
     PowerOnVirtualMachine(virtualMachine);
     Log.LogMessage(string.Format("Logging in {0}", Filename));
     virtualMachine.LoginInGuest(GuestUsername, GuestPassword,
                                 _interactive ? Constants.VIX_LOGIN_IN_GUEST_REQUIRE_INTERACTIVE_ENVIRONMENT : 0,
                                 _loginTimeout);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="virtualMachine"></param>
 protected void LoginGuest(VMWareVirtualMachine virtualMachine)
 {
     PowerOnVirtualMachine(virtualMachine);
     Log.LogMessage(string.Format("Logging in {0}", Filename));
     virtualMachine.LoginInGuest(GuestUsername, GuestPassword,
         _interactive ? Constants.VIX_LOGIN_IN_GUEST_REQUIRE_INTERACTIVE_ENVIRONMENT : 0,
         _loginTimeout);
 }
Beispiel #3
0
        /// <summary>
        /// Dispose the object, unmap a previously mapped network drive.
        /// </summary>
        public void Dispose()
        {
            if (_mapped)
            {
                UnMapNetworkDrive();
            }

            _vm = null; // don't hold another reference, http://communities.vmware.com/message/1144091
        }
Beispiel #4
0
        /// <summary>
        /// Creates an instance of a mapped network drive.
        /// </summary>
        /// <param name="vm">Virtual machine.</param>
        /// <param name="info">Mapped network drive info.</param>
        public MappedNetworkDrive(VMWareVirtualMachine vm, MappedNetworkDriveInfo info)
        {
            _vm   = vm;
            _info = info;

            if (_info.Auto)
            {
                MapNetworkDrive();
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="virtualMachine"></param>
        protected void PowerOnVirtualMachine(VMWareVirtualMachine virtualMachine)
        {
            Log.LogMessage(string.Format("Powering on {0}", Filename));
            virtualMachine.PowerOn(PowerOnTimeout);

            if (WaitForTools)
            {
                Log.LogMessage(string.Format("Waiting for {0}", Filename));
                virtualMachine.WaitForToolsInGuest(WaitForToolsTimeout);
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="virtualMachine"></param>
        protected void PowerOnVirtualMachine(VMWareVirtualMachine virtualMachine)
        {
            Log.LogMessage(string.Format("Powering on {0}", Filename));
            virtualMachine.PowerOn(PowerOnTimeout);

            if (WaitForTools)
            {
                Log.LogMessage(string.Format("Waiting for {0}", Filename));
                virtualMachine.WaitForToolsInGuest(WaitForToolsTimeout);
            }
        }
Beispiel #7
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    // opened virtual machine
                }
            }

            return(true);
        }
Beispiel #9
0
        public VMWareVirtualMachineConfig GetConfiguration(VMWareVirtualMachine virtualMachine)
        {
            foreach (VMWareVirtualMachineConfig virtualMachineConfig in _config.VirtualMachines)
            {
                if (virtualMachineConfig.File == virtualMachine.PathName)
                {
                    return(virtualMachineConfig);
                }
            }

            return(null);
        }
Beispiel #10
0
 /*
  * Run PolicySync as system user
  * To wait for the completion of PolicySync, we look for PsExec.exe process on guest,
  * when null is returned the process does not exist
  */
 private static void policySync(VMWareVirtualMachine ivm)
 {
     VMWareVirtualMachine.Process psync = detachSystemCommand(@"C:\Program Files (x86)\LANDesk\LDClient\PolicySync.exe", "", ivm);
     if (psync != null)
     {
         while (ivm.GuestProcesses.FindProcess(psync.Name, StringComparison.CurrentCulture) != null)
         {
             System.Threading.Thread.Sleep(1000);
         }
     }
     Console.WriteLine("[\u221A] PolicySync complete.");
 }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    WaitForVMwareUserProcessInGuest(virtualMachine);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    Log.LogMessage(string.Format("Powering off {0}", Filename));
                    virtualMachine.PowerOff(0, PowerOffTimeout);
                }
            }

            return(true);
        }
Beispiel #13
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    Log.LogMessage(string.Format("Shutting down {0}", Filename));
                    virtualMachine.ShutdownGuest(ShutdownTimeout);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    Log.LogMessage(string.Format("Removing snapshot {0}", _snapshotName));
                    virtualMachine.Snapshots.RemoveSnapshot(_snapshotName, _removeSnapshotTimeout);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    Log.LogMessage(string.Format("Copying host '{0}' to guest '{1}'", _hostPathName, _guestPathName));
                    virtualMachine.CopyFileFromHostToGuest(_hostPathName, _guestPathName, _copyFileTimeout);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    Log.LogMessage(string.Format("Checking file '{0}' in guest os", _guestPathName));
                    _fileExists = virtualMachine.FileExistsInGuest(_guestPathName, _fileExistsTimeout);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    Log.LogMessage(string.Format("Retreiving file information for '{0}' from guest os", _guestPathName));
                    _fileInfo = virtualMachine.GetFileInfoInGuest(_guestPathName, _getFileInfoTimeout);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    Log.LogMessage(string.Format("Deleting guest file '{0}'", _guestPathName));
                    virtualMachine.DeleteFileFromGuest(_guestPathName, _deleteFileTimeout);
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    _guestPathName = virtualMachine.CreateTempFileInGuest(_createTempFileTimeout);
                    Log.LogMessage(string.Format("Created temporary file '{0}' in guest os", _guestPathName));
                }
            }

            return(true);
        }
Beispiel #20
0
 /*
  * Runs regedit export of LANDesk software tracking, pulls file from guest -> host and returns number of lines in the file.
  *
  */
 private static int getRegEntryNum(VMWareVirtualMachine ivm)
 {
     if (ivm.FileExistsInGuest(pstempGuest + @"\reg.txt"))
     {
         ivm.DeleteFileFromGuest(pstempGuest + @"\reg.txt");
     }
     VMWareVirtualMachine.Process proc = ivm.RunProgramInGuest(@"C:\Windows\System32\Reg.exe", "export \"HKEY_LOCAL_MACHINE\\SOFTWARE\\LANdesk\\SOFTWARE\" \"" + pstempGuest + "\\reg.txt\"");
     if (File.Exists(workingDir + @"\reg.txt"))
     {
         File.Delete(workingDir + @"\reg.txt");
     }
     ivm.CopyFileFromGuestToHost(pstempGuest + @"\reg.txt", workingDir + @"\reg.txt");
     return(File.ReadAllLines(workingDir + @"\reg.txt").Length);
 }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    Log.LogMessage(string.Format("Creating guest directory '{0}'", _guestPathName));
                    virtualMachine.CreateDirectoryInGuest(_guestPathName, _createDirectoryTimeout);
                }
            }

            return(true);
        }
Beispiel #22
0
        /*
         * Rolls back the given virtual machine to the deployPoint snapshot,
         * powers the vm on and logs in to an interactive session as the standand user.
         * Then calls policySync
         */
        private static void revertAndLogin(VMWareVirtualMachine ivm)
        {
            Console.WriteLine("[i] Rolling back.");
            count = 0;
            deployPoint.RevertToSnapshot();

            ivm.PowerOn();
            ivm.WaitForToolsInGuest();
Login:
            try { ivm.LoginInGuest(domainName + @"\" + usrnm, psswd, 8, 300); }
            catch (Exception) { goto Login; }
            Console.WriteLine("[\u221A] Logged in.");
            policySync(ivm);
        }
 public VMWareMappedVirtualMachine(
     string name,
     VMWareVirtualMachine vm,
     string username,
     string password,
     CopyMethod copyMethod,
     bool simulationOnly)
 {
     _name = name;
     _vm = vm;
     _copyMethod = copyMethod;
     _username = username;
     _password = password;
     _simulationOnly = simulationOnly;
 }
 public void GetEnvironmentVariablesSample()
 {
     #region Example: Enumerating Environment Variables on the GuestOS without VixCOM
     // connect to a local virtual machine and power it on
     VMWareVirtualHost virtualHost = new VMWareVirtualHost();
     virtualHost.ConnectToVMWareWorkstation();
     VMWareVirtualMachine virtualMachine = virtualHost.Open(@"C:\Users\dblock\Virtual Machines\Windows XP Pro SP3 25GB\WinXP Pro SP3 25GB.vmx");
     virtualMachine.PowerOn();
     virtualMachine.WaitForToolsInGuest();
     virtualMachine.LoginInGuest("Administrator", "admin123");
     Shell guestShell = new Shell(virtualMachine);
     Dictionary <string, string> guestEnvironmentVariables = guestShell.GetEnvironmentVariables();
     Console.WriteLine(guestEnvironmentVariables["ProgramFiles"]);
     #endregion
 }
Beispiel #25
0
 public VMWareMappedVirtualMachine(
     string name,
     VMWareVirtualMachine vm,
     string username,
     string password,
     CopyMethod copyMethod,
     bool simulationOnly)
 {
     _name           = name;
     _vm             = vm;
     _copyMethod     = copyMethod;
     _username       = username;
     _password       = password;
     _simulationOnly = simulationOnly;
 }
Beispiel #26
0
 /*
  * Procedure for logging in interactively
  */
 private static void interactiveLogin(VMWareVirtualMachine ivm)
 {
     try
     {
         Console.Write("[i] Log in as " + domainName + @"\" + usrnm + " on the virtual machine, then press enter in the console.");
         Console.ReadLine();
         ivm.LoginInGuest(domainName + @"\" + usrnm, psswd, 8, 300);
         Console.WriteLine("[\u221A] Logged in.");
     }
     catch (Exception)
     {
         Console.WriteLine("[!] You did not log in correctly. Wait for all scripts to run, then try again.");
         interactiveLogin(ivm);
     }
 }
        public void Dispose()
        {
            if (_virtualMachine != null)
            {
                _virtualMachine.Dispose();
                _virtualMachine = null;
            }

            if (_host != null)
            {
                _host.Dispose();
                _host = null;
            }

            _config = null;
        }
Beispiel #28
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    Log.LogMessage(string.Format("Creating snapshot {0}", _snapshotName));
                    using (VMWareSnapshot snapshot = virtualMachine.Snapshots.CreateSnapshot(
                               _snapshotName, _snapshotDescription, 0, _createSnapshotTimeout))
                    {
                        // snapshot created
                    }
                }
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            using (VMWareVirtualHost host = GetConnectedHost())
            {
                using (VMWareVirtualMachine virtualMachine = OpenVirtualMachine(host))
                {
                    LoginGuest(virtualMachine);
                    Log.LogMessage(string.Format("Running '{0}{1}'", _guestProgramName,
                                                 string.IsNullOrEmpty(_commandLineArgs)
                            ? string.Empty
                            : " " + _commandLineArgs));
                    _process = virtualMachine.RunProgramInGuest(_guestProgramName, _commandLineArgs, 0, _runProgramTimeout);
                }
            }

            return(true);
        }
Beispiel #30
0
 public void TestRevertToLiveSnapshot()
 {
     using (VMWareVirtualHost virtualHost = new VMWareVirtualHost())
     {
         virtualHost.ConnectToVMWareWorkstation();
         Console.WriteLine(virtualHost.ConnectionType);
         using (VMWareVirtualMachine virtualMachine = virtualHost.Open(
                    @"C:\Users\dblock\Documents\Virtual Machines\Windows 98 SE\Windows 98.vmx"))
         {
             Console.WriteLine(virtualMachine.PathName);
             VMWareSnapshot snapshot = virtualMachine.Snapshots.GetNamedSnapshot("Live");
             // snapshot.RevertToSnapshot();
             // snapshot.RevertToSnapshot(Interop.VixCOM.Constants.VIX_VMPOWEROP_LAUNCH_GUI,
             //    VMWareInterop.Timeouts.RevertToSnapshotTimeout);
             snapshot.RevertToSnapshot(Interop.VixCOM.Constants.VIX_VMPOWEROP_SUPPRESS_SNAPSHOT_POWERON,
                                       VMWareInterop.Timeouts.RevertToSnapshotTimeout);
             // virtualMachine.PowerOn();
         }
     }
 }
 public void CopyFromHostToGuestWithoutVixCOMSample()
 {
     #region Example: Copying Files to/from the Guest Operating System Without VixCOM
     // connect to a local virtual machine and power it on
     VMWareVirtualHost virtualHost = new VMWareVirtualHost();
     virtualHost.ConnectToVMWareWorkstation();
     VMWareVirtualMachine virtualMachine = virtualHost.Open(@"C:\Users\dblock\Virtual Machines\Windows XP Pro SP3 25GB\WinXP Pro SP3 25GB.vmx");
     virtualMachine.PowerOn();
     virtualMachine.WaitForToolsInGuest();
     // map the C:\ drive (\\guest\c$)
     MappedNetworkDriveInfo info = new MappedNetworkDriveInfo();
     info.RemotePath = @"C:\";
     info.Username   = @"dblock-blue\Administrator";
     info.Password   = @"admin123";
     MappedNetworkDrive mappedNetworkDrive = new MappedNetworkDrive(virtualMachine, info);
     string             hostFile           = @"C:\WINDOWS\win.ini";
     string             guestFile          = mappedNetworkDrive.GuestPathToNetworkPath(@"C:\host-win.ini");
     Console.WriteLine(guestFile);
     File.Copy(hostFile, guestFile);
     #endregion
 }
Beispiel #32
0
 public void GettingStartedWorkstation()
 {
     #region Example: Getting Started (Workstation)
     // declare a virtual host
     using (VMWareVirtualHost virtualHost = new VMWareVirtualHost())
     {
         // connect to a local VMWare Workstation virtual host
         virtualHost.ConnectToVMWareWorkstation();
         // open an existing virtual machine
         using (VMWareVirtualMachine virtualMachine = virtualHost.Open(@"C:\Virtual Machines\xp\xp.vmx"))
         {
             // power on this virtual machine
             virtualMachine.PowerOn();
             // wait for VMWare Tools
             virtualMachine.WaitForToolsInGuest();
             // login to the virtual machine
             virtualMachine.LoginInGuest("Administrator", "password");
             // run notepad
             virtualMachine.RunProgramInGuest("notepad.exe", string.Empty);
             // create a new snapshot
             string name = "New Snapshot";
             // take a snapshot at the current state
             VMWareSnapshot createdSnapshot = virtualMachine.Snapshots.CreateSnapshot(name, "test snapshot");
             createdSnapshot.Dispose();
             // power off
             virtualMachine.PowerOff();
             // find the newly created snapshot
             using (VMWareSnapshot foundSnapshot = virtualMachine.Snapshots.GetNamedSnapshot(name))
             {
                 // revert to the new snapshot
                 foundSnapshot.RevertToSnapshot();
                 // delete snapshot
                 foundSnapshot.RemoveSnapshot();
             }
         }
     }
     #endregion
 }
Beispiel #33
0
 public void GettingStartedVI()
 {
     #region Example: Getting Started (VI)
     // declare a virtual host
     using (VMWareVirtualHost virtualHost = new VMWareVirtualHost())
     {
         // connect to a remove (VMWare ESX) virtual machine
         virtualHost.ConnectToVMWareVIServer("esx.mycompany.com", "vmuser", "password");
         // open an existing virtual machine
         using (VMWareVirtualMachine virtualMachine = virtualHost.Open("[storage] testvm/testvm.vmx"))
         {
             // power on this virtual machine
             virtualMachine.PowerOn();
             // wait for VMWare Tools
             virtualMachine.WaitForToolsInGuest();
             // login to the virtual machine
             virtualMachine.LoginInGuest("Administrator", "password");
             // run notepad
             virtualMachine.RunProgramInGuest("notepad.exe", string.Empty);
             // create a new snapshot
             string name = "New Snapshot";
             // take a snapshot at the current state
             virtualMachine.Snapshots.CreateSnapshot(name, "test snapshot");
             // power off
             virtualMachine.PowerOff();
             // find the newly created snapshot
             using (VMWareSnapshot snapshot = virtualMachine.Snapshots.GetNamedSnapshot(name))
             {
                 // revert to the new snapshot
                 snapshot.RevertToSnapshot();
                 // delete snapshot
                 snapshot.RemoveSnapshot();
             }
         }
     }
     #endregion
 }
Beispiel #34
0
 /// <summary>
 /// Release any references to the virtual machine.
 /// </summary>
 public void Dispose()
 {
     _vm = null; // don't hold another reference, http://communities.vmware.com/message/1144091
 }
 /*
 * Run PolicySync as system user
 * To wait for the completion of PolicySync, we look for PsExec.exe process on guest,
 * when null is returned the process does not exist
 */
 private static void policySync(VMWareVirtualMachine ivm)
 {
     VMWareVirtualMachine.Process psync = detachSystemCommand(@"C:\Program Files (x86)\LANDesk\LDClient\PolicySync.exe", "", ivm);
     if (psync != null) while (ivm.GuestProcesses.FindProcess(psync.Name, StringComparison.CurrentCulture) != null) System.Threading.Thread.Sleep(1000);
     Console.WriteLine("[\u221A] PolicySync complete.");
 }
Beispiel #36
0
        public VMWareVirtualMachineConfig GetConfiguration(VMWareVirtualMachine virtualMachine)
        {
            foreach (VMWareVirtualMachineConfig virtualMachineConfig in _config.VirtualMachines)
            {
                if (virtualMachineConfig.File == virtualMachine.PathName)
                {
                    return virtualMachineConfig;
                }
            }

            return null;
        }
Beispiel #37
0
        /// <summary>
        /// New instance of a shell wrapper object.
        /// </summary>
        /// <param name="vm">Powered virtual machine.</param>
        public Shell(VMWareVirtualMachine vm)
            : base(vm)
        {

        }
        /// <summary>
        /// Creates an instance of a mapped network drive.
        /// </summary>
        /// <param name="vm">Virtual machine.</param>
        /// <param name="info">Mapped network drive info.</param>
        public MappedNetworkDrive(VMWareVirtualMachine vm, MappedNetworkDriveInfo info)
        {
            _vm = vm;
            _info = info;

            if (_info.Auto)
            {
                MapNetworkDrive();
            }
        }
        /// <summary>
        /// Dispose the object, unmap a previously mapped network drive.
        /// </summary>
        public void Dispose()
        {
            if (_mapped)
            {
                UnMapNetworkDrive();
            }

            _vm = null; // don't hold another reference, http://communities.vmware.com/message/1144091
        }
Beispiel #40
0
 /// <summary>
 /// New instance of a guest operating system wrapper.
 /// </summary>
 /// <param name="vm">Powered virtual machine.</param>
 public GuestOS(VMWareVirtualMachine vm)
 {
     _vm = vm;
 }
 /// <summary>
 /// Waits for vmware user process in the guest
 /// </summary>
 /// <param name="virtualMachine"></param>
 protected void WaitForVMwareUserProcessInGuest(VMWareVirtualMachine virtualMachine)
 {
     Log.LogMessage(string.Format("Waiting for vmware user process in {0}", Filename));
     virtualMachine.WaitForVMWareUserProcessInGuest(GuestUsername, GuestPassword, WaitForVMwareUserProcessTimeout);
 }
 /*
  * Detaches commands as the SYSTEM user in the guest OS
  * Added the /WAIT argument to have hstart64 run until it's called process (PsExec) is done. So tracking hstart is the most
  * effective way of figuring out if the process is alive.
  */
 private static VMWareVirtualMachine.Process detachSystemCommand(string command, string args, VMWareVirtualMachine sysVm)
 {
     VMWareVirtualMachine.Process tst, desiredProc = null, hstartWait = sysVm.DetachProgramInGuest(pstempGuest + @"\hstart64.exe", "/WAIT /UAC \"" + pstempGuest + "\\PsExec.exe /accepteula -i -s \"" + command + "\" " + args + "\"");
     while ((tst = sysVm.GuestProcesses.FindProcess(hstartWait.Name, StringComparison.CurrentCulture)) != null && desiredProc == null)
     {
         desiredProc = sysVm.GuestProcesses.FindProcess(Path.GetFileName(command), StringComparison.CurrentCulture);
     }
     return desiredProc;
 }
 public VMWareVirtualHost Reconnect()
 {
     _virtualMachine = null;
     _host = null;
     return ConnectedVirtualHost;
 }
 /*
  * Procedure for logging in interactively
  */
 private static void interactiveLogin(VMWareVirtualMachine ivm)
 {
     try
     {
         Console.Write("[i] Log in as " + domainName + @"\" + usrnm + " on the virtual machine, then press enter in the console.");
         Console.ReadLine();
         ivm.LoginInGuest(domainName + @"\" + usrnm, psswd, 8, 300);
         Console.WriteLine("[\u221A] Logged in.");
     }
     catch (Exception)
     {
         Console.WriteLine("[!] You did not log in correctly. Wait for all scripts to run, then try again.");
         interactiveLogin(ivm);
     }
 }
 /*
  * Runs regedit export of LANDesk software tracking, pulls file from guest -> host and returns number of lines in the file.
  *
  */
 private static int getRegEntryNum(VMWareVirtualMachine ivm)
 {
     if (ivm.FileExistsInGuest(pstempGuest + @"\reg.txt")) ivm.DeleteFileFromGuest(pstempGuest + @"\reg.txt");
     VMWareVirtualMachine.Process proc = ivm.RunProgramInGuest(@"C:\Windows\System32\Reg.exe", "export \"HKEY_LOCAL_MACHINE\\SOFTWARE\\LANdesk\\SOFTWARE\" \"" + pstempGuest + "\\reg.txt\"");
     if (File.Exists(workingDir + @"\reg.txt")) File.Delete(workingDir + @"\reg.txt");
     ivm.CopyFileFromGuestToHost(pstempGuest + @"\reg.txt", workingDir + @"\reg.txt");
     return File.ReadAllLines(workingDir + @"\reg.txt").Length;
 }
 public void Dispose()
 {
     if (_virtualMachine != null)
     {
         _virtualMachine.Dispose();
         _virtualMachine = null;
     }
     
     if (_host != null)
     {
         _host.Dispose();
         _host = null;
     }
     
     _config = null;
 }
Beispiel #47
0
 public VirtualMachine(VMWareVirtualMachine vm)
 {
     this.vm = vm;
 }
Beispiel #48
0
 public Process(VMWareVirtualMachine.Process p)
 {
     this.p = p;
 }
        /*
         * Rolls back the given virtual machine to the deployPoint snapshot,
         * powers the vm on and logs in to an interactive session as the standand user.
         * Then calls policySync
         */
        private static void revertAndLogin(VMWareVirtualMachine ivm)
        {
            Console.WriteLine("[i] Rolling back.");
            count = 0;
            deployPoint.RevertToSnapshot();

            ivm.PowerOn();
            ivm.WaitForToolsInGuest();
        Login:
            try { ivm.LoginInGuest(domainName + @"\" + usrnm, psswd, 8, 300); }
            catch (Exception) { goto Login; }
            Console.WriteLine("[\u221A] Logged in.");
            policySync(ivm);
        }