ค้นหาเว็บไซต์

ข้อผิดพลาดในการรับ UserPhoto: ไม่มีรูปภาพเก็บไว้ที่นี่


เมื่อวันที่ 23 สิงหาคม 2023 Exchange Online PowerShell เริ่มแสดงข้อผิดพลาดเมื่อเรียกข้อมูลรูปถ่ายของผู้ใช้

โดยเฉพาะ ปัญหาจะเกิดขึ้นเมื่อเรียกใช้คำสั่ง EXO PowerShell ต่อไปนี้:

PS C:\> Get-UserPhoto -Identity lene.hau

คำสั่งจะหยุดทำงานประมาณหนึ่งนาทีก่อนที่จะสร้างข้อความแสดงข้อผิดพลาด "ขยะ" ต่อไปนี้:

Write-ErrorMessage : |Microsoft.Exchange.Configuration.CmdletProxyException|Error on proxy command
  'Get-UserPhoto -Identity:'CN=Lene Hau,OU=e365m.onmicrosoft.com,OU=Microsoft Exchange Hosted
  Organizations,DC=EURPR09A010,DC=PROD,DC=OUTLOOK,DC=COM'' to server PR2PR09MB3001.eurprd09.prod.
  outlook.com: Server version 15.20.6699.0000, Proxy method PSWS:
InternalServerError: Error executing cmdlet : {
  "code": "InternalServerError",
  "message": "Error executing cmdlet",
  "details": [
    {
      "code": "Client",
      "target": "EURPR09A010.PROD.OUTLOOK.COM/Microsoft Exchange Hosted Organizations/e365m.
                 onmicrosoft.com/Lene Hau",
      "message": "|Microsoft.Exchange.Data.Storage.UserPhotoNotFoundException|There is no photo
                  stored here."
    }
  ],
  "innererror": {
    "message": "Error executing cmdlet",
    "type": "Microsoft.Exchange.Admin.OData.Core.ODataServiceException",
    "stacktrace": "   at Microsoft.Exchange.AdminApi.CommandInvocation.CommandInvocation.
    InvokeCommand(QueryContext queryContext, CmdletInvokeInputType cmdletInvokeInputType)\r\n at
    Microsoft.Exchange.Admin.OData.Core.PathSegmentToExpressionTranslator.Translate(
    OperationImportSegment segment)\r\n at Microsoft.Exchange.Admin.OData.Core.QueryContext.
    ResolveQuery(ODataContext context, Int32 level)\r\n at Microsoft.Exchange.Admin.OData.Core.
    Handlers.OperationHandler.Process(IODataRequestMessage requestMessage, IODataResponseMessage
    responseMessage)\r\n at Microsoft.Exchange.Admin.OData.Core.Handlers.RequestHandler.Process
    (Stream requestStream)",
    "internalexception": {
      "message": "Exception of type 'Microsoft.Exchange.Management.PSDirectInvoke.
                  DirectInvokeCmdletExecutionException' was thrown.",
      "type": "Microsoft.Exchange.Management.PSDirectInvoke.DirectInvokeCmdletExecutionException",
      "stacktrace": "   at Microsoft.Exchange.Management.PSDirectInvoke.PSDirectInvokeCmdletFactory.
       InvokeCmdletInternal[TCmdlet,TResult](Func`1 createCmdlet, Action`1 setParameterDelegate,
       List`1 captureAdditionalIO, List`1 directInvokeExceptions, Boolean
       shouldAllowProactiveProxyToReturnRoutingHint)"
    }
  },
  "adminapi.warnings@odata.type": "#Collection(String)",
  "@adminapi.warnings": []
}.
At C:\Users\Skrubbeltrang\AppData\Local\Temp\tmpEXO_z2hcndsv.xxg\tmpEXO_z2hcndsv.xxg.psm1:1178
  char:13 Write-ErrorMessage $ErrorObject
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-UserPhoto], CmdletProxyException
    + FullyQualifiedErrorId : [Server=AM7PR09MB3877,RequestId=ffda7356-3e07-f3f9-dae6-6529b7069d2f,
    TimeStamp=Wed, 23 Aug 2023 13:49:51 GMT],Write-ErrorMessage

