ฉันมี Azure File Share และต้องการใช้สิ่งนี้จาก Azure VM ของฉัน - หลังจากยืนยันข้อมูลประจำตัวบน VMs ด้วย cmdkey และติดตั้งด้วยการใช้เน็ต สิ่งนี้ถูกทดสอบโดยการรันคำสั่งเหล่านี้ในเซสชัน Powershell ในเครื่องบน Windows Server 2012 R2
แต่ฉันต้องเพิ่มขั้นตอนนี้ในสคริปต์การปรับใช้ Azure สคริปต์ Azure Powershell ทำงานจากแล็ปท็อปของฉันเชื่อมต่อกับการสมัครสมาชิก Azure และสร้าง VMs ตั้งแต่เริ่มต้นโดยใช้ตัวแปรจำนวนมาก
คิดให้ใช้ Invoke-Command เพื่อส่งตัวแปรจากสคริปต์ Azure Powershell ไปยังเซสชัน Powershell ระยะไกลบน VM ที่สร้างขึ้นใหม่
$Session = New-PSSession -ConnectionUri $Uri -Credential $DomainCredential
$ScriptBlockContent = {
Param ($Arg1,$Arg2,$Arg3)
cmdkey /add:$Arg1 /user:$Arg2 /pass:$Arg3}
Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
และข้อผิดพลาด:
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent -ArgumentList ($Share,$AccountName,$Key)
CMDKEY: Credentials cannot be saved from this logon session.
แทนที่ด้วย cmdkey / รายการเพื่อตรวจสอบไวยากรณ์และไม่มีข้อผิดพลาด
PS C:\> Invoke-Command -Session $Session -ScriptBlock $ScriptBlockContent
Currently stored credentials:
* NONE *
มีปัญหาที่คล้ายกัน (และไม่สามารถแก้ไขได้) ด้วยโมดูล Windows Update PowerShell (Invoke-WUInstall) ที่ทำงานได้ดีบนเซสชัน Powershell ในเครื่องบน VM แต่ไม่อัปเดตเมื่อเริ่มต้นด้วย Powershell ระยะไกล
มีวิธีไหนบ้างที่จะหลีกเลี่ยงสิ่งนี้?