Intune дает мне дерьмо. Я пытаюсь установить программу с помощью Powershell, и обычно вы просто ставите -wait в конце, а скрипты ждут, пока установка не будет завершена, а затем закрывается, но с intune она просто зависает.
поэтому я хочу поставить цикл ожидания, чтобы при создании этого реестра Windows
Компьютер\HKEY_LOCAL_MACHINE\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\Microsoft\Windows\CurrentVersion\Удалить {AA3C5F33-570B-3989-8542-D5DC0F759221}
С этим полем имени, равным этому числу DisplayVersion = 21.1.21.45
Ниже приведена попытка сценария PowerShell.
$regkey = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AA3C5F33-570B-3989-8542-D5DC0F759221}'
$DisplayVersion = '21.1.21.45'
$Notdone = $true
DO {
$exists = Get-ItemProperty -Path $regkey -Name $DisplayVersion -ErrorAction SilentlyContinue
if (($exists -ne $null) -and ($exists.Lenght -ne 0)) {
& "C:\Autodesk\{D138465E-4098-4F01-B453-1C4BEADE75D8}\image\installer.exe" -ArgumentList "-i deploy --offline_mode -o C:/Autodesk\{D138465E-4098-4F01-B453-1C4BEADE75D8}\image\Collection.xml --installer_version 1.35.0.9"
$Notdone = $false
}
else {
Start-Sleep -Seconds 15
}
} While ($Notdone)
🤔 А знаете ли вы, что...
PowerShell предоставляет инструменты для мониторинга производительности системы и приложений.
вы перезапускаете установку каждые 15 секунд
$regkey = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AA3C5F33-570B-3989-8542-D5DC0F759221}'
$DisplayVersion = '21.1.21.45'
$Notdone = $true
Start-Process "C:\Autodesk\{D138465E-4098-4F01-B453-1C4BEADE75D8}\image\installer.exe" -ArgumentList "-i deploy --offline_mode -o C:/Autodesk\{D138465E-4098-4F01-B453-1C4BEADE75D8}\image\Collection.xml --installer_version 1.35.0.9" -Wait -NoNewWindow
DO {
$exists = Get-ItemProperty -Path $regkey -Name $DisplayVersion -ErrorAction SilentlyContinue
if ([string]::IsNullOrEmpty($exists)){
$Notdone = $true
Start-Sleep -Seconds 15
}else {$Notdone = $false}
} While ($Notdone)
вот код, который работал для меня
[Version]$minVersion = "21.1.21.45";
do {
$version = [Version]'0.0.0.0'; try { [Version]$version = [Version](Get-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\{AA3C5F33-570B-3989-8542-D5DC0F759221}' -EA 0).DisplayVersion; } catch { }
if ($version -ge $minVersion) {
#Write-Host "The version is now '$($version)', which is greater than the Minimum version '$($minVersion)'";
}
else {
#Write-Host "The version is now '$($version)', which is less than the Minimum version '$($minVersion)'. Will wait 15secs.";
Start-Sleep -Seconds 15;
}
}
until($version -ge $minVersion);