ฉันสร้างตัวติดตั้ง Office 365 ซึ่งจะทำการติดตั้งในเครื่องและเปลี่ยน SourcePath แบบไดนามิก และฉันจำเป็นต้องเรียกใช้จากไฟล์ ISO (ปกติฉันใช้ USB แต่ใน VM ฉันใช้ ISO)
การทำงานในเครื่องในไดเร็กทอรีหรือ USB ทำงานได้อย่างสมบูรณ์ แต่จาก ISO ไม่ทำงาน ข้อผิดพลาดปรากฏขึ้น:
ชุดเนื้อหา: การเข้าถึงเส้นทาง 'C:\Users\Administrator\AppData\Local\Temp\tmpoffice\configuration.xml' ถูกปฏิเสธ ไม่มี E:\SMS\PKG\CM10017B\InstallOffice_OfflineMode.ps1:24 ตัวอักษร:164
+ ... fficeMgmtCOM="TRUE" SourcePath="'+$PS1dirEOL) | ตั้งค่าเนื้อหา $tempconf
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Set-Content], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetContentCommand
ฉันจะทำให้สิ่งนี้ทำงานภายใน ISO ได้อย่างไร ฉันรู้ว่า ISO เป็นแบบอ่านอย่างเดียว แต่ฉันคิดว่ามันแปลกที่เขาจะพยายามแก้ไขบางอย่างที่ไม่ได้อยู่ใน ISO แต่อยู่ในไดเร็กทอรีชั่วคราว แต่ก็ยังทำไม่ได้
$PS1dir = รับตำแหน่ง
#เส้นทางของการกำหนดค่า
$tempdir = "$env:TEMP\tmpoffice"
$conf = "$($PS1dir)\configuration.xml"
$tempconf = "$env:TEMP\tmpoffice\configuration.xml"
#เส้นทางปัจจุบันพร้อมจุดสิ้นสุดของบรรทัด XML ที่ปรับปรุงใหม่
$PS1dirEOL = "$($PS1dir)`" `AllowCdnFallback=`"TRUE`">"
#คัดลอกไฟล์คอนฟิกูเรชันสำหรับโฟลเดอร์ temp และตั้งค่าตัวแปรให้เหมือนกัน
Copy-Item $conf -Destination (New-Item -Path $tempdir -Type Directory -Force) -Recurse -Force
#แทนที่บรรทัดเก่าด้วยโฟลเดอร์ปัจจุบัน
(รับเนื้อหา $tempconf) -replace '<Add OfficeClientEdition=.*', ('<Add OfficeClientEdition="64" Channel="Current" OfficeMgmtCOM="TRUE" SourcePath="'+$PS1dirEOL) | Set-Content $ อุณหภูมิ
#รันการติดตั้ง O365 จากไฟล์คอนฟิกูเรชันใหม่
เริ่มกระบวนการ cmd.exe -ArgumentList "/c start /MIN $($PS1dir)\setup.exe /configure $tempconf" -Wait
Remove-Item -Path $tempdir -Force -Recurse