コード例 #1
0
        /// <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()
                        );
                }
            }
        }
コード例 #2
0
        /// <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);
                }
            }
        }