هلا جي بي تيهلا جي بي تيهلا جي بي تي
الأوامرالمهاراتالأذواقسير العملالفئاتالوسومرواد الأوامر
كتابللأطفالالمطورون
تسجيل الدخولإنشاء حساب
هلا جي بي تي

رفيق عربي هادئ لاكتشاف وحفظ ومشاركة أوامر الذكاء الاصطناعي بوضوح وأناقة.

info@halaGPT.com0599161315

تصفّح

  • البرومبتات
  • التصنيفات
  • الوسوم
  • المهارات
  • سير العمل
  • الذوق
  • نجوم البرومبت
  • اكتشف

تعلّم

  • الكتاب
  • دليل كتابة البرومبتات
  • للأطفال
  • للمطوّرين
  • واجهة API
  • استضافة ذاتية

الشركة

  • من نحن
  • الدعم
  • الخصوصية
  • الشروط
  • العلامة التجارية
أهم التصنيفات:Image GenerationCodingVibe CodingWeb DevelopmentEducationAgent Skill
CC0 2026 هلا جي بي تي
صنع في السعودية 🇸🇦

سكربت PowerShell لنقل حسابات Active Directory المعطّلة

Najdi

يوجّه هذا الطلب لإنشاء سكربت PowerShell يكتشف حسابات المستخدمين المعطّلة في Active Directory وينقلها إلى وحدة تنظيمية (OU) محددة مع معالجة الأخطاء وتسجيل الإجراءات.

View original English source
H
@community
منذ 6 أشهر25 ديسمبر 2025 في 02:31 م
Automations•SaudiNajdiArabicAutomation

المحتوى

تصرّف بصفتك مسؤول أنظمة. أنت تدير مستخدمي Active Directory (AD). مهمتك هي إعداد سكربت PowerShell يحدد جميع حسابات المستخدمين المعطّلة وينقلها إلى وحدة تنظيمية (OU) مخصصة.

المطلوب:
- استخدم PowerShell للاستعلام من AD عن حسابات المستخدمين المعطّلة.
- انقل هذه الحسابات إلى الوحدة التنظيمية (OU) المحددة.

الضوابط:
- تأكد أن السكربت يتعامل مع الأخطاء، مثل عدم وجود الوحدة التنظيمية (OU) أو وجود مشاكل في الصلاحيات.
- سجّل الإجراءات المنفذة لأغراض التدقيق والمراجعة.

مثال:
```powershell
# استيراد وحدة Active Directory
try {
    Import-Module ActiveDirectory -ErrorAction Stop
} catch {
    Write-Error "تعذّر استيراد وحدة Active Directory: $_"
    exit 1
}

# تحديد الوحدة التنظيمية المستهدفة ومسار سجل العمليات
$TargetOU = "OU=DisabledUsers,DC=riyadhcorp,DC=local"
$LogPath = "C:\Logs\DisabledUsersMove.log"

# التأكد من وجود مجلد السجل
$LogDir = Split-Path -Path $LogPath -Parent
if (-not (Test-Path -Path $LogDir)) {
    New-Item -Path $LogDir -ItemType Directory -Force | Out-Null
}

function Write-Log {
    param([string]$Message)
    $Entry = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - $Message"
    Add-Content -Path $LogPath -Value $Entry
    Write-Host $Entry
}

# التحقق من وجود الوحدة التنظيمية المستهدفة
try {
    $null = Get-ADOrganizationalUnit -Identity $TargetOU -ErrorAction Stop
} catch {
    Write-Log "تعذّر الوصول إلى الوحدة التنظيمية المستهدفة $TargetOU. تحقق من المسار والصلاحيات. التفاصيل: $_"
    exit 1
}

# البحث عن كل حسابات المستخدمين المعطّلة
try {
    $DisabledUsers = Get-ADUser -Filter { Enabled -eq $false } -ErrorAction Stop
} catch {
    Write-Log "تعذّر الاستعلام عن حسابات المستخدمين المعطّلة. تحقق من الصلاحيات والاتصال بـ AD. التفاصيل: $_"
    exit 1
}

if (-not $DisabledUsers) {
    Write-Log "لا توجد حسابات مستخدمين معطّلة للنقل."
    exit 0
}

# نقل كل مستخدم معطّل إلى الوحدة التنظيمية المستهدفة
foreach ($User in $DisabledUsers) {
    try {
        Move-ADObject -Identity $User.DistinguishedName -TargetPath $TargetOU -ErrorAction Stop
        Write-Log "تم نقل $($User.SamAccountName) إلى $TargetOU"
    } catch {
        Write-Log "تعذّر نقل $($User.SamAccountName). التفاصيل: $_"
    }
}
```

التعليقات (0)