###################################################################### ###免責事項 ###################################################################### ### 本サンプルスクリプトは、サンプルとして提供されるものであり、 ### 製品の実運用環境で使用されることを前提に提供されるものでは ### ありません。 ### ### 本サンプルコードおよびそれに関連するあらゆる情報は、「現状 ### のまま」で提供されるものであり、商品性や特定の目的への適合性 ### に関する黙示の保証も含め、明示・黙示を問わずいかなる保証も付 ### されるものではありません。 ### ### マイクロソフトは、お客様に対し、本サンプルコードを使用および ### 改変するための ### 非排他的かつ無償の権利ならびに本サンプルコードをオブジェクト ### コードの形式で ### 複製および頒布するための非排他的かつ無償の権利を許諾します。 ### ### 但し、お客様は、(1)本サンプルコードが組み込まれたお客様の ### ソフトウェア製品のマーケティングのためにマイクロソフトの会社 ### 名、ロゴまたは、商標を用いないこと、(2)本サンプルコードが ### 組み込まれたお客様のソフトウェア製品に有効な著作権表示をする ### こと、および(3)本サンプルコードの使用または頒布から生じる ### あらゆる 損害(弁護士費用を含む)に関する請求または訴訟につ ### いて、マイクロソフトおよびマイクロソフトの取引業者に対し補償 ### し、損害を与えないことに同意するものとします。 ###################################################################### [CmdletBinding(SupportsShouldProcess=$true)] Param ( [Parameter(Mandatory=$true)] [String]$StorageAccountName, [Parameter(Mandatory=$true)] [String]$TableName, [Parameter(Mandatory=$true)] [String]$ResourseGroupName, [Parameter(Mandatory=$true)] [DateTime]$StartTime, [Parameter(Mandatory=$true)] [DateTime]$EndTime ) #ログインとサブスクリプションを指定 Login-AzureRmAccount $mySub = Get-AzureRmSubscription | Out-GridView -Title "Select an Azure Subscription ..." -PassThru Select-AzureRmSubscription -SubscriptionId $mySub.Id #AzurePowerShellのモジュールがあるかを確認する If((Get-Module -ListAvailable Azure) -eq $null) { Write-Warning "Windows Azure PowerShell module not found! Please install from http://www.windowsazure.com/en-us/downloads/#cmd-line-tools" } Else { If($StorageAccountName) { Get-AzureRmStorageAccount -StorageAccountName $StorageAccountName -ResourceGroupName $ResourseGroupName -ErrorAction SilentlyContinue ` -ErrorVariable IsExistStorageError | Out-Null Set-AzureRmCurrentStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourseGroupName #ストレージアカウントが存在するかを確認する If($IsExistStorageError.Exception -eq $null) { If($TableName) { Get-AzureStorageTable -Name $TableName -ErrorAction SilentlyContinue ` -ErrorVariable IsExistTableError | Out-Null #テーブルが存在するかを確認する If($IsExistTableError.Exception -eq $null) { #ストレージアカウントキーを取得する $Keys = Get-AzureRmStorageAccountKey -StorageAccountName $StorageAccountName -ResourceGroupName $ResourseGroupName $StorageAccountKey = $Keys[0].Value #データ削除のクエリを作成する $Creds = New-Object Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("$StorageAccountName","$StorageAccountKey") $CloudStorageAccount = New-Object Microsoft.WindowsAzure.Storage.CloudStorageAccount($Creds, $true) $CloudTableClient = $CloudStorageAccount.CreateCloudTableClient() $Table = $CloudTableClient.GetTableReference($TableName) $Query = New-Object "Microsoft.WindowsAzure.Storage.Table.TableQuery" $Datas = $Table.ExecuteQuery($Query) $Num = 0 #データの削除をする $Datas | Where{$_.TimeStamp.DateTime -ge $StartTime -and $_.TimeStamp.DateTime -le $EndTime}|` Foreach{Write-Host "Deleting the entity whose ETag is '$($_.ETag)'."; If($PSCmdlet.ShouldProcess("ETag of entity:'$($_.ETag)'","Delete the entity")){$Table.Execute([Microsoft.WindowsAzure.Storage.Table.TableOperation]::Delete($_))|Out-Null};$Num++} Write-host "Totally deleted $Num entities in '$TableName' Table Storage." } Else { Write-Warning "Cannot find blob '$TableName' because it does not exist. Please make sure thar the name of table is correct." } } } Else { Write-Warning "Cannot find storage account '$StorageAccountName' because it does not exist. Please make sure thar the name of storage is correct." } } }