/// <summary> /// Process Record /// </summary> protected override void ProcessRecord() { Data.KeyVault[] vaults = KeyVaultHelper.GetItemsThrow(null, VaultName, !Match); Data.Computer[] computers = GetPSAdminComputer.Call(Id, VaultName, ComputerName, null, !Match); if ((Match == false) && (computers.Length < 1)) { WriteError( (new PSAdminException(PSAdminExceptionType.ItemNotFoundLookup, ComputerName, "ComputerName")).GetErrorRecord() ); return; } // Unroll the object foreach (Data.Computer computer in computers) { if (!ShouldProcess(computer.ComputerName, "Remove")) { continue; } bool IsSuccessful = Call(computer.Id, computer.VaultName, computer.ComputerName, !Match); if (!IsSuccessful) { WriteError( (new PSAdminException(PSAdminExceptionType.RowDelete)).GetErrorRecord() ); } } }
/// <summary> /// Process Record /// </summary> protected override void ProcessRecord() { Data.KeyVault[] searchvaults = KeyVaultHelper.GetItemsThrow(null, VaultName, true); Data.Computer[] searchcomputer = GetPSAdminComputer.Call(null, VaultName, ComputerName, null, Exact); if (searchcomputer.Length == 0) { WriteError( (new PSAdminException(PSAdminExceptionType.ItemNotFoundLookup, ComputerName, "ComputerName")).GetErrorRecord() ); return; } Hashtable filter = new Hashtable { { "Id", Id }, { "VaultName", VaultName }, { "ComputerName", ComputerName } }; Hashtable item = new Hashtable { { "Description", Description }, { "Updated", DateTime.UtcNow }, { "LastOnline", LastOnline }, { "AssetNumber", AssetNumber }, { "SerialNumber", SerialNumber }, { "DeviceSKU", DeviceSKU }, { "OSVersion", OSVersion }, { "Location", Location }, { "Building", Building }, { "Room", Room }, { "Rack", Rack }, { "Slot", Slot }, { "VMHost", VMHost }, { "BuildDefinition", BuildDefinition }, { "BuildState", BuildState }, { "BuildDesiredVersion", BuildDesiredVersion }, { "BuildActualVersion", BuildActualVersion }, { "Domain", Domain }, { "Forest", Forest }, { "PublicFQDN", PublicFQDN }, { "LoadBalancer", LoadBalancer }, { "PublicIP", PublicIP }, { "LocalIP", LocalIP }, { "MACAddress", MACAddress }, { "Notes", Notes } }; if (Tags != null) { item.Add("Tags", String.Join(";", Tags)); } bool issuccessful = Call(item, filter, Exact); if (!issuccessful) { WriteError( (new PSAdminException(PSAdminExceptionType.RowUpdate)).GetErrorRecord() ); } if (Passthru) { Data.Computer[] results = GetPSAdminComputer.Call(null, VaultName, ComputerName, null, true); // Unroll the object foreach (Data.Computer result in results) { WriteObject(result); } } }