42 lines
1.8 KiB
PowerShell
42 lines
1.8 KiB
PowerShell
$repositoryRoot = (Resolve-Path (Join-Path $PSScriptRoot '..')).Path
|
|
$localUserScriptPath = Join-Path $repositoryRoot 'scripts\Set-SguStandardLocalUser.ps1'
|
|
$enrollmentTestScriptPath = Join-Path $repositoryRoot 'scripts\Test-SguClientEnrollment.ps1'
|
|
|
|
$tokens = $null
|
|
$parseErrors = $null
|
|
$scriptAst = [Management.Automation.Language.Parser]::ParseFile(
|
|
$localUserScriptPath,
|
|
[ref]$tokens,
|
|
[ref]$parseErrors)
|
|
if ($parseErrors.Count -gt 0) {
|
|
throw ($parseErrors -join [Environment]::NewLine)
|
|
}
|
|
|
|
$descriptionAssignment = $scriptAst.Find({
|
|
param($node)
|
|
$node -is [Management.Automation.Language.AssignmentStatementAst] -and
|
|
$node.Left.Extent.Text -eq '$description'
|
|
}, $true)
|
|
$description = $descriptionAssignment.Right.Extent.Text.Trim("'")
|
|
|
|
Describe 'SGU Windows client enrollment scripts' {
|
|
It 'keeps the local-user description within the Windows 10 limit' {
|
|
($description.Length -le 48) | Should Be $true
|
|
}
|
|
|
|
It 'declares the managed local student account' {
|
|
$source = Get-Content -LiteralPath $localUserScriptPath -Raw
|
|
$source | Should Match "\$userName = 'alumno'"
|
|
$source | Should Match "\$plainTextPassword = 'ingenieria'"
|
|
}
|
|
|
|
It 'uses the cross-version Windows account flag for password expiration' {
|
|
$localUserSource = Get-Content -LiteralPath $localUserScriptPath -Raw
|
|
$enrollmentTestSource = Get-Content -LiteralPath $enrollmentTestScriptPath -Raw
|
|
$localUserSource | Should Match '\$passwordNeverExpiresFlag = 0x10000'
|
|
$enrollmentTestSource | Should Match '\$passwordNeverExpiresFlag = 0x10000'
|
|
$localUserSource | Should Not Match '\$verifiedUser\.PasswordNeverExpires'
|
|
$enrollmentTestSource | Should Not Match '\$standardLocalUser\.PasswordNeverExpires'
|
|
}
|
|
}
|