Pester Script hilfe?
Hey, kann mir jemand sagen, wiso bei diesem Pester-Script Fehlermeldungen kommen? Pester-Script: Import-Module Pester BeforeAll { . $PSCommandPath.Replace('.Tests.ps1','.ps1') } $CsvContent = @" FirstName,LastName,Username John,Doe,jdoe Jane,Smith,jsmith Alex,Johnson,ajohnson "@ $Csvfile = ".\UserList.csv" $CsvContent | Out-File -FilePath $Csvfile Describe "AD User Import Script" { BeforeAll { Mock -CommandName Get-ADUser -MockWith { param ($Filter) if ($Filter -like "*jdoe*") { return [PSCustomObject]@{ SamAccountName = "jdoe" } } return $null } Mock -CommandName New-ADUser -MockWith { param ($Params) Write-Host "Mock: New-ADUser with params: $Params" } $Users = Import-Csv $Csvfile } It "sollte Benutzer aus der CSV-Datei importieren" { $Users.Count | Should -Be 3 } It "sollte einen neuen Benutzer im AD erstellen, wenn der Benutzer nicht existiert" { $User = $Users | Where-Object { $_.Username -eq "jsmith" } . $PSCommandPath -Csvfile $Csvfile Assert-MockCalled -CommandName New-ADUser -Times 1 -Exactly -Scope It } It "sollte keinen neuen Benutzer erstellen, wenn der Benutzer bereits existiert" { $User = $Users | Where-Object { $_.Username -eq "jdoe" } . $PSCommandPath -Csvfile $Csvfile Assert-MockCalled -CommandName New-ADUser -Times 0 -Scope It } It "sollte die richtigen Parameter für New-ADUser verwenden" { $User = $Users | Where-Object { $_.Username -eq "ajohnson" } . $PSCommandPath -Csvfile $Csvfile Assert-MockCalled -CommandName New-ADUser -ParameterFilter { $Params.SamAccountName -eq "ajohnson" -and $Params.UserPrincipalName -eq "ajohnson@PowerShell.local" -and $Params.Path -eq "OU=Benutzer,DC=PowerShell,DC=local" } -Times 1 -Exactly -Scope It } } afterall { Remove-Item -Path $Csvfile } Script: $Csvfile = ".\UserList.csv" $Users = Import-Csv $Csvfile $Password = "TFBern_3013" Import-Module ActiveDirectory foreach ($User in $Users) { try { if (Get-ADUser -Filter "SamAccountName -eq '$($User.Username)'" -ErrorAction SilentlyContinue) { Write-Host "Ein Benutzer mit dem Benutzernamen $($User.Username) existiert bereits im Active Directory." -ForegroundColor Yellow } else { $NewUserParams = @{ Name = "$($User.FirstName) $($User.LastName)" GivenName = $User.FirstName Surname = $User.LastName DisplayName = $User.Username SamAccountName = $User.Username UserPrincipalName = "$($User.Username)@PowerShell.local" Path = "OU=Benutzer,DC=PowerShell,DC=local" AccountPassword = (ConvertTo-SecureString $Password -AsPlainText -Force) Enabled = $true ChangePasswordAtLogon = $true } New-ADUser @NewUserParams Write-Host "Der Benutzer $($User.Username) wurde erfolgreich erstellt." -ForegroundColor Green } } catch { Write-Host "Fehler beim Erstellen des Benutzers $($User.Username) - $($_.Exception.Message)" -ForegroundColor Red } }