Score:0

การติดตั้ง O365 ผ่าน powershell ภายใน ISO

ธง us

ฉันสร้างตัวติดตั้ง 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
in flag
Defender เปิดใช้งานอยู่หรือไม่? เมื่อเร็ว ๆ นี้ฉันพบว่า Defender ป้องกันการเข้าถึงไฟล์และไดเร็กทอรีบ่อยขึ้นซึ่งไม่น่าจะมีปัญหา และมักไม่แสดงการแจ้งเตือน
AegisShimon avatar
us flag
ใช่ เปิดใช้งานอยู่ แต่เป็นเรื่องแปลกที่จะต้องปิดการใช้งานตัวป้องกันเพื่อคัดลอกไฟล์ไปยังโฟลเดอร์ชั่วคราว โดยพิจารณาว่าการทำเช่นนี้โดยไม่ได้มาจาก ISO ปัญหานี้จะไม่เกิดขึ้น คำสั่งที่ล้มเหลวดูเหมือนจะเป็น Set-Content แต่เมื่อฉันวิเคราะห์เพิ่มเติม มันไม่คัดลอกไฟล์ไปยังโฟลเดอร์ชั่วคราวด้วยซ้ำ ซึ่งแปลกมาก
Score:0
ธง in

ปัญหาคือว่าไฟล์เป็นแบบอ่านอย่างเดียว ไฟล์ทั้งหมดในอิมเมจ .iso จะได้รับแอตทริบิวต์แบบอ่านอย่างเดียวและแอตทริบิวต์ tha จะถูกเก็บไว้เมื่อคุณคัดลอกไฟล์ คุณต้องลบออกก่อนจึงจะสามารถแก้ไขไฟล์ได้

Set-ItemProperty $tempconf - ชื่อเป็นแบบอ่านอย่างเดียว - ค่า $false

แต่นี่ไม่ใช่ปัญหาเดียว หลังจากลบแอตทริบิวต์ ReadOnly แล้ว คุณจะพบกับข้อผิดพลาดถัดไป โดยแจ้งว่าไม่สามารถเขียนลงในไฟล์ได้เนื่องจากกระบวนการอื่นกำลังใช้งานอยู่ (เนื่องจาก รับเนื้อหา ยังทำงานอยู่) คุณจะต้องใช้ตัวแปรชั่วคราว

$conf = (Get-Content $tempconf) -replace '<Add OfficeClientEdition=.*', ('<Add OfficeClientEdition="64" Channel="Current" OfficeMgmtCOM="TRUE" SourcePath="'+$PS1dirEOL)
$conf | ตั้งค่าเนื้อหา $tempconf
AegisShimon avatar
us flag
สมบูรณ์แบบ สิ่งนี้แก้ปัญหาของฉันได้จริงๆ ขอบคุณมาก! ฉันใช้โอกาสนี้และเปลี่ยนชื่อของตัวแปรให้เป็นไปตามแนวทางปฏิบัติที่ดีที่สุดมากขึ้น และตอนนี้ฉันสามารถติดตั้งโดยใช้ SourcePath ใน SCCM ISO แบบออฟไลน์ (เพราะ ก่อนที่จะไม่สามารถทำได้ เนื่องจาก SCCM เปลี่ยนเส้นทาง Office SMS PKG ตลอดเวลาระหว่างการติดตั้ง)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา