การติดตั้งอัตโนมัติของ VS2017


0

ขณะนี้ฉันกำลังพยายามเขียนบท (PowerShell) การติดตั้ง Visual Studio 2017 อัตโนมัติบน VM ที่โฮสต์ใน Azure DevTest Lab สคริปต์นั้นง่ายมากเช่น

try
{
    Invoke-WebRequest -Uri $vs2017Url -OutFile $vs2017Exe;
}
catch
{
    Write-Error "Failed to download VS 2017";
}

try
{
    Start-Process -FilePath $vs2017Exe -ArgumentList "--add Microsoft.VisualStudio.Workload.NetCoreTools;includeRecommended --passive";
}
catch
{
    Write-Error "Failed to install VS 2017";
}

ที่ไหน $vs2017Url เป็น URL ของ exe ติดตั้ง VS ปัญหาคือว่า exe VS 2017 เปิดใช้งาน UAC ซึ่งทำให้เป็นการยากที่จะทำให้เป็นอัตโนมัติขณะที่เปิดกล่องโต้ตอบ UAC "คุณต้องการอนุญาตให้แอปนี้ทำการเปลี่ยนแปลงอุปกรณ์ของคุณหรือไม่" จึงต้องมีการแทรกแซงของผู้ใช้ อย่างไรก็ตามมีรอบนี้หรือไม่ (VMs จะถูกปรับใช้โดยใช้ Azure สิ่งประดิษฐ์ ฟังก์ชันการทำงานใน Azure)


มีเคล็ดลับที่คุณสามารถทำได้กับ task scheduler raymond.cc/blog/task-scheduler-bypass-uac-prompt ส่วนที่ยุ่งยากคือการสร้างมันขึ้นมาจาก powershell และเปิดใช้งาน "อนุญาตให้เรียกใช้งานตามความต้องการ" ฉันคิดว่า powershell ใช้งานตัวกำหนดเวลาเป็นตัวเดียวที่รองรับการตั้งค่าตัวเลือกจากบรรทัดคำสั่งดังที่อธิบายไว้ที่นี่: blogs.technet.microsoft.com/heyscriptingguy/2015/01/13/...
arana

1
ไม่คุณไม่สามารถเลี่ยงการแจ้งเตือน UAC และนี่คือการออกแบบ (ไม่เช่นนั้นมัลแวร์ทั้งหมดจะทำได้!)
Bill_Stewart

เรียกใช้สคริปต์ด้วยวิธีที่อนุญาตให้สคริปต์ทำงานด้วยสิทธิ์ระดับผู้ดูแลระบบ และชำระเงินเมื่อใดก็ตามที่มีสวิตช์การติดตั้งแบบอัตโนมัติ
Seth

คำตอบ:


0

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

เพียงเพื่อระบุชัดเจน: กระบวนการ PowerShell ของคุณต้องทำงานในฐานะผู้ดูแล :)

ขึ้นอยู่กับการกำหนดค่าอย่างใดอย่างหนึ่งต่อไปนี้อาจใช้งานได้:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.