الحصول علي برامج نصيه تعيينات-

ملاحظة:  نرغب في تزويدك بأحدث محتوى تعليمات لدينا بأسرع ما يمكن وبلغتك الخاصة. وقد تمت ترجمة هذه الصفحة آلياً وقد تحتوي على أخطاء نحوية أو أخطاء تتعلق بالدقة. كما نهدف إلى أن يكون هذا المحتوى مفيداً لك. هل يمكنك إخبارنا إذا كانت المعلومات مفيدة لك في أسفل هذه الصفحة؟ إليك المقالة بالغة الإنجليزية لسهولة الرجوع إليها.

ارفاق يتم البرامج النصيه الاساسيه power ل# الحصول علي-فئات المستخدم

< #
   . مختصر
    الحصول علي معلومات فئات المستخدم مماثل ل# في الفئات التي المستخدم عضوا و# ما هو دور المستخدم ل# المستخدم في تلك الفئات.
    . وصف
    البرامج النصيه يقرا الملف و# احصل علي كل كلاسيدس و# تعيين تحديثات الدور مع userrole المذكوره، اذا لم يكن المذكوره الي الطلاب و# هو الافتراضي. ثم يحصل الفئات و# الفئات التي المستخدم مالك يتواجد المستخدم عضو. يعمل هذا علي تحسين البرنامج النصي و# يقوم ب# انشاء الاخراج مع تفاصيل فئه و# دور مستخدم في فئه معينه.
   . مثال
    .\Get-userClasses.ps1-معرف المستخدم < مستخدم محدد معرف >
        سيتم هذا الحصول علي تفاصيل المستخدم وفقا ل# عضويه المستخدم
    -معرف المستخدم < مستخدم محدد معرف >.\Get-userClasses.ps1-كلاسيدسفيلي < مسار الملف csv اكتمال >
        سيؤدي هذا الحصول علي تفاصيل المستخدم الفئات المحدده في عضويه المستخدم و# ملف csv، اذا لا يمكننا تمرير معلمه userRole، سيتم تعيين الي الاعداد الافتراضي ل# الطلاب ل# كلاسيدس المحدده في ملف csv
    .\Get-userClasses.ps1-معرف المستخدم < مستخدم محدد معرف >-كلاسيدسفيلي < مسار الملف csv اكتمال >-userrole < الطالب او المدرس >
        ستحصل تفاصيل المستخدم الفئات المحدده في عضويه المستخدم و# ملف csv. يتم انشاء بيانات المستخدم ل# كلاسيدس المحدد في ملف وفقا ل# userrole المحدد (المدرس او طالب)
   . معرف المستخدم معلمه
   معرف المستخدم ل# المستخدم ل# تصدير و# حذف عمليات الارسال
   . معلمه كلاسيدسفيلي
   المسار الكامل ل# ملف نص عادي الذي يحتوي علي classId واحده في كل بند.
   نموذج ل# قائمه من كلاسيدس. يجب ان تتوفر لديك كل سطر واحد classId
   e81c2cd2-e3ff-4c0a-8ed0-63df43ff884c
   044b4c35-5fab-454a-9705-bc750108c059
   e81c2cd2-4c0a-e3ff-9705-bc750108c059
   . معلمه userrole
   يتم استخدام هذا بارميتير ل# تحديد تتم ازاله دور المستخدم ل# استخدامه ل# معرفات الفئه في كلاسيدسفيلي و# المستخدم من الفئه.
   أووتبوتفيلينامي .paramter
   يتم استخدام هذه المعلمه ادخل اسما ل# ملف الاخراج من البرنامج النصي، اي ملحقات. هذا ليس مانداتورتي ب# شكل افتراضي هو اسم ملف الاخراج أوسيركلاسديتايلس
   . ملاحظات
   نحن ب# حاجه الي ان يقوم Microsoft.IdentityModel.Clients.ActiveDirectory.dll و Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll مطلوبه
