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

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

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

حذف-تعيينات EDU

< #
   . مختصر
    حذف البيانات تعيينات Edu مستخدم في مجموعه من الفئات المحدده في ملف csv.
    . وصف
    قراءه البرنامج النصي تفاصيل الفئه المستخدم من ملف csv الادخال. الحصول علي التعيينات و# عمليات الارسال ل# كل تعيين و# ثم احذف عمليات الارسال، ايضا انشاء file(DeleteAssignmentsReport.csv) تقرير ل# الحصول علي معلومات اضافيه من المعلومات المكالمه. عند اكتمال عمليه الحذف الارسال يتم تحديثه العمود ديليتيسوبميسيونسبروسيسيد الي true ل# تلك الفئه معينه. اذا فشلت عمليه البرنامج النصي بينهما نحن يمكنك اعاده تشغيل البرنامج النصي ب# استخدام ملف الادخال نفسها، ل# انه سيتم تحديث الملف الحذف الاخيره ل# الارسال.
   . مثال
    .\Delete-EduAssignments.ps1-أوسيركلاسديتايلسفيلي < المسار الكامل ل# ملف csv تفاصيل الفئه المستخدم >
    هذا الي حذف كل عمليات الارسال، لكن لا يؤدي الي ازاله معلومات المستخدم من الفئه
    .\Delete-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،

[parameter(Mandatory=$false)]
    [تبديل] $removeMemberFromClass
)
# تحميل 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=$true)] [فاليداتيسيت (' الحصول علي ', ' حذف '، ignorecase = $true)] $httpmethod،
        [Parameter(Mandatory=$false)] $classId،
        [Parameter(Mandatory=$false)] $className،
        [Parameter(Mandatory=$true)] $OperationName
    )

ل ($i = 1؛ $i-لي $script: ماكسريترياتيمبت؛ $i + +)
    {
        حاول
        {
            $APIResult = WebRequest استدعاء-اسلوب $httpmethod-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
                اسلوب = $httpmethod
                ريسبونسيكودي = $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
                اسلوب = $httpmethod
                ريسبونسيكودي = $responseCode
                اسم الفئه = $className
                ClassId = $classId
                معرف الطلب = $requestId
                ستاتوسديسكريبشن = $_. Exception.Message
                نومبيروفاتيمبتس = $i
                أوبيراتيونامي = $OperationName
                ريسولتكونت = $resultCount
            }            

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

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

عضو #Remove من الفئه
الداله ميمبيرفرومكلاس ازاله
{
    المعلمه (
        [Parameter(Mandatory=$true)] $classDetails
    )

$removeMemberUrl = "{0}/v1.0/groups/{1}/members/{2}/'$ref"-f $graphEndpoint, $($classDetails.ClassId), $($classDetails.UserId)
    حاول
    {
        استدعاء ريقويستويثريتري-url $removeMemberUrl-هتبميثود حذف-classId $($classDetails.ClassId)-className $($classDetails.ClassName)-أوبيراتيونامي "ريموفيميمبيرفرومكلاس" | الخارج قيمه فارغه
    }
    التقاط
    {
        طرح $_
    }

}    

تعمل تعيينات حذف
{
    المعلمه (
        [Parameter(Mandatory=$true)] $classDetail
    )

حاول
    {
        $classId = $classDetail.ClassId
        $className = $classDetail.ClassName
        $userId = $classDetail.UserId
        $role = $classDetail.Role
        $getAssignmentsUri = ("{0} / classes('{1}') / assignments?TargetUserId = {2} & أوسيركلاسرولي = {3}"-f $educationEndpoint، $classId، $userId، $role)
        $assignments = $null
        $assignments = ريقويستويثريتري استدعاء-url $getAssignmentsUri-هتبميثود الحصول علي اسم الفئه--classId $classId $className-أوبيراتيونامي "جيتاسيجنمينتس"
        اذا كانت ($assignments-ج $null-و $assignments.content-ج $null-و $role-eq "طالب"))
        {
            $assignmentsCount = ((($assignments.content) | كونفيرتفرومجسون) .value) .count
            الكتابه-مضيف "تعيينات $assignmentsCount ريتريفيد ل# فئه $className"
            $assignmentsTracker = 0
            foreach ($assignment في (($assignments.content) | كونفيرتفرومجسون) .value)
            {
                $assignmentName = $assignment.displayName
                $assignmentId = $assignment.id
                $submissions = $assignment.submissions
                الكتابه-مضيف "حذف عمليات الارسال ل $($assignmentName)"
                $submissionsTracker = 0
                foreach ($submission في $submissions)
                {
                    $deleteSDSSubmissionUri = "{0} / بيتا / التعليم / الفئات / {1} /assignments/ {2} /submissions/ {3} ?TargetUserId = {4} & أوسيركلاسرولي = طالب"-f $graphEndpoint، $classId، $assignmentId, $($submission.id)، $userId
                    اذا كانت (($submissionsTracker-eq ($submissions. طول-1))-و ($assignmentsTracker-eq ($assignmentsCount-1))-($removeMemberFromClass.IsPresent) و)
                    {
                        المضيف الكتابه "الارسال حذف و# كلاسينفو ل# المستخدم"
                        $deleteSDSSubmissionUri = $deleteSDSSubmissionUri + "& كلينوبوسيركلاسداتا = true"
                    }
                    $deleteResponse = ريقويستويثريتري استدعاء-حذف عنوان url $deleteSDSSubmissionUri-هتبميثود-classId $classId-className $className-أوبيراتيونامي "ديليتيسوبميشن"
                    اذا كانت ($deleteResponse-ج $null-و $deleteResponse.Content.Length-ج 0-و $submissionsTracker-eq ($submissions. طول-1))
                    {
                        $classDetail.DeleteSubmissionsProcessed = "true"
                        $script: أوسيركلاسديتايلس | Csv التصدير-مسار $($directoryPathOfFile)-نوتيبينفورميشن-فرض
                    }
                    $سوبميسيونستراكير + +
                }
                $أسيجنمينتستراكير + +
            }
        }
    }
    التقاط
    {   
        طرح $_
    }
}

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

$progressTracker = 0؛
foreach ($classDetail في $script: أوسيركلاسديتايلس)
{
    تقدم الكتابه-النشاط "حذف التعيينات الخاصه ب# المستخدم"-الحاله "معالجه ل# فئه: $classDetail.classId"-PercentComplete ($progressTracker/$script:userClassDetails.count * 100)
    اذا كانت ($classDetail.DeleteSubmissionsProcessed-eq "False")
    {
        حاول
        {
            if($removeMemberFromClass.IsPresent)
            {
                الكتابه-مضيف "حذف مستخدم من $($classDetail.ClassName)"
                ازاله ميمبيرفرومكلاس-كلاسديتيلس $classDetail
            }
            الكتابه-مضيف "حذف التعيينات ل# المستخدم ل $($classDetails.ClassName)"
            حذف تعيينات-كلاسديتيلس $classDetail
        }
        التقاط
        {
            خطا في الكتابه $_. Exception.Message
        }
    }
    $بروجريستراكير + +
}

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

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

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

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

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

×