تعيين نهج Skype for Business Online لكل مستخدم باستخدام PowerShell ل Microsoft 365

تنطبق هذه المقالة على كل من Microsoft 365 Enterprise Office 365 Enterprise.

يعد استخدام PowerShell ل Microsoft 365 طريقة فعالة لتعيين إعدادات الاتصال لكل مستخدم باستخدام نهج Skype for Business Online.

الاستعداد لتشغيل أوامر PowerShell

استخدم هذه الإرشادات لإعداد لتشغيل الأوامر (تخطي الخطوات التي أكملتها بالفعل):

ملاحظة

يعد Skype for Business Online Connector حاليا جزءا من أحدث وحدة Teams PowerShell. إذا كنت تستخدم أحدث إصدار عام من Teams PowerShell، فلن تحتاج إلى تثبيت Skype for Business Online Connector.

  1. تثبيت الوحدة النمطية Teams PowerShell.

  2. افتح موجه أوامر Windows PowerShell وقم بتشغيل الأوامر التالية:

    Import-Module MicrosoftTeams
    Connect-MicrosoftTeams
    

    عند المطالبة، أدخل اسم حساب مسؤول Skype for Business Online وكلمة المرور.

تحديث إعدادات الاتصال الخارجي لحساب مستخدم

لنفترض أنك تريد تغيير إعدادات الاتصال الخارجي على حساب مستخدم. على سبيل المثال، تريد السماح ل Alex بالاتصال بالمستخدمين المتحدين (EnableFederationAccess يساوي True) ولكن ليس مع مستخدمي Windows Live (EnablePublicCloudAccess يساوي False). للقيام بذلك، تحتاج إلى القيام بأمرين:

  1. ابحث عن نهج وصول خارجي يلبي معاييرنا.

  2. قم بتعيين نهج الوصول الخارجي هذا إلى Alex.

كيف يمكنك تحديد نهج الوصول الخارجي الذي يجب تعيينه إلى Alex؟ يرجع الأمر التالي جميع نهج الوصول الخارجية حيث يتم تعيين EnableFederationAccess إلى True ويتم تعيين EnablePublicCloudAccess إلى False:

Get-CsExternalAccessPolicy -Include All| Where-Object {$_.EnableFederationAccess -eq $True -and $_.EnablePublicCloudAccess -eq $False}

ما لم تقم بإنشاء أي مثيلات مخصصة من ExternalAccessPolicy، يقوم هذا الأمر بإرجاع نهج واحد يلبي معاييرنا (FederationOnly). فيما يلي مثال:

Identity                          : Tag:FederationOnly
Description                       :
EnableFederationAccess            : True
EnableXmppAccess                  : False
EnablePublicCloudAccess           : False
EnablePublicCloudAudioVideoAccess : False
EnableOutsideAccess               : True

الآن بعد أن عرفت النهج الذي يجب تعيينه إلى Alex، يمكننا تعيين هذا النهج باستخدام أمر Cmdlet Grant-CsExternalAccessPolicy . فيما يلي مثال:

Grant-CsExternalAccessPolicy -Identity "Alex Darrow" -PolicyName "FederationOnly"

تعيين نهج بسيط: يمكنك تحديد هوية المستخدم واسم النهج الذي سيتم تعيينه.

وعندما يتعلق الأمر بالنهج وتعيينات النهج، لا تقتصر على العمل مع حسابات المستخدمين كل مرة. على سبيل المثال، افترض أنك بحاجة إلى قائمة بجميع المستخدمين المسموح لهم بالاتصال بالشركاء المتحدين ومع مستخدمي Windows Live. نحن نعلم بالفعل أنه تم تعيين هؤلاء المستخدمين لنهج وصول المستخدم الخارجي FederationAndPICDefault. لأننا نعلم ذلك، يمكنك عرض قائمة بجميع هؤلاء المستخدمين عن طريق تشغيل أمر واحد بسيط. إليك الأمر:

Get-CsOnlineUser -Filter {ExternalAccessPolicy -eq "FederationAndPICDefault"} | Select-Object DisplayName

بمعنى آخر، أظهر لنا جميع المستخدمين حيث تم تعيين الخاصية ExternalAccessPolicy إلى FederationAndPICDefault. (ومن أجل الحد من كمية المعلومات التي تظهر على الشاشة، استخدم Select-Object cmdlet لعرض اسم العرض لكل مستخدم فقط.)

لتكوين جميع حسابات المستخدمين لدينا لاستخدام نفس النهج، استخدم هذا الأمر:

Get-CsOnlineUser | Grant-CsExternalAccessPolicy "FederationAndPICDefault"

يستخدم هذا الأمر Get-CsOnlineUser لإرجاع مجموعة من جميع المستخدمين الذين تم تمكينهم ل Lync، ثم يرسل كل هذه المعلومات إلى Grant-CsExternalAccessPolicy، الذي يعين نهج FederationAndPICDefault لكل مستخدم في المجموعة.

كمثال إضافي، افترض أنك قمت مسبقا بتعيين نهج FederationAndPICDefault ل Alex، والآن غيرت رأيك وترغب في إدارته بواسطة نهج الوصول الخارجي العالمي. لا يمكنك تعيين النهج العمومي لأي شخص بشكل صريح. بدلا من ذلك، يتم استخدام النهج العمومي لمستخدم معين إذا لم يتم تعيين نهج لكل مستخدم لهذا المستخدم. لذلك، إذا أردنا أن تتم إدارة Alex بواسطة السياسة العالمية، فأنت بحاجة إلى إلغاء تعيين أي نهج لكل مستخدم تم تعيينه له مسبقا. فيما يلي مثال على الأمر:

Grant-CsExternalAccessPolicy -Identity "Alex Darrow" -PolicyName $Null

يعين هذا الأمر اسم نهج الوصول الخارجي المعين إلى Alex إلى قيمة خالية ($Null). Null تعني "لا شيء". بمعنى آخر، لا يتم تعيين نهج وصول خارجي إلى Alex. عندما لا يتم تعيين نهج وصول خارجي إلى مستخدم، تتم إدارة هذا المستخدم بعد ذلك بواسطة النهج العمومي.

إدارة أعداد كبيرة من المستخدمين

لإدارة أعداد كبيرة من المستخدمين (1000 أو أكثر)، تحتاج إلى تجميع الأوامر عبر كتلة برنامج نصي باستخدام Cmdlet Invoke-Command . في الأمثلة السابقة، في كل مرة يتم فيها تنفيذ أمر cmdlet، يجب إعداد المكالمة ثم انتظار النتيجة قبل إرسالها مرة أخرى. عند استخدام كتلة برنامج نصي، يسمح هذا بتنفيذ أوامر cmdlets عن بعد، وبمجرد اكتمالها، أرسل البيانات مرة أخرى.

$s = Get-PSSession | Where-Object { ($.ComputerName -like '*.online.lync.com' -or $.Computername -eq 'api.interfaces.records.teams.microsoft.com') -and $.State -eq 'Opened' -and $.Availability -eq 'Available' }

$users = Get-CsOnlineUser -Filter { ClientPolicy -eq $null } -ResultSize 500

$batch = 50
$filter = ''
$total = $users.Count
$count = 0
    $users | ForEach-Object {
    $upn = $_.UserPrincipalName
    $filter += "(UserPrincipalName -eq '$upn')"
    $batch--
    $count++
    if (($batch -eq 0) -or ($count -eq $total)) {
        $filterSB=[ScriptBlock]::Create($filter)
        Invoke-Command -Session $s -ScriptBlock {param($f) Get-CsOnlineUser -filter $f | Grant-CsClientPolicy -PolicyName "ClientPolicyNoIMURL" -Passthru | Grant-CsExternalAccessPolicy -PolicyName "FederationAndPICDefault"} -ArgumentList $filterSB

        # Reset
        $batch = 50
        $filter = ''
    } else {
        $filter += " -or "
    }
}

يؤدي ذلك إلى العثور على 500 مستخدم في كل مرة ليس لديهم نهج عميل. يمنحهم نهج العميل "ClientPolicyNoIMURL" ونهج الوصول الخارجي "FederationAndPicDefault". يتم تجميع النتائج في مجموعات من 50 ثم يتم إرسال كل دفعة من 50 إلى الجهاز البعيد.

راجع أيضًا

إدارة Skype for Business Online باستخدام PowerShell

إدارة Microsoft 365 باستخدام PowerShell

بدء استخدام PowerShell ل Microsoft 365