public override void ExecuteCmdlet() { SetUpDestinationChannel(); ICloudBlob destinationBlob = default(ICloudBlob); switch (ParameterSetName) { case NameParameterSet: destinationBlob = StartCopyBlob(SrcContainer, SrcBlob, DestContainer, DestBlob); break; case UriParameterSet: destinationBlob = StartCopyBlob(AbsoluteUri, DestContainer, DestBlob, Context); break; case SrcBlobParameterSet: destinationBlob = StartCopyBlob(ICloudBlob, DestContainer, DestBlob); break; case ContainerPipelineParameterSet: destinationBlob = StartCopyBlob(CloudBlobContainer.Name, SrcBlob, DestContainer, DestBlob); break; case DestBlobPipelineParameterSet: destinationBlob = StartCopyBlob(ICloudBlob, DestICloudBlob); break; } if (destinationBlob != null) { AccessCondition accessCondition = null; BlobRequestOptions options = null; //Make sure we use the dest channel destChannel.FetchBlobAttributes(destinationBlob, accessCondition, options, OperationContext); AzureStorageBlob azureBlob = new AzureStorageBlob(destinationBlob); //Make sure the dest context is piped out azureBlob.Context = DestContext; WriteObject(azureBlob); } }