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
|
## [0.1.34] - 2026-09-14
|
||||||
|
|
||||||
Verwaltungsart in der Geräteliste, Autopilot-Zeitstempel im Detail.
|
Verwaltungsart in der Geräteliste, Autopilot-Zeitstempel im Detail.
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ $script:State = [pscustomobject]@{
|
|||||||
Session = @() # geplante Zuweisungen
|
Session = @() # geplante Zuweisungen
|
||||||
}
|
}
|
||||||
|
|
||||||
$script:ToolVersion = "0.1.34"
|
$script:ToolVersion = "0.1.35"
|
||||||
$script:BuildStamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
$script:BuildStamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||||
|
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ if (Test-Path "$x64Dotnet\dotnet.exe") {
|
|||||||
$env:DOTNET_ROOT = "C:\Program Files\dotnet"
|
$env:DOTNET_ROOT = "C:\Program Files\dotnet"
|
||||||
}
|
}
|
||||||
|
|
||||||
$version = "0.1.34"
|
$version = "0.1.35"
|
||||||
$src = "\\Mac\Home\ClaudePRJ\Intune Manager"
|
$src = "\\Mac\Home\ClaudePRJ\Intune Manager"
|
||||||
$stage = "$env:TEMP\IntuneManagerStage"
|
$stage = "$env:TEMP\IntuneManagerStage"
|
||||||
$installerDir = "$src\installer"
|
$installerDir = "$src\installer"
|
||||||
|
|||||||
+19
-1
@@ -183,8 +183,26 @@ function Get-UpdateCheckEndpoint {
|
|||||||
if ($token) { $headers['Authorization'] = "token $token" }
|
if ($token) { $headers['Authorization'] = "token $token" }
|
||||||
|
|
||||||
try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 } catch {}
|
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 {
|
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')
|
$latest = ([string]$rel.tag_name).TrimStart('v','V')
|
||||||
$out.latest = $latest
|
$out.latest = $latest
|
||||||
$out.releaseUrl = [string]$rel.html_url
|
$out.releaseUrl = [string]$rel.html_url
|
||||||
|
|||||||
+1
-1
@@ -230,7 +230,7 @@ function ConvertTo-ImportBody {
|
|||||||
# Arrays. Idempotent: bereits korrekte Arrays bleiben unveraendert.
|
# Arrays. Idempotent: bereits korrekte Arrays bleiben unveraendert.
|
||||||
function Repair-SettingsCatalogArrays {
|
function Repair-SettingsCatalogArrays {
|
||||||
param($Node)
|
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
|
# *TemplateReference-Keys tragen ein Objekt ODER null. Ein alter Export mit zu
|
||||||
# geringer ConvertTo-Json-Tiefe hat solche (tief liegenden) Objekte zu ".ToString()"
|
# geringer ConvertTo-Json-Tiefe hat solche (tief liegenden) Objekte zu ".ToString()"
|
||||||
# stringifiziert -> "System.Collections.Hashtable". Graph lehnt das ab
|
# stringifiziert -> "System.Collections.Hashtable". Graph lehnt das ab
|
||||||
|
|||||||
Reference in New Issue
Block a user