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

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

عمليات تصدير-تعيينات EDU

< #
   . مختصر
    تصدير البيانات تعيينات Edu مستخدم في مجموعه من الفئات المحدده في ملف csv.
    . وصف
    قراءه البرنامج النصي تفاصيل الفئه المستخدم من ملف csv الادخال. الحصول علي التعيينات و# عمليات الارسال ل# كل تعيين و# يقوم ب# انشاء file(GetAssignmentsReport.csv) file(assignment.json) و# تقرير التعيين. عند اكتمال استخراج من عمليات الارسال يتم تحديثه العمود جيتسوبميسيونسبروسيسيد الي true ل# تلك الفئه معينه. اذا فشلت عمليه البرنامج النصي بينهما نحن يمكنك اعاده تشغيل البرنامج النصي ب# استخدام ملف الادخال نفسها، ل# انه سيتم تحديث الملف الحذف الاخيره ل# الارسال.
   . مثال
    .\Export-EduAssignments.ps1-أوسيركلاسديتايلسفيلي < المسار الكامل ل# ملف csv تفاصيل الفئه المستخدم >
   . معلمه أوسيركلاسديتايلسفيلي
   هذا هو file(userClassDetails.csv) csv و# هو الناتج ل# الحصول علي UserClasses.ps1 نصي. يحتوي هذا الملف علي معلومات حول فئات المستخدم و# ما اذا كان تتم معالجه عمليات الارسال الحذف و# الحصول علي. يجب ان تكون هذه القيمه المسار الكامل ل# file(drive:\GDPR\userClassDetails.csv)
   . ملاحظات
   نحن ب# حاجه الي ان يقوم Microsoft.IdentityModel.Clients.ActiveDirectory.dll و Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll مطلوبه
#>
المعلمه (
    [parameter(Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [فاليداتيسكريبت ({
        اذا كانت (-غير ($_ | تيستباث)) {
            طرح "أوسيركلاسديتايلسفيلي غير موجود".
        }
        اذا كانت (-غير ($_ | طرفيه-باثتيبي تيستباث)) {
            طرح "يجب ان تكون الوسيطه أوسيركلاسديتايلسفيلي ملف. مسارات المجلدات غير مسموح. "
        }
        اذا كانت (_ $-نوتماتش "(\.csv)") {
            طرح "يجب ان تكون أوسيركلاسديتايلسفيلي ملف مفصول ب# فاصله، انشاؤها ب# استخدام UserClasses.ps1 الحصول علي"
        }
        ارجاع $true
    })]
    [سلسله] $userClassDetailsFile
)

# تحميل ADAL
اضافه نوع-مسار ".\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
$educationEndpoint = "https://graph.microsoft.com/beta/education/"
$script: أوسيركلاسديتايلس = @ ()
$script: جيتاسيجنمينتسريبورت = @ ()
$script: ماكسريترياتيمبت = 3
$script: أوتهيديرس = $null
$script: أوثينتيكاتيونريسولت = $null
$graphEndpoint = "https://graph.microsoft.com"
$authString = "https://login.windows.net/common"

#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
}

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

ل ($i = 1؛ $i-لي $script: ماكسريترياتيمبت؛ $i + +)
    {
        حاول
        {
            $APIResult = WebRequest استدعاء-"الحصول علي طريقه"-Uri $url-رؤوس $script: أوتهيديرس
            $resultCount = 0
            اذا كانت ($OperationName-eq "جيتاسيجنمينتس")
            {
                $valueStartIndex = ($APIResult.content.indexof('"value":') + 8)
                $valueEndIndex = $APIResult.content.Length
                $valueString = $APIResult.content.substring ($valueStartIndex، $valueEndIndex $valueStartIndex-1)
                $resultCount = (($valuestring | تحديد سلسله ' "classId": '-اللماتشيس). Matches.Count)
            }
            اخر
            {
                $submissionsJson = $APIResult.content | Json كونفيرتفروم
                $resultCount = $submissionsJson.value.count
            }

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

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

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

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

تعيينات #get
تعمل تعيينات الحصول علي
{
    المعلمه (
        [Parameter(Mandatory=$true)] $classDetails
    )
    حاول
    {
        $classId = $classDetails.ClassId
        $userId = $classDetails.UserId
        $role = $classDetails.Role
        $className = $classId
        اذا كانت ($classDetails.ClassName-ج $null-و 0 $classDetail.ClassName.Length-ج)
        {
            $className = $classDetails.ClassName
        }
        $getAssignmentsUri = ("{0} / classes('{1}') / assignments?TargetUserId = {2} & أوسيركلاسرولي = {3}"-f $educationEndpoint، $classId، $userId، $role)
        $assignments = $null
        $assignments = ريقويستويثريتري استدعاء--classId $classId url $getAssignmentsUri-className $className-أوبيراتيونامي "جيتاسيجنمينتس"
        $outputstring = ""
        اذا كانت ($assignments-ج $null)
        {
            $valueStartIndex = ($assignments.content.indexof('"value":') + 8)
            $valueEndIndex = $assignments.content.Length
            $valueString = $assignments.content.substring ($valueStartIndex، $valueEndIndex $valueStartIndex-1)

            $valueString = $valueString.TrimEnd("]")
            $valueString = $valueString.TrimStart("[")
            $indexValues = (($valuestring | تحديد سلسله ' "classId": '-اللماتشيس). Matches.Index)
            الكتابه-مضيف "$($indexValues.count) ريتريفيد تعيينات ل# فئه $className"
            $assignmentsStrings = @ ()
            ل ($i = 0; $indexValues.count-lt $i; $i + +)
            {
                اذا كانت ($indexValues.count-ج $i-1)
                {
                    $assignmentsStrings $valueString.substring + = (($indexValues [$i]-1)، ($indexValues [$i + 1]-$indexValues [$i]-1))
                }
                اخر
                {
                    $valueString.substring(($indexValues[$i]-1) + = $assignmentsStrings، ($valueString.Length-$indexValues [$i] + 1))
                }

                اذا كانت ($role-eq "طالب")
                {
                    $submissionsIndex = $assignmentsStrings[$i].indexof('"submissions":[')
                    $assignmentsStrings [$i] = .substring $assignmentsStrings [$i] (0, $submissionsIndex + 15)
                    $assignmentsStrings [$i] = $assignmentsStrings [$i] + "]}"
                }
            }
            ل ($i = 0; $assignmentsStrings.Length-lt $i; $i + +)
            {
                $assignmentString = $assignmentsStrings [$i]
                $assignmentJson = $assignmentString | Json كونفيرتفروم
                $assignmentId = $assignmentJson.id
                الكتابه-مضيف "بدء عمليات الارسال ل# التعيين $($assignmentJson.displayName)"
                $sumbmissionsEndpoint = ("{0} / classes('{1}') / assignments('{2}') / submissions?TargetUserId = {3} & أوسيركلاسرولي = {4}"-f $educationEndpoint، $classId، $assignmentId، $userId، $role)
                $submissions = ريقويستويثريتري استدعاء-classId $classId-url $sumbmissionsEndpoint-classname $className-أوبيراتيونامي "جيتسوبميشنس"
                اذا كانت ($submissions-ج $null-و $submissions. Content.Length-ج 0)
                {
                    $submissionsJson = $submissions.content | Json كونفيرتفروم
                    الكتابه-مضيف "ريتريفيد $($submissionsJson.value.count) عمليات الارسال ل# التعيين $($assignmentJson.displayName)"
                    $valueStartIndex = ($submissions.content.indexof('"value":') + 9)
                    $valueEndIndex = $submissions.content.lastindexof("}")
                    $submissionsString = $submissions.content.substring ($valueStartIndex، $valueEndIndex $valueStartIndex-1)
                    $assignmentsStrings [$i] = $assignmentsStrings [$i]. TrimEnd("]}")
                    $assignmentsStrings [$i] = $assignmentsStrings [$i] + $submissionsString + "]}"
                }
            }

            $completeAssigmentsString = "["
            اذا كانت ($assignmentsStrings.Length-eq 0)
            {
                $completeAssigmentsString = $completeAssigmentsString + "]"
            }
            اخر
            {
                ل ($i = 0; $assignmentsStrings.Length-lt $i; $i + +)
                {
                    اذا كانت ($assignmentsStrings.Length-eq $i-1)
                    {
                        $completeAssigmentsString = $completeAssigmentsString + $assignmentsStrings [$i] + "]"
                    }
                    اخر
                    {
                        $completeAssigmentsString = $completeAssigmentsString + $assignmentsStrings [$i] + ","
                    }
                }
            }
            $outputstring = ' {"ClassId": "' + $classId + '"، "اسم _ الفئه": "' + $className + ' التعيينات", "": ' + $completeAssigmentsString + '} '
            $dateTimeStamp = $(تاريخ بدء-f س س س س-ش-ي ي)
            $fileName = $directoryPath + "\" + $className + "_" + $userId + "_" + $dateTimeStamp + ".json"
            $outputstring | الخارج الملفات $fileName
            الكتابه Host("Assignments file for $className is generated at $fileName")
            $classDetails.GetSubmissionsProcessed = "true"
            $script: أوسيركلاسديتايلس | Csv التصدير-مسار $($directoryPathOfFile)-نوتيبينفورميشن-فرض
        }
    }
    التقاط
    {
        خطا في الكتابه $_. Exception.Message
    }

}                                           

$directoryPathOfFile = (الحصول علي العنصر-$($userClassDetailsFile) المسار). FullName
$directoryPath = (الحصول علي العنصر-مسار ". \"-وضع الاسهاب). FullName
$script: أوتهيديرس = أوتهيديرس الحصول علي
$script: أوسيركلاسديتايلس = csv-استيراد $userClassDetailsFile

$progressTracker = 1؛
#loop عبر كل خط الرسم و# الحصول علي عمليات الارسال اذا كان العمود جيتسوبميسيونسبروسيسيد false
foreach ($classDetail في $script: أوسيركلاسديتايلس)
{
    تقدم الكتابه-النشاط "بدء التعيينات الخاصه ب# المستخدم"-الحاله "معالجه ل# فئه: $($classDetail.classId)"-PercentComplete ($progressTracker / $(البرنامج النصي $: أوسيركلاسديتايلس | ميسوريوبجيكت) .count * 100)
    اذا كانت ($classDetail.GetSubmissionsProcessed-eq "False")
    {
        الكتابه-مضيف "الحصول علي تعيينات ل $($classDetail.ClassName)"
        الحصول علي تعيينات-كلاسديتيلس $classDetail
    }
    $بروجريستراكير + +
}

$script: جيتاسيجنمينتسريبورت | Csv التصدير-مسار.\GetAssignmentsReport.csv-نوتيبينفورميشن
الكتابه-مضيف "التقارير يتم انشاء file(GetAssignmentsReport.csv) في $directoryPath\GetAssignmentsReport.csv"
المضيف الكتابه "تفاصيل الفئه Updated file($($directoryPathOfFile)) و# المحدثه الملف الذي تم انشاؤه في $($directoryPathOfFile)"

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

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

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

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

×