static int Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Error: incorrect number of command line arguments"); Console.WriteLine("Usage: {0} serverName clientName", System.Environment.GetCommandLineArgs()[0]); return(1); } string serverName = args[0]; string clientName = args[1]; try { // Initialize DeviceScript and connect to data store Console.WriteLine("Initializing DeviceScript object"); DeviceScript script = new DeviceScript(); Console.WriteLine("Connecting to data store"); script.ConnectToNamedDataStore(serverName); // Find the client machine IResourcePool rootPool = script.GetResourcePoolByName("$"); Console.WriteLine("Looking for client machine '{0}'", clientName); IResource machine = rootPool.GetResourceByName(clientName); if (machine == null) { Console.WriteLine("Client machine not found"); return(0); } Console.WriteLine("Client machine '{0}' found ({1}, {2})", clientName, machine.OperatingSystem, machine.ProcessorArchitecture); // Change the client machine's status to 'unsafe' Console.WriteLine("Changing the client machine's status to 'Unsafe'"); try { machine.ChangeResourceStatus("Unsafe"); } catch (Exception e) { Console.WriteLine("Warning: " + e.Message); } while (machine.Status != "Unsafe") { try { machine = rootPool.GetResourceByName(clientName); } catch (Exception e) { Console.WriteLine("Warning: " + e.Message); } System.Threading.Thread.Sleep(1000); } // Delete the client machine from datastore Console.WriteLine("Deleting client machine from data store"); script.DeleteResource(machine.Id); return(0); } catch (Exception e) { Console.WriteLine("Error: " + e.Message); return(1); } }