Ejemplo n.º 1
0
        public override void ExecuteCmdlet()
        {
            var name = Name;
            var assessedResourceId = AssessedResourceId;

            switch (ParameterSetName)
            {
            case ParameterSetNames.SubscriptionLevelResource:
            case ParameterSetNames.ResourceIdLevelResource:
                break;

            case ParameterSetNames.ResourceId:
                name = AzureIdUtilities.GetResourceName(ResourceId);
                assessedResourceId = AzureIdUtilities.GetExtendedResourceId(ResourceId);
                break;

            case ParameterSetNames.InputObject:
                name = InputObject.Name;
                assessedResourceId = AzureIdUtilities.GetExtendedResourceId(InputObject.Id);
                break;

            default:
                throw new PSInvalidOperationException();
            }

            if (ShouldProcess(name, VerbsCommon.Remove))
            {
                SecurityCenterClient.Assessments.DeleteWithHttpMessagesAsync(assessedResourceId ?? $"/subscriptions/{DefaultContext.Subscription.Id}", name).GetAwaiter().GetResult();
            }

            if (PassThru.IsPresent)
            {
                WriteObject(true);
            }
        }
Ejemplo n.º 2
0
        public override void ExecuteCmdlet()
        {
            switch (ParameterSetName)
            {
            case ParameterSetNames.SubscriptionScope:
                int    fetchedItems = 0;
                string nextLink     = null;

                var assessments   = SecurityCenterClient.SubAssessments.ListAllWithHttpMessagesAsync(AssessedResourceId ?? $"subscriptions/{DefaultContext.Subscription.Id}").GetAwaiter().GetResult().Body;
                var psAssessments = assessments.ConvertToPSType();
                WriteObject(psAssessments, enumerateCollection: true);
                fetchedItems += psAssessments.Count;
                nextLink      = assessments?.NextPageLink;
                while (!string.IsNullOrWhiteSpace(nextLink) && fetchedItems < MaxItemsToFetch)
                {
                    assessments   = SecurityCenterClient.SubAssessments.ListAllNextWithHttpMessagesAsync(nextLink).GetAwaiter().GetResult().Body;
                    psAssessments = assessments.ConvertToPSType();
                    WriteObject(psAssessments, enumerateCollection: true);
                    fetchedItems += psAssessments.Count;
                    nextLink      = assessments?.NextPageLink;
                }
                break;

            case ParameterSetNames.ResourceIdScope:
                fetchedItems = 0;
                nextLink     = null;

                assessments   = SecurityCenterClient.SubAssessments.ListWithHttpMessagesAsync(AssessedResourceId ?? $"subscriptions/{DefaultContext.Subscription.Id}", AssessmentName).GetAwaiter().GetResult().Body;
                psAssessments = assessments.ConvertToPSType();
                WriteObject(psAssessments, enumerateCollection: true);
                fetchedItems += psAssessments.Count;
                nextLink      = assessments?.NextPageLink;
                while (!string.IsNullOrWhiteSpace(nextLink) && fetchedItems < MaxItemsToFetch)
                {
                    assessments   = SecurityCenterClient.SubAssessments.ListNextWithHttpMessagesAsync(nextLink).GetAwaiter().GetResult().Body;
                    psAssessments = assessments.ConvertToPSType();
                    WriteObject(psAssessments, enumerateCollection: true);
                    fetchedItems += psAssessments.Count;
                    nextLink      = assessments?.NextPageLink;
                }
                break;

            case ParameterSetNames.SubscriptionLevelResource:
            case ParameterSetNames.ResourceIdLevelResource:
                var assessment = SecurityCenterClient.SubAssessments.GetWithHttpMessagesAsync(AssessedResourceId ?? $"subscriptions/{DefaultContext.Subscription.Id}", AssessmentName, Name).GetAwaiter().GetResult().Body;
                WriteObject(assessment.ConvertToPSType(), enumerateCollection: false);
                break;

            case ParameterSetNames.ResourceId:
                assessment = SecurityCenterClient.SubAssessments.GetWithHttpMessagesAsync(AzureIdUtilities.GetExtendedResourceId(ResourceId), AzureIdUtilities.GetAssessmentResourceName(ResourceId), AzureIdUtilities.GetResourceName(ResourceId)).GetAwaiter().GetResult().Body;
                WriteObject(assessment.ConvertToPSType(), enumerateCollection: false);
                break;

            default:
                throw new PSInvalidOperationException();
            }
        }