#>
المعلمه (
    [المعلمه (الزامي = $true، موضع = 1)]
    [ValidateNotNullOrEmpty()]
    [فاليداتيسكريبت ({
        حاول {
            [System.Guid]::Parse($_) | الخارج قيمه فارغه
            $true
        {التقاط {
            طرح $_
        }
    })]
    [سلسله] $userId،

[المعلمه (الزامي = $false، موضع = 2)]
    [ValidateNotNullOrEmpty()]
    [فاليداتيسكريبت ({
        اذا كانت (-غير ($_ | تيستباث)) {
            طرح "ملف او مجلد غير موجود"
        }
        اذا كانت (-غير ($_ | طرفيه-باثتيبي تيستباث)) {
            طرح "يجب ان تكون الوسيطه كلاسيدسفيلي ملف. مسارات المجلدات غير مسموح. "
        }
        اذا كانت (_ $-نوتماتش "(\.txt)") {
            طرح "يجب ان يكون الملف المحدد في وسيطه المسار من نوع txt"
        }
        ارجاع $true
    })]
    [سلسله] $classIdsFile،

[المعلمه (الزامي = $false، موضع = 3)]
    [ValidateNotNullOrEmpty()]
    [فاليداتيسيت (' طالب ', ' مدرس '، ignorecase = $false)]
    [سلسله] $userrole = "طالب"

[المعلمه (الزامي = $false، موضع = 4)]
    [ValidateNotNullOrEmpty()]
    [سلسله] $outputFileName = "أوسيركلاسديتايلس"
)
# تحميل ADAL
اضافه نوع-مسار ".\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"

$script: ماكسريترياتيمبت = 3
$script: أوثينتيكاتيونريسولت = $null
$graphEndpoint = "https://graph.microsoft.com"
$authString = "https://login.windows.net/common"

# الاخراج ل# تلخيص النجاح / فشل المكالمات API.
$script: جيتكلاسديتايلسريبورت = @)

طلب ويب #Makes و# تسجيل حاله استجابه
الداله ريقويستويثريتري استدعاء
{
    المعلمه (
        [Parameter(Mandatory=$true)] $url،
        [Parameter(Mandatory=$false)] $classId،
        [Parameter(Mandatory=$false)] $className
    )

ل ($i = 1؛ $i-لي $script: ماكسريترياتيمبت؛ $i + +)
    {
        حاول
        {
            $tempResult = WebRequest استدعاء-"الحصول علي طريقه"-Uri $url-رؤوس $script: أوتهياديرس
            $script: جيتكلاسديتايلسريبورت + = [بسكوستوموبجيكت] @{
                ريقويستورل = $url
                اسلوب = "الحصول علي"
                ريسبونسيكودي = $tempResult.StatusCode
                اسم الفئه = $className
                ClassId = $classId
                معرف الطلب = $tempResult.Headers ["-معرف الطلب"]
                ستاتوسديسكريبتيون = $tempResult.StatusDescription
                نومبيروفاتيمبتس = $i
            }
            ارجاع $tempResult
        }
        التقاط
        {
            if($_. Exception.Response-ج $null)
            {
                $responseCode = $_. Exception.Response.StatusCode.Value__
                $requestId = $_. Exception.Response.Headers ["-معرف الطلب"]
            }

            $script: جيتكلاسديتايلسريبورت + = [بسكوستوموبجيكت] @{
                ريكويستورل = $url
                اسلوب = "الحصول علي"
                ريسبونسيكودي = $responseCode
                اسم الفئه = $className
                ClassId = $classId
                معرف الطلب = $requestId
                ستاتوسديسكريبشن = $_. Exception.Message
                نومبيروفاتيمبتس = $i
            }            

اذا كانت ($i-eq $script: ماكسريترياتيمبت)
            {
                طرح $_. Exception.Message
            }

اذا كانت ($responseCode-eq 401)
            {
                $script: أوتهياديرس = أوتهياديرس الحصول علي-أوسيريفريشتوكين $true
            }
        }
    }
}

#Get أوتهياديرس
الداله أوتهياديرس الحصول علي
{
    المعلمه (
        [Parameter(Mandatory=$false)]
        [منطقي] $useRefreshToken = $false
    )
    $clientId = "eb2298a1-a6bb-4f16-a27a-b582815db47b"
    $redirectURI = System.Uri("urn:ietf:wg:oauth:2.0:oob") كائن جديد
    $promptBehavior = [Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior]::Always
    $authContext = $authString كائن جديد-قائمه الوسيطات "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext"
    اذا كانت ($useRefreshToken-eq $false)
    {
        $script: أوثينتيكاتيونريسولت = $authContext.AcquireToken ($graphEndpoint، $clientID، $redirectURI، $promptBehavior)
    }
    اخر
    {
        $script: أوثينتيكاتيونريسولت = $authContext.AcquireTokenByRefreshToken ($script:authenticationResult.RefreshToken، $clientId)
    }
    $authHeader = $script:authenticationResult.AccessTokenType + "" + $script:authenticationResult.AccessToken
    $headers = @{"تخويل" = $authHeader؛ "نوع المحتوي" = "تطبيق / json"}
    ارجاع $headers
}

#Get المجموعه اسم
الداله ClassName الحصول علي
{
    المعلمه (
        [Parameter(Mandatory=$true)] $classId
    )

$getClassDetailsUrl = "{0}/v1.0/groups/{1}"-f $graphEndpoint، $classId
    $getClassDetailsResult = (ريقويستويثريتري استدعاء-url $getClassDetailsUrl) | Json كونفيرتفروم
    $className = $getclassDetailsResult.displayName
    ارجاع $className
}

تفاصيل ملكيه #Get من معرف المستخدم استخدام edu اندبويت و# تنقيح ب# الانشاء نوع تعيينات
الداله أوونيرشيبديتايلس الحصول علي
{
    المعلمه (
        [Parameter(Mandatory=$true)] $userId
    )
    $ownershipUrl = ("{0} / edu / المستخدمين / {1} / ownedobjects? ' $top = 999"-f $graphEndpoint، $userId)
    $ownershipQuery = (ريقويستويثريتري استدعاء-url $ownershipUrl) | Json كونفيرتفروم
    $classes = $ownershipQuery.value | كائن مكان {$_.creationOptions-يحتوي علي "كلاساسيجنمينتس"} | اسم العرض، و# حدد الكائن objectId
    ارجاع $classes
}

#Get تفاصيل العضويه معرف المستخدم ب# استخدام edu نقطه نهايه و# تنقيح ب# الانشاء نوع تعيينات
الداله ميمبيرشيبديتايلس الحصول علي
{
    المعلمه (
        [Parameter(Mandatory=$true)] $userId
    )
    $membershipUrl = ("{0} / edu / المستخدمين / {1} / memberof? ' $top = 999"-f $graphEndpoint، $userId)
    $membershipQuery = (ريقويستويثريتري استدعاء-url $membershipUrl) | Json كونفيرتفروم
    $classes = $membershipQuery.value | كائن مكان {$_.creationOptions-يحتوي علي "كلاساسيجنمينتس"} | اسم العرض، و# حدد الكائن objectId
    ارجاع $classes
}

كائن بسكوتوم مخصصه #Return التي لديها خصائص classid، و# معرف المستخدم، و# اسم الفئه، و# دور و# جيتسوبميسيونبروسيسيد و# ديليتيسوبميسيونبروسيسيد
الداله كلاسريكورد انشاء
{
    المعلمه (
        [Parameter(Mandatory=$true)] $userId،
        [Parameter(Mandatory=$true)] $classId،
        [Parameter(Mandatory=$true)] $role،
        [Parameter(Mandatory=$false)] $displayName
    )

$classRecord = [بسكوستوموبجيكت] @{
        ClassId = $classId
        معرف المستخدم = $userId
        اسم الفئه = $displayName
        دور = $role
        جيتسوبميسيونسبروسيسيد = $false
        ديليتيسوبميسيونسبروسيسيد = $false
    }

ارجاع $classRecord
}

$script: أوتهياديرس = أوتهياديرس الحصول علي

# هذا ستحتوي التفاصيل ل# كافه الفئات "مثيره ل# الاهتمام"
$script: كلاسديتايلس = @ {}

# البحث عن تملكها الفئات (حيث يكون المستخدم حاليا مدرس)
حاول
{
    $ownedClasses = أوونيرشيبديتايلس الحصول علي-معرف المستخدم $userId
    foreach ($class في $ownedClasses)
    {
        اذا كانت (-غير $script: classDetails.ContainsKey($class.objectId))
        {
            $classRecord = $class.objectId-classId-معرف المستخدم $userId كلاسريكورد انشاء-$class.displayName-displayName "ل# المدرسين" دور
            $script:classDetails.Add ($class.objectId، $classRecord)
        }
    }
}
التقاط
{
    خطا في الكتابه $_. Exception.Message
}

# البحث عن ب# الانضمام اليها المجموعات (حيث يكون المستخدم حاليا طالب)
حاول
{
    $joinedClasses = ميمبيرشيبديتايلس الحصول علي-معرف المستخدم $userId
    foreach ($class في $joinedClasses)
    {
        اذا كانت (-غير $script: classDetails.ContainsKey($class.objectId))
        {
            $classRecord = $class.objectId-classId-معرف المستخدم $userId كلاسريكورد انشاء-$class.displayName-اسم العرض "طالب" دور
            $script:classDetails.Add ($class.objectId، $classRecord)
        }
    }
}
التقاط
{
    خطا في الكتابه $_. Exception.Message
}

# العثور علي تفاصيل ل# مجموعات اضافيه من الملف.
if(![ سلسله]:: IsNullOrEmpty($classIdsFile))
{
    $classIdsFromFile = تحديد سلسله-نقش "\w"-$($classIdsFile) المسار | كائن ForEach {
        $_. خط
    }

foreach ($classId في $classIdsFromFile)
    {
        # تاخذ القائمه فئات الحالي ل# المستخدم بريسيندينسي علي مجموعه اضافيه من الفئات
        # سبيل المثال: اذا قمت حددنا الفعل في الدور، نحن لا تحتاج الي القيام ب# ذلك مره اخري.
        اذا كانت (-غير $script: classDetails.ContainsKey($classId.Trim("")))
        {
            حاول
            {
                $displayName = ClassName الحصول علي-classId $classId
                $classRecord =-معرف المستخدم $userId كلاسريكورد انشاء-classId $classId-دور $userrole-displayName $displayName
                $script:classDetails.Add ($classId، $classRecord)
            }
            التقاط
            {
                _ $المضيف الكتابه. Exception.Message
            }

        }
    }
}            

$script:classDetails.Values | Csv التصدير-مسار.\$($outputFileName).csv-نوتيبينفورميشن
$script: جيتكلاسديتايلسريبورت | Csv التصدير-مسار.\UserClassDetailsReport.csv-نوتيبينفورميشن
$directoryPath = (الحصول علي العنصر-مسار ". \"-وضع الاسهاب). FullName
الكتابه-المضيف الفئه "تفاصيل" يتم انشاء file($($outputFileName).csv) في $directoryPath\($($outputFileName).csv)
الفئه "تفاصيل" يتم انشاء report(UserClassDetailsReport.csv) في $directoryPath\UserClassDetailsReport.csv الكتابه-المضيف

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×