Am creat un program de instalare Office 365 unde face instalarea locală și schimbă dinamic SourcePath și trebuie să îl rulez dintr-un fișier ISO (în mod normal folosesc USB-uri, dar în VM-uri folosesc ISO)
Rulând local în orice director sau USB funcționează perfect, dar dintr-un ISO nu, apare eroarea:
Set-Content : accesul la calea „C:\Users\Administrator\AppData\Local\Temp\tmpoffice\configuration.xml” a fost refuzat. Nu E:\SMS\PKG\CM10017B\InstallOffice_OfflineMode.ps1:24 caracter:164
+ ... fficeMgmtCOM="TRUE" SourcePath="'+$PS1dirEOL) | Set-Content $tempconf
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (:) [Set-Content], UnauthorizedAccessException
+ FullyQualifiedErrorId: System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetContentCommand
Cum fac ca acest lucru să funcționeze și în cadrul unui ISO? Știu că un ISO este doar pentru citire, dar mi s-a părut ciudat că ar încerca să modifice ceva care nu este în ISO, ci într-un director temporar și încă nu poate.
$PS1dir = Obține locație
#Căile configurației
$tempdir = "$env:TEMP\tmpooffice"
$conf = „$($PS1dir)\configuration.xml”
$tempconf = "$env:TEMP\tmpooffice\configuration.xml"
#Calea curentă cu capătul reformat al liniei XML
$PS1dirEOL = "$($PS1dir)`" `AllowCdnFallback=`"TRUE`">"
#Copiați fișierul de configurare pentru folderul temp și setați variabila pentru același
Copy-Item $conf -Destination (New-Item -Path $tempdir -Type Directory -Force) -Recurse -Force
#Înlocuiește linia veche cu folderul curent
(Get-Content $tempconf) -inlocuire „<Add OfficeClientEdition=.*”, („<Add OfficeClientEdition="64" Channel="Current" OfficeMgmtCOM="TRUE" SourcePath="'+$PS1dirEOL) | Set-Content $ tempconf
# Rulează instalarea O365 din noul fișier de configurare
Start-Process cmd.exe -ArgumentList "/c start /MIN $($PS1dir)\setup.exe /configure $tempconf" -Așteptați
Remove-Item -Path $tempdir -Force -Recurse