ข้อผิดพลาดในการรับ 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... อืม...
