Update-BePowerShellContent.ps1
function Update-BePowerShellContent { <# .SYNOPSIS First Testfunction .DESCRIPTION Mit dieser Funktion werden die Daten von BePowershell geholt. Hierbei wird ein Merge ausgeführt. Es ist zwingend notwendig das ein Azure-Account für den Datenspeicher verwendet wird. .INPUTS String String .OUTPUTS None .EXAMPLE Get-BePowerShellContent Ausgabe Ausgabe .EXAMPLE Get-BePowerShellContent Ausgabe Ausgabe .NOTES #> [CmdletBinding()] param( #Pfad zum Speicherort für die abzulegenden Daten [Parameter(Mandatory = $false)] $Path = $BePowershellLocalPath, #Containername aus welchem Quelldateien kopiert werden [Parameter(Mandatory = $false)] [string]$BlobContainerName = 'master', #Dieser Schalter erzwingt die neueingabe von Benutzerdaten bei der Anmeldung an Azure [Parameter(Mandatory = $false)] [switch]$ForceConnection, #Dieser Schalter deaktviert das automatische Eintragen des Download-Ziels in $env:PsModulePath [Parameter(Mandatory = $false)] [switch]$NoProfileModification, #Mit diesem Parameter lassen sich einzelne Dateien aus einem Blob-Storage-Container herunterladen (anstatt des gesamten Containers) [Parameter(Mandatory = $false)] [string[]]$FileName, #switch for system wide installation [Parameter(Mandatory = $false)] [switch]$ToSystem ) Begin { if (!(get-module Az.Storage -ListAvailable)) { Start-Process PowerShell.exe -Verb runas -ArgumentList '-Command "& { Install-Module Az -AllowClobber -Force -Verbose ; Write-Host done ; Start-Sleep -Seconds 5 ; exit }"' -Wait } if (!$ToSystem) { $PsPath = $Path.TrimEnd("\") } else { $PsPath = "$env:windir\System32\WindowsPowershell\v1.0\Modules\" } } Process { if (!$ConnectionAzAccount -or $ForceConnection) { if (!$AzTenantId_BeTerna -or !$AzSubscriptionId_BeTerna) { if (Get-Module -ListAvailable BeAzure -ErrorAction SilentlyContinue) { Import-Module BeAzure -DisableNameChecking -WarningAction SilentlyContinue $global:AzTenantId_BeTerna = $AzureEnvironment["be-terna"].TenantId $global:AzSubscriptionId_BeTerna = $AzureEnvironment["be-terna"].SubscriptionId } else { $global:AzTenantId_BeTerna = Read-Host -Prompt "enter BE-terna Azure Tenant ID" $global:AzSubscriptionId_BeTerna = Read-Host -Prompt "enter BE-terna Azure Subscription ID" } } $global:ConnectionAzAccount = Connect-AzAccount -TenantId $global:AzTenantId_BeTerna -Subscription $global:AzSubscriptionId_BeTerna } if ($ConnectionAzAccount) { $StorageAcc = Get-AzStorageAccount -ResourceGroupName $global:AzResGrpName_StorageBlob -Name $global:AzStorageAccountName $StorageContext = $StorageAcc.Context $StorageContainer = Get-AzStorageContainer -Context $StorageContext | Where-Object -FilterScript { $_.Name -eq $BlobContainerName } $Blobs = Get-AzStorageBlob -Container $StorageContainer.Name -Context $StorageContext if ($Blobs -and !$ToSystem) { $null = Remove-Item $PsPath -Recurse -Force } foreach ($Blob in $Blobs) { $DestPath = Join-Path -Path $PsPath -ChildPath ($Blob.Name) $null = New-Item ($DestPath) -ItemType File -Force if ($FileName) { if ($FileName -contains (($Blob.Name.split("/")[-1]))) { Get-AzStorageBlobContent -Blob $Blob.Name -Container $StorageContainer.Name -Context $StorageContext -Destination $DestPath -Force } else { continue } } else { Get-AzStorageBlobContent -Blob $Blob.Name -Container $StorageContainer.Name -Context $StorageContext -Destination $DestPath -Force } } if (!$NoProfileModification) { $ModulePaths = $env:PSModulePath.split(';') if ($ModulePaths -notcontains $PsPath -and !$ToSystem) { $Command = { $PsPath = $args[0] $originalpaths = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PSModulePath).PSModulePath $newPath = ($originalpaths + ';' + $PsPath) Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PSModulePath -Value $newPath } Start-Process powershell -verb runas -ArgumentList (' -Command "& {' + $Command + '}" '), $PsPath } } } } End { Write-Output -InputObject $PsPath Get-Module BeHub | Where-Object { $_.Path -ne "$env:USERPROFILE\Documents\BePowerShell\BeHub\loader.psm1" } | Uninstall-Module -Force -ErrorAction SilentlyContinue } } # SIG # Begin signature block # MIIP/gYJKoZIhvcNAQcCoIIP7zCCD+sCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUJ5AAN1tU7Q559M7/1TYptcko # pmuggg1VMIIGgTCCBGmgAwIBAgITZQAAAAshjJ4TrsC61QAAAAAACzANBgkqhkiG # 9w0BAQsFADBCMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxFTATBgoJkiaJk/IsZAEZ # FgV0ZXJuYTESMBAGA1UEAxMJVFJOUk9PVENBMB4XDTE3MDkwNDEzMTIwMFoXDTI3 # MDkwNDEzMjIwMFowWzETMBEGCgmSJomT8ixkARkWA2NvbTEYMBYGCgmSJomT8ixk # ARkWCGJlLXRlcm5hMRQwEgYKCZImiZPyLGQBGRYEY29ycDEUMBIGA1UEAxMLQkUt # dGVybmEtQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDs/keeRFkb # 5gpRrxtgP7Gikp6q1460/7Rzt7b8eGrzGSy6QzJB2aD7bZ8dj/b9DdNiAG/PJ/Yy # m935OGjV6Tdu01SLkq2I9pw+ydpb+HDHaYt10CTM+5d6sCpptFa7+oNTnIB5L84y # vv1TYEEWt65dO/4ECTEExwZ+h0AV9QDQN8KfQ14POFY/b3m9JfwByK9ajxTTebT9 # oNbh3u7VOUaVDVWEGN6DlAc323G7MgrjrU41RVPUMQAgJTS0XasqaAq+SEaKzM3c # CBB5XKUmdE2upg9VlvYB1VC3pVT2YYqbEFR7osZgbkoJkrOabsXLL8KKg16uq65r # zTSOyDfRu7olAgMBAAGjggJVMIICUTASBgkrBgEEAYI3FQEEBQIDAwADMCMGCSsG # AQQBgjcVAgQWBBQLk1/35PxB+Ojjv78gTbmPxXI2rTAdBgNVHQ4EFgQUiLx4Z/Xr # rg/SZ68evLTX9YeO+4wwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0P # BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULtzBQVWpM0QmWgyC # MaFEn18ikeYwgcQGA1UdHwSBvDCBuTCBtqCBs6CBsIYxaHR0cDovL2liY20uYmUt # dGVybmEuY29tL0NlcnRFbnJvbGwvVFJOUk9PVENBLmNybIZ7bGRhcDovLy9DTj1U # Uk5ST09UQ0EsQ049VFJOUk9PVENBLENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBT # ZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPWNvcnAsREM9 # YmUtdGVybmEsREM9Y29tMIHVBggrBgEFBQcBAQSByDCBxTBHBggrBgEFBQcwAoY7 # aHR0cDovL2liY20uYmUtdGVybmEuY29tL0NlcnRFbnJvbGwvVFJOUk9PVENBX1RS # TlJPT1RDQS5jcnQwegYIKwYBBQUHMAKGbmxkYXA6Ly8vQ049VFJOUk9PVENBLENO # PUFJQSxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1D # b25maWd1cmF0aW9uLERDPWNvcnAsREM9YmUtdGVybmEsREM9Y29tMA0GCSqGSIb3 # DQEBCwUAA4ICAQCBAi/Ux7oFuWHxXc2x5qYU8TmNByWWOTvGgPkV/1puUaVWtnMa # oVOoMdecrSYc7eRiUQI0yZBejvZkgJQq61HvNRQocw+OCAatwmHZRSVR+PYf5lAz # DCZRF2Aa/h0oFRUr9t9+JMMy9HaealHSReUBZek0lVzC1TrtLK2Ol5u7seWNNqOg # 2H553vA5So2ObkKVqlRRinkKNCraD6FRWYxEZK+VSiHd54QxP79CjiOFFQ96lx8Z # pSifHQYIbKcULxvxKvkoI/jgoHKnpkLmi3PpMSbVlZLLpM94ox0jJfyNv2g4hq+A # iTiCa5lAYhJk2vUfzvz69UZYdMJ1YIAaQ3pcAeFAdxdgt8H5AooJP7qKe6xYqN3G # W8Hx5hTCceo4m6HlTiDuKDFTJMUyTvXdPQ0INWfQlQaBOiJsFRgaiZI7fV0bVAiS # cuI8pOYkUp3QWy1iPwyEiGhGmrHSlL5IdGTMgpHRyW2yREhVQ2cx+r7JpE9V29Tw # 7PJgh/awoQ8ayLXqBm6Z9rPh3rgIyo4yq7iS84mxzeCxUHEqRxcFhghepO9qLlil # cLkScC4tH77i8DRvakwdu+rz+9qWAkARZit6ZkMHMtxVUvGTXRe4XYCJKT6/Uh9N # jYcBtYLoynsTUY+bRqXmFyF7PbakBaMcGjiUaeRzvXwXQ1YCt6NH9S7TKzCCBsww # ggW0oAMCAQICE3EAAC9Jj/4Vd7NbrzcAAwAAL0kwDQYJKoZIhvcNAQELBQAwWzET # MBEGCgmSJomT8ixkARkWA2NvbTEYMBYGCgmSJomT8ixkARkWCGJlLXRlcm5hMRQw # EgYKCZImiZPyLGQBGRYEY29ycDEUMBIGA1UEAxMLQkUtdGVybmEtQ0EwHhcNMjAw # MjI4MDg0ODAwWhcNMjUwMjI2MDg0ODAwWjCBoTETMBEGCgmSJomT8ixkARkWA2Nv # bTEYMBYGCgmSJomT8ixkARkWCGJlLXRlcm5hMRQwEgYKCZImiZPyLGQBGRYEY29y # cDERMA8GA1UECxMIQkUtdGVybmExDjAMBgNVBAsTBVVzZXJzMQswCQYDVQQLEwJE # RTEPMA0GA1UECxMGRXJmdXJ0MRkwFwYDVQQDExBTaWViZXJ0LCBNYXRoaWFzMIIB # IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnDzEixzGjhbo+LA+MhVI/dGg # Hf0yTdhFzhUJ0tYsjQkYlc1y1HvDt+HSAoiv/BmXv+BTu3cSEWILAwUaa09YgeFh # juuEXzZz6fLveDEJkxtR61I+6MY1piavFk3YtCCO2O24rhTh5q5C6uUntZop4k6q # IVJfetT4wG4vf8OCwvr824TLQO+LcT9dmvLw09/oAmNKjEH1MDYgB3CX+AUtewoY # blcNcYWRykj5EDiiqRFPRtxRTENNOjxZLSm2YKN47eO/b8tElk5d7/duzfLKLsh4 # noX58B9kWW3R+vKOE9GX1I+raLw0wET4+OaKq9rUEeoj5gHU5CeVI8ofJwO7yQID # AQABo4IDQDCCAzwwOwYJKwYBBAGCNxUHBC4wLAYkKwYBBAGCNxUIhL2LcYK9jn/t # ny+Ei6ZhhKTucXf1iTCG14F6AgFkAgEHMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA4G # A1UdDwEB/wQEAwIHgDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsGAQUFBwMDMB0GA1Ud # DgQWBBS8/e5oHP1ZWV7+jwVsI0+edsYhXDAfBgNVHSMEGDAWgBSIvHhn9euuD9Jn # rx68tNf1h477jDCCARMGA1UdHwSCAQowggEGMIIBAqCB/6CB/IaBwWxkYXA6Ly8v # Q049QkUtdGVybmEtQ0EoMyksQ049QkVUSUJLQ0EwMSxDTj1DRFAsQ049UHVibGlj # JTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixE # Qz1jb3JwLERDPWJlLXRlcm5hLERDPWNvbT9jZXJ0aWZpY2F0ZVJldm9jYXRpb25M # aXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGNmh0dHA6 # Ly9pYmNtLmJlLXRlcm5hLmNvbS9DZXJ0RW5yb2xsL0JFLXRlcm5hLUNBKDMpLmNy # bDCCASkGCCsGAQUFBwEBBIIBGzCCARcwgbMGCCsGAQUFBzAChoGmbGRhcDovLy9D # Tj1CRS10ZXJuYS1DQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs # Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWJlLXRlcm5h # LERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNh # dGlvbkF1dGhvcml0eTBfBggrBgEFBQcwAoZTaHR0cDovL2liY20uYmUtdGVybmEu # Y29tL0NlcnRFbnJvbGwvQkVUSUJLQ0EwMS5jb3JwLmJlLXRlcm5hLmNvbV9CRS10 # ZXJuYS1DQSgzKS5jcnQwNwYDVR0RBDAwLqAsBgorBgEEAYI3FAIDoB4MHG1hdGhp # YXMuc2llYmVydEBiZS10ZXJuYS5jb20wDQYJKoZIhvcNAQELBQADggEBAH61MBSW # PoK3Qxb/yXW9Qvftp8VtiawgNktsU2GTLD33IR6k7pb+Q2vkScNRfotLDrniDoj5 # WmEudoO6Z3SZfCQepWzMTKYFJPe5ml8nCAbVPVBn+W1DN0+x1bZLolZyG0PUzISF # yw1LrmGwp3SFvgDCOGhiTH2Syh5iYUMmVjg7fahK9zC/z66KRzPkrJrAjuxP1Yr3 # 4KhHfhsGbaTBw6Bj21GkY0ewEnitEFOwnE2NAfaON+uHamkusf3oga4NrvFOnMlC # vXXGvUsYnT4ES5LtzZyytmaziRXOfTsmQ67qnqsZwYGXS5VpI/vWuC5xTiHdQIWp # +MYoFxVo83D98i4xggITMIICDwIBATByMFsxEzARBgoJkiaJk/IsZAEZFgNjb20x # GDAWBgoJkiaJk/IsZAEZFghiZS10ZXJuYTEUMBIGCgmSJomT8ixkARkWBGNvcnAx # FDASBgNVBAMTC0JFLXRlcm5hLUNBAhNxAAAvSY/+FXezW683AAMAAC9JMAkGBSsO # AwIaBQCgeDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEM # BgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqG # SIb3DQEJBDEWBBSUiPIPEDM1KGWmyhNEhTKjW/zoqzANBgkqhkiG9w0BAQEFAASC # AQATv/ULwo342E+dkPLBe6J63JbtiwlPsvgmXHC022aJpYusV4maEIljDHVv4UkV # 0eYH6jljbm/6C0F9i135q+wRgdrgLqfpBeAxlFr03LO2xqYe6+XBLUZc4eVd7aWo # SlgLpNFUuTfZx8ZYTqXpIpay+91RwoCV+45Jhi8k8YMQM5opIreDDdd8f+GCzMv6 # Stg0RXKF4D58e5U0eaWSsUYEUh3/7df5mTOvuRwzQBcfJKuXD0Iww+tXPUMWrYLM # w7zrxyDfOwKQqqSQEQBRKwfXuVXpW6FpKV3BjWEKYqBr6RyppACsDj2Io5KMsPKh # VpCtcvlZlGZZSx/0Qfx+cJxy # SIG # End signature block |