เมื่อเราบันทึกปัญหาในตอนแรก ไม่มีข้อผิดพลาดแสดงอยู่ในสถานะความสมบูรณ์ของ Exchange Online

นอกจากนี้ นี่ไม่ใช่ครั้งแรกที่เราสังเกตเห็นพฤติกรรมแปลกๆ ที่เกี่ยวข้องกับรูปถ่ายของผู้ใช้ Exchange Online

ในต้นปี 2022 การดึงข้อมูลรูปภาพผู้ใช้ที่ว่างเปล่า (null) โดยใช้คำสั่ง Get-UserPhoto เปลี่ยนจากการส่งข้อความแสดงข้อผิดพลาดทันทีเป็นการค้างหนึ่งนาทีตามด้วยข้อความแสดงข้อผิดพลาด

Microsoft ไม่เคยเสนอคำอธิบายต่อสาธารณะเกี่ยวกับการเปลี่ยนแปลงพฤติกรรมนี้ และเราได้สร้างวิธีแก้ปัญหาในการเขียนสคริปต์ของเราเพื่อตรวจสอบแอตทริบิวต์กล่องจดหมาย "HasPicture" ก่อนที่จะเรียกค้นรูปถ่ายของผู้ใช้

เป็นเรื่องน่ากังวลอย่างยิ่งที่มีการเปลี่ยนแปลงที่ไม่ได้แจ้งให้ทราบล่วงหน้าเกิดขึ้นกับโครงสร้างพื้นฐานของ Exchange Online โดยสันนิษฐานอย่างผิดๆ ว่า “จะไม่มีอะไรเปลี่ยนแปลงสำหรับลูกค้า” และ “จะไม่มีใครสังเกตเห็น”

เรากำลังติดตามอย่างใกล้ชิดว่าปัญหานี้จะได้รับการแก้ไขหรือบันทึกเป็นการเปลี่ยนแปลง Exchange Online ที่วางแผนไว้ไม่ดีอีกหรือไม่

*** อัปเดต 1 2566-08-25***

เราไม่ได้รับการตอบรับใดๆ จาก Microsoft เกี่ยวกับเรื่องนี้ (ตั๋วที่สร้างผ่านฝ่ายสนับสนุนคู่ค้า) ในอีกสองวัน

ด้วยความเชื่อมั่นเพียงเล็กน้อยในคุณภาพการสนับสนุน เราจึงทำการวิจัยและพบว่าฟังก์ชันเดียวกันนี้มีให้ใช้งานจาก MS Graph PowerShell API:

Get-MgUserPhotoContent -UserId lene.hau@azure.skrubbeltrang.com -OutFile c:\tmp\LeneHau.jpg

คำพูดสุดท้าย: เป็นเรื่องที่น่าผิดหวังอย่างไม่น่าเชื่อและน่ากังวลว่าส่วนหนึ่งของ EXO PowerShell API หยุดทำงานจากหนึ่งนาทีไปยังอีกนาทีหนึ่งโดยไม่มีการสื่อสารใดๆ จาก Microsoft (ก่อนหรือหลัง)

มันทำให้ชีวิตยากลำบากมากสำหรับนักพัฒนาแอพพลิเคชั่นและผู้ดูแลระบบที่มีงานยุ่งที่ต้องอาศัยการเขียนสคริปต์และมักจะถูกขยายจนถึงขีดจำกัด

*** อัปเดตครั้งที่สอง 2023-09-01 ***

และตอนนี้เราเพิ่งได้รับการตอบรับจากลูกค้าว่า Get-UserPhoto ทำงานได้อีกครั้ง และเราสามารถตรวจสอบสิ่งนั้นได้ในผู้เช่าของเราเอง

Get-UserPhoto หยุดทำงานทั่วโลกเป็นเวลาประมาณหนึ่งสัปดาห์

ไม่มีข้อมูลจาก Microsoft เกี่ยวกับสิ่งที่เกิดขึ้น และปัญหาไม่เคยเกิดขึ้นใน Exchange Online Health Monitor... อืม...

บทความที่เกี่ยวข้อง