Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 自动化SQL数据仓库(暂停和恢复)_Powershell - Fatal编程技术网

Powershell 自动化SQL数据仓库(暂停和恢复)

Powershell 自动化SQL数据仓库(暂停和恢复),powershell,Powershell,使用powershell自动执行SQL DWH暂停和恢复。 注意:我将发布对此的答案。[CmdletBinding(DefaultParametersetName='None')] [CmdletBinding(DefaultParametersetName='None')] Param ( [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $AzureSubscriptionId

使用powershell自动执行SQL DWH暂停和恢复。 注意:我将发布对此的答案。

[CmdletBinding(DefaultParametersetName='None')]
[CmdletBinding(DefaultParametersetName='None')]
Param 
(    
    [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
    [String] 
    $AzureSubscriptionId, 
    [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
    [String] 
    $AzureDataWareHouseList="All", 
    [Parameter(Mandatory=$true)][ValidateSet("Suspend","Resume")] 
    [String] 
    $Action 
)

function PauseAzureDWH
{
    Param
    (
    [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
    [String] 
    $AzureSubscriptionId, 
    [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
    [String] 
    $AzureDataWareHouseList="All", 
    [Parameter(Mandatory=$true)][ValidateSet("Suspend","Resume")] 
    [String] 
    $Action
    )
    try     
    {

    Login-AzureRmAccount
    Select-AzureRmSubscription -SubscriptionId $AzureSubscriptionId 

    if($AzureDataWareHouseList -ne "All") 
    {
        $AzureDWHList = @()
        $AzureDWHTotalList = $AzureDataWareHouseList.Split(",") 
        foreach($DWHitem in $AzureDWHTotalList)
        {
            $DWH = "*$DWHitem*"
            $DWH = Get-AzureRmResource | Where-Object ResourceName -like $DWH
            if($DWH -ne $Null)
            {
                $dwc = $DWH.ResourceName.split("/")
                # splat reused parameter lists
                $ThisDW = @{
                'ResourceGroupName' = $DWH.ResourceGroupName
                'ServerName' = $dwc[0]
                'DatabaseName' = $dwc[1]
                }
                $AzureDWHList += $ThisDW
            }
            else
            {
                Write-Warning "Given DataWarehouse '$DWHitem' is not found in given subscription"
            }
        }
    }
    else 
    {
        [array]$TotalDataWareHouseList = Get-AzureRmResource | Where-Object ResourceType -EQ "Microsoft.Sql/servers/databases" | Where-Object Kind -Like "*datawarehouse*"
        $AzureDWHList = @()
        foreach($DWH in $TotalDataWareHouseList)
        {
            $dwc = $DWH.ResourceName.split("/")
            $ThisDW = @{
            'ResourceGroupName' = $DWH.ResourceGroupName
            'ServerName' = $dwc[0]
            'DatabaseName' = $dwc[1]
            }
            $AzureDWHList += $ThisDW
        }
    }

    <# foreach($AzureDWHItem in $AzureDWHList) 
    {
        if(!(Get-AzureRmResource | ? {$_.Name -eq $AzureDWHItem.ServerName}) ) 
        {
            throw " AzureDWH : [$AzureDWHItem] - Does not exist! - please Check your inputs " 
        }
    } #>

    if($Action -eq "Suspend") 
    {
        Write-Output "Suspending Azure DataWareHouses"; 
        foreach ($AzureDWH in $AzureDWHList) 
        { 
            $status = Get-AzureRmSqlDatabase @AzureDWH | Select Status
            if($status.Status -eq "Online")
            {
                Suspend-AzureRmSqlDatabase @AzureDWH
            }
        }
    }
    else 
    { 
        Write-Output "Resuming Azure DataWareHouses"; 
        foreach ($AzureDWH in $AzureDWHList) 
        {
            $status = Get-AzureRmSqlDatabase @AzureDWH | Select Status
            if($status.Status -eq "Paused")
            {
                Resume-AzureRmSqlDatabase @AzureDWH
            }
        }
    }
}

catch
{
    Write-Error " Exception while getting resource details and writing back to CSV"
    Write-Error $_.Exception.message
    Write-Error " ErrorStack: $Error[0] "
    exit 1

}
}

PauseAzureDWH -AzureSubscriptionId $AzureSubscriptionId -AzureDataWareHouseList $AzureDataWareHouseList -Action $Action
Param ( [参数(必需=$true)][ValidateNotNullOrEmpty()] [字符串] $AzureSubscriptionId, [参数(必需=$true)][ValidateNotNullOrEmpty()] [字符串] $AzureDataWareHouseList=“全部”, [参数(必需=$true)][ValidateSet(“暂停”、“恢复”)] [字符串] $Action ) 函数PauseAzureDWH { Param ( [参数(必需=$true)][ValidateNotNullOrEmpty()] [字符串] $AzureSubscriptionId, [参数(必需=$true)][ValidateNotNullOrEmpty()] [字符串] $AzureDataWareHouseList=“全部”, [参数(必需=$true)][ValidateSet(“暂停”、“恢复”)] [字符串] $Action ) 尝试 { 登录AzureRmAccount 选择AzureRmSubscription-SubscriptionId$AzureSubscriptionId if($AzureDataWareHouseList-ne“全部”) { $AzureDWHList=@() $AzureDWHTotalList=$AzureDataWareHouseList.Split(“,”) foreach($AzureDwhotallist中的DWHitem) { $DWH=“*$DWHitem*” $DWH=获取AzureRmResource |其中对象ResourceName-类似于$DWH 如果($DWH-ne$Null) { $dwc=$DWH.ResourceName.split(“/”) #splat重用的参数列表 $ThisDW=@{ “ResourceGroupName”=$DWH.ResourceGroupName “服务器名”=$dwc[0] “DatabaseName”=$dwc[1] } $AzureDWHList+=$ThisDW } 其他的 { 写入警告“在给定订阅中找不到给定数据仓库“$DWHitem” } } } 其他的 { [array]$TotalDataWareHouseList=Get-AzureRmResource | Where-Object-ResourceType-EQ“Microsoft.Sql/servers/databases”| Where-Object-Kind-Like“*数据仓库*” $AzureDWHList=@() foreach($TotalDataWareHouseList中的DWH) { $dwc=$DWH.ResourceName.split(“/”) $ThisDW=@{ “ResourceGroupName”=$DWH.ResourceGroupName “服务器名”=$dwc[0] “DatabaseName”=$dwc[1] } $AzureDWHList+=$ThisDW } } 如果($Action-eq“Suspend”) { 写入输出“暂停Azure数据仓库”; foreach($AzureDWH中的AzureDWH) { $status=获取AzureRmSqlDatabase@AzureDWH |选择状态 如果($status.status-eq“在线”) { 挂起AzureRmSqlDatabase@AzureDWH } } } 其他的 { 写入输出“恢复Azure数据仓库”; foreach($AzureDWH中的AzureDWH) { $status=获取AzureRmSqlDatabase@AzureDWH |选择状态 如果($status.status-eq“暂停”) { 恢复AzureRmSqlDatabase@AzureDWH } } } } 抓住 { 写入错误“获取资源详细信息并写回CSV时出现异常” 写入错误$\异常.message 写入错误“ErrorStack:$Error[0]” 出口1 } } PauseAzureDWH-AzureSubscriptionId$AzureSubscriptionId-AzureDataWareHouseList$AzureDataWareHouseList-Action$Action
你到底想做什么,到目前为止你尝试了什么,你的问题在哪里?如果你计划自己回答问题,那么问题应该更加具体化-否则你可能会在问题上失去更多的代表性,而不是在答案上获得更多。