PSRechenzentrum.psm1
<#
.Synopsis Führt Initialisierungen durch und enthält Helper-Functions #> #requires -RunAsAdministrator #requires -Version 5.0 # In der Psd1-Datei muss die Psm1-Datei über RootModule und nicht # NestedModule eingebunden werden! Set-StrictMode -Version Latest Import-LocalizedData -BindingVariable MsgTable -FileName PSRechenzentrumMessages.psd1 function Start-Server { [CmdletBinding()] param([String]$ServerId) $Server = $RZ.ServerListe.Where{$_.Id -eq $ServerId} $Server.Start() Write-Verbose $Script:MsgTable.ServerStarted } function Stop-Server { [CmdletBinding()] param([String]$ServerId) $Server = $RZ.ServerListe.Where{$_.Id -eq $ServerId} $Server.Stop() Write-Verbose $Script:MsgTable.ServerStopped } function Initialize-Server { [CmdletBinding()] param([String]$ServerId) $Server = $RZ.ServerListe.Where{$_.Id -eq $ServerId} $Server.Initialize() Write-Verbose $Script:MsgTable.ServerInitialized } function Start-TestMode { $K1 = [Konto]::new("Abc GmbH") $K2 = [Konto]::new("Def GmbH") $K3 = [Konto]::new("Xyz GmbH") $S1 = [Server]::new("HP1", "HP Pro Liant", "Small", $K1) $S2 = [Server]::new("HP", "HP Pro Liant", "Medium", $K2) $S3 = [Server]::new("Dell1", "Dell PowerEdge 2000", "Big", $K3) $Script:RZ = [Rechenzentrum]::New("Abc RZ") $RZ.AddServer($S1) $RZ.AddServer($S2) $RZ.AddServer($S3) # Den ersten Server starten Initialize-Server -ServerId $RZ.Serverliste[0].Id -Verbose Start-Server -ServerId $RZ.Serverliste[0].Id -Verbose # Den zweiten Server starten Initialize-Server -ServerId $RZ.Serverliste[2].Id -Verbose Start-Server -ServerId $RZ.Serverliste[2].Id -Verbose $RZ } # Uses sample data from json files function Start-TestMode2 { $JsonPath = Join-Path -Path $PSScriptRoot -ChildPath "AccountData.json" $Accounts = Get-Content -Path $JsonPath | ConvertFrom-Json $JsonPath = Join-Path -Path $PSScriptRoot -ChildPath "ServerData.json" $Servers = Get-Content -Path $JsonPath | ConvertFrom-Json $Script:RZ = [Rechenzentrum]::New("Virtual X Corp") $i = 0 $Servers.ForEach{ $S = [Server]::new($_.Id, $_.Description, $_.Size, $null) $S.Konto = [Konto]::new($Accounts[$i++].Description) $RZ.AddServer($S) } # Den ersten Server starten Initialize-Server -ServerId $RZ.Serverliste[0].Id -Verbose Start-Server -ServerId $RZ.Serverliste[0].Id -Verbose # Den zweiten Server starten Initialize-Server -ServerId $RZ.Serverliste[2].Id -Verbose Start-Server -ServerId $RZ.Serverliste[2].Id -Verbose $RZ } |