Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af301925e9 | ||
|
|
0ae20211c7 | ||
|
|
de32f6201c |
@@ -5,6 +5,17 @@ Versionierung folgt [Semantic Versioning](https://semver.org/lang/de/) — solan
|
||||
|
||||
---
|
||||
|
||||
## [0.1.35] - 2026-09-15
|
||||
|
||||
Settings-Catalog-Import-Fix und Update-Check hinter Proxy.
|
||||
|
||||
### Behoben
|
||||
|
||||
- **Settings-Catalog-Import** (400 „Property choiceSettingCollectionValue … does not match schema"): `choiceSettingCollectionValue` fehlte in der Array-Normalisierung. Beim JSON-Roundtrip unter PowerShell 5.1 wurde ein Ein-Element-`choiceSettingCollectionValue` zum Einzelobjekt entpackt und von Graph abgelehnt (z. B. „Default Defender Antivirus Policy"). Wird jetzt wie `group-`/`simpleSettingCollectionValue` behandelt.
|
||||
- **Update-Check hinter authentifiziertem Proxy** (HTTP 407): Der Versions-Check schlug hinter Unternehmens-Proxys (NTLM/Kerberos) still fehl, weil `Invoke-RestMethod` keine Anmeldeinformationen an den Proxy sendete. Die angemeldeten Windows-Credentials werden jetzt an den System-Proxy durchgereicht; optionaler expliziter Proxy über `settings.json → update.proxy`.
|
||||
|
||||
---
|
||||
|
||||
## [0.1.34] - 2026-09-14
|
||||
|
||||
Verwaltungsart in der Geräteliste, Autopilot-Zeitstempel im Detail.
|
||||
|
||||
@@ -189,7 +189,7 @@ $script:State = [pscustomobject]@{
|
||||
Session = @() # geplante Zuweisungen
|
||||
}
|
||||
|
||||
$script:ToolVersion = "0.1.34"
|
||||
$script:ToolVersion = "0.1.35"
|
||||
$script:BuildStamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||
|
||||
Write-Host ""
|
||||
|
||||
@@ -12,7 +12,7 @@ if (Test-Path "$x64Dotnet\dotnet.exe") {
|
||||
$env:DOTNET_ROOT = "C:\Program Files\dotnet"
|
||||
}
|
||||
|
||||
$version = "0.1.34"
|
||||
$version = "0.1.35"
|
||||
$src = "\\Mac\Home\ClaudePRJ\Intune Manager"
|
||||
$stage = "$env:TEMP\IntuneManagerStage"
|
||||
$installerDir = "$src\installer"
|
||||
|
||||
+19
-1
@@ -183,8 +183,26 @@ function Get-UpdateCheckEndpoint {
|
||||
if ($token) { $headers['Authorization'] = "token $token" }
|
||||
|
||||
try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 } catch {}
|
||||
|
||||
# Proxy: Hinter authentifizierten Unternehmens-Proxys (NTLM/Kerberos) scheitert
|
||||
# Invoke-RestMethod sonst mit "407 Proxyauthentifizierung erforderlich", weil
|
||||
# standardmaessig keine Anmeldeinformationen an den Proxy gesendet werden. Die
|
||||
# angemeldeten Windows-Credentials an den (System-)Proxy durchreichen. Optional
|
||||
# laesst sich ein expliziter Proxy ueber Settings.update.proxy setzen.
|
||||
$proxyArgs = @{}
|
||||
try {
|
||||
$rel = Invoke-RestMethod -Uri $api -Headers $headers -Method GET -TimeoutSec 8
|
||||
$proxyUrl = ''
|
||||
if ($script:Settings.update -and $script:Settings.update.proxy) { $proxyUrl = [string]$script:Settings.update.proxy }
|
||||
if ($proxyUrl) {
|
||||
$proxyArgs['Proxy'] = $proxyUrl
|
||||
$proxyArgs['ProxyUseDefaultCredentials'] = $true
|
||||
} elseif ([System.Net.WebRequest]::DefaultWebProxy) {
|
||||
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
|
||||
}
|
||||
} catch {}
|
||||
|
||||
try {
|
||||
$rel = Invoke-RestMethod -Uri $api -Headers $headers -Method GET -TimeoutSec 8 @proxyArgs
|
||||
$latest = ([string]$rel.tag_name).TrimStart('v','V')
|
||||
$out.latest = $latest
|
||||
$out.releaseUrl = [string]$rel.html_url
|
||||
|
||||
+1
-1
@@ -230,7 +230,7 @@ function ConvertTo-ImportBody {
|
||||
# Arrays. Idempotent: bereits korrekte Arrays bleiben unveraendert.
|
||||
function Repair-SettingsCatalogArrays {
|
||||
param($Node)
|
||||
$arrayKeys = @('settings','children','groupSettingCollectionValue','simpleSettingCollectionValue','values')
|
||||
$arrayKeys = @('settings','children','groupSettingCollectionValue','simpleSettingCollectionValue','choiceSettingCollectionValue','values')
|
||||
# *TemplateReference-Keys tragen ein Objekt ODER null. Ein alter Export mit zu
|
||||
# geringer ConvertTo-Json-Tiefe hat solche (tief liegenden) Objekte zu ".ToString()"
|
||||
# stringifiziert -> "System.Collections.Hashtable". Graph lehnt das ab
|
||||
|
||||
Reference in New Issue
Block a user