Repository navigation
Expand file tree
/
Copy pathIntuneScriptLab.psd1
More file actions
95 lines (92 loc) · 4.62 KB
/
Copy pathIntuneScriptLab.psd1
File metadata and controls
95 lines (92 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
@{
# Module manifest for IntuneScriptLab
RootModule = 'IntuneScriptLab.psm1'
ModuleVersion = '0.31.0'
GUID = '3f6b2c9e-7d41-4a8f-9c2b-5e0d8a1f4b76'
Author = 'Jeffrey Stuhr'
CompanyName = ''
Copyright = '(c) 2026 Jeffrey Stuhr. All rights reserved.'
# Two lines, within the repository's 115-character limit; the README carries the long form
Description = @'
Test Intune scripts before Intune does: static rules, a runtime harness, Pester assertions, a Graph
pre-flight over the tenant's deployed scripts and readers for the agent's logs
'@
# The analyzer itself runs anywhere. The rules describe Windows PowerShell 5.1 behaviour
# because that is what the Intune Management Extension runs scripts with.
PowerShellVersion = '5.1'
CompatiblePSEditions = @('Desktop', 'Core')
RequiredModules = @()
FormatsToProcess = @('IntuneScriptLab.Format.ps1xml')
FunctionsToExport = @(
'Test-IntuneScript',
'Invoke-IntuneDetectionTest',
'Invoke-IntuneRemediationTest',
'Invoke-IntunePlatformScriptTest',
'Invoke-IntuneWin32AppTest',
'Invoke-IntuneRequirementTest',
'Test-IntuneWin32Rule',
'Test-IntuneWin32Requirement',
'Get-IntuneAgentLog',
'Get-IntuneAgentTimeline',
'Export-IntuneAgentDiagnostic',
'Get-IntuneAnalyzerRulePath',
'Test-IntuneDeployedScript',
'Compare-IntuneDeployedScript',
'Get-IntuneScriptHealth',
'Export-IntuneFindingSarif',
'Repair-IntuneScript',
'Test-IntuneAssignmentFilter',
'Assert-HaveIntuneStatus',
'Assert-BeIntuneDetected',
'Assert-NotBeIntuneDetected',
'Assert-HaveIntuneRunState',
'Assert-PassIntuneAnalysis',
'Assert-BeIntuneApplicable',
'Assert-NotBeIntuneApplicable'
)
CmdletsToExport = @()
VariablesToExport = @()
AliasesToExport = @(
'Should-HaveIntuneStatus',
'Should-BeIntuneDetected',
'Should-NotBeIntuneDetected',
'Should-HaveIntuneRunState',
'Should-PassIntuneAnalysis',
'Should-BeIntuneApplicable',
'Should-NotBeIntuneApplicable'
)
PrivateData = @{
PSData = @{
Tags = @('Intune', 'Remediation', 'Win32', 'PSScriptAnalyzer', 'Lint', 'Endpoint', 'Pester')
LicenseUri = 'https://github.com/fadwen/IntuneScriptLab/blob/main/LICENSE'
ProjectUri = 'https://github.com/fadwen/IntuneScriptLab'
ReleaseNotes = @'
0.31.0 - Assignment filter messages. The parser warns about a -contains value that is only
whitespace, which the service trims to nothing so the clause matches every device; a double
quote inside a value is refused with a message saying no escape exists and that -contains
or -startsWith on the parts around it is the way through. In exclude mode,
Test-IntuneAssignmentFilter and Test-IntuneDeployedScript say what a warning means for the
assignment: a clause that never matches excludes nobody, so the assignment reaches every
device in the group. The tenant-wide help example keeps to Windows filters. See
CHANGELOG.md.
0.30.0 - Invoke-IntuneDetectionTest, Invoke-IntuneRequirementTest and Invoke-IntuneWin32AppTest no
longer default -Architecture to x64, which Windows on ARM refuses; left out, it is the
device's 64-bit host (x64, or arm64 on ARM), the one the agent uses. Two Win32 fixes: the
launcher starts its child without NoDefaultCurrentDirectoryInExePath, a per-user cmd.exe
setting that made a bare install.cmd fail with "not recognized" although the agent's
cmd.exe finds it; and the 32-bit host warning also reads the batch file an install or
uninstall command names, where a powershell.exe call runs 32-bit just the same. See
CHANGELOG.md.
0.29.0 - A remediation that writes to stderr is a script error on the device whatever its exit code:
RemediationStatus 3, Graph scriptError, the error text attached, no post-detection.
Invoke-IntuneRemediationTest reported Recurred for that run since round 1; it reports Failed,
skips the post-detection and warns that the exit code was 0. A detection's stderr still changes
nothing. IslOutputIssue warns about Write-Error and an unguarded cmdlet in a remediation script,
with -ErrorAction Stop as the fix. Measured in user context on the lab device with five one-off
remediations, recorded as round 11 (REM-STDERR-*). See CHANGELOG.md.
Earlier versions, 0.1.0 to 0.28.0: CHANGELOG.md, which ships with the module.
'@
RequireLicenseAcceptance = $false
}
}
}