📚 لیول 3: ایڈوانسڈ سسٹم انجینئر - 📖 سبق 1: پاور شیل کا تعارف - ونڈوز کی طاقتور اسکرپٹنگ لینگویج


 

📚 لیول 3: Advanced System Engineer - سبق نمبر 1

📖 سبق 1: PowerShell Introduction - ونڈوز کی طاقتور اسکرپٹنگ لینگویج

مکمل تفصیل کے ساتھ پیش ہے:


⚡ سبق 1: PowerShell Introduction - کمانڈ لائن سے آگے

🎯 PowerShell کا تعارف

PowerShell مائیکروسافٹ کی ایک طاقتور اسکرپٹنگ لینگویج اور کمانڈ لائن شیل ہے جو cmd سے کہیں زیادہ صلاحیتیں رکھتی ہے۔ یہ آبجیکٹ پر مبنی ہے اور سسٹم ایڈمنسٹریشن کو آسان بناتی ہے۔

✨ اس سے کیا ممکن ہے؟

  • پیچیدہ انتظامی کاموں کا آٹومیشن

  • سسٹم کے تمام پہلوؤں تک رسائی

  • ڈیٹا پروسیسنگ اور تجزیہ

  • ریموٹ سسٹمز کا انتظام

  • APIs اور ویب سروسز کے ساتھ انٹیگریشن

🎯 PowerShell vs Command Prompt

فیچرCommand PromptPowerShell
آؤٹ پٹText (سادہ متن)Objects (آبجیکٹس)
کمانڈزمحدود (100+)ہزاروں (cmdlets)
اسکرپٹنگمحدود (batch)مکمل پروگرامنگ زبان
پائپ لائنText بھیجتا ہےObjects بھیجتا ہے
ریموٹ مینجمنٹمحدودمکمل (WinRM)

🛠️ شروع کرنا

PowerShell کھولنے کے طریقے:

1. Windows Terminal (ترجیحی):

  • Windows + X → Windows Terminal (Admin)

  • یا Windows Terminal میں PowerShell ٹیب

2. PowerShell کا آغاز:

  • Start میں "PowerShell" لکھیں

  • "Windows PowerShell" (Admin) منتخب کریں

پہلی کمانڈ:

powershell
Get-Command

(تمام دستیاب کمانڈز دکھاتا ہے)


📋 بنیادی cmdlets (PowerShell کمانڈز)

Get-Command - کمانڈز ڈھونڈنا:

powershell
# تمام cmdlets دیکھنا
Get-Command -CommandType Cmdlet

# مخصوص نام سے کمانڈز
Get-Command *process*

# verb کے حساب سے
Get-Command -Verb Get

Get-Help - مدد حاصل کرنا:

powershell
# بنیادی مدد
Get-Help Get-Process

# تفصیلی مدد
Get-Help Get-Process -Detailed

# مثالیں
Get-Help Get-Process -Examples

Get-Member - آبجیکٹ پراپرٹیز:

powershell
# process آبجیکٹ کی پراپرٹیز
Get-Process | Get-Member

# specific properties
Get-Process | Get-Member -MemberType Property

📊 عملی مثالیں

A. پروسیس مینجمنٹ

تمام پروسیس دیکھنا:

powershell
Get-Process

مخصوص پروسیس:

powershell
Get-Process -Name chrome

پروسیس ختم کرنا:

powershell
Stop-Process -Name notepad -Force

پروسیس شروع کرنا:

powershell
Start-Process notepad.exe

B. سروس مینجمنٹ

تمام سروسز:

powershell
Get-Service

چل رہی سروسز:

powershell
Get-Service | Where-Object {$_.Status -eq "Running"}

سروس شروع/روکنا:

powershell
Start-Service -Name Spooler
Stop-Service -Name Spooler
Restart-Service -Name Spooler

C. فائل سسٹم

فائلز اور ڈائرکٹریز:

powershell
# تمام فائلز
Get-ChildItem

# مخصوص قسم
Get-ChildItem *.txt

# ڈائرکٹریز
Get-ChildItem -Directory

فائل مواد پڑھنا:

powershell
Get-Content C:\Temp\file.txt

فائل بنانا:

powershell
New-Item -Path C:\Temp\new.txt -ItemType File

🔍 آؤٹ پٹ کی تشریح

Get-Process آؤٹ پٹ:

text
Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  ProcessName
-------  ------    -----      -----     ------     --  -----------
    520      32    25000      35000       45.23   1234  chrome
    245      18    12000      18000       12.34   5678  explorer
    89       5     4500       6000        2.45    9012  notepad

Get-Service آؤٹ پٹ:

text
Status   Name               DisplayName
------   ----               -----------
Running  Spooler            Print Spooler
Stopped  WSearch            Windows Search
Running  WinRM              Windows Remote Management

⚠️ ممکنہ مسائل اور حل

مسئلہ 1: "Execution Policy" کی پابندی

وجہ: PowerShell کی سیکیورٹی سیٹنگز
حل:

powershell
# موجودہ پالیسی چیک
Get-ExecutionPolicy

# پالیسی تبدیل (admin rights required)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

مسئلہ 2: "Access is denied"

وجہ: Administrator rights کی ضرورت
حل:

  • PowerShell کو "Run as administrator" کھولیں

مسئلہ 3: کمانڈ نہ ملنا

وجہ: module انسٹال نہیں
حل:

powershell
# ماڈیول انسٹال
Install-Module -Name ModuleName

# ماڈیول امپورٹ
Import-Module ModuleName

💼 عملی استعمال کے منظرنامے

منظرنامہ 1: سسٹم ہیلتھ چیک

powershell
# CPU usage
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5

# Memory usage
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5

# Disk space
Get-PSDrive -PSProvider FileSystem

منظرنامہ 2: نیٹ ورک انفارمیشن

powershell
# IP configuration
Get-NetIPAddress

# Network adapters
Get-NetAdapter

# Active connections
Get-NetTCPConnection

منظرنامہ 3: لاگ فائل تجزیہ

powershell
# ایونٹ لاگ
Get-EventLog -LogName System -Newest 10

# errors ڈھونڈنا
Get-EventLog -LogName Application -EntryType Error | Select-Object -First 10

منظرنامہ 4: خودکار رپورٹنگ

powershell
# HTML رپورٹ بنانا
Get-Process | ConvertTo-Html -Property Name,CPU,WorkingSet | Out-File processes.html

# CSV ایکسپورٹ
Get-Service | Export-Csv services.csv -NoTypeInformation

🔧 PowerShell کی طاقت

آبجیکٹ پائپ لائن:

powershell
# Process list میں سے chrome ڈھونڈنا
Get-Process | Where-Object {$_.Name -like "*chrome*"}

# پراپرٹی سلیکٹ کرنا
Get-Process | Select-Object Name,CPU,WorkingSet

# سارٹنگ
Get-Process | Sort-Object CPU -Descending

پاورپل expressions:

powershell
# حسابی پراپرٹیز
Get-Process | Select-Object Name, @{Name="Memory(MB)"; Expression={$_.WorkingSet/1MB}}

لوپنگ اور کنڈیشنز:

powershell
# ہر process کے لیے
Get-Process | ForEach-Object {
    if ($_.CPU -gt 10) {
        Write-Host "$($_.Name) is using high CPU"
    }
}

📝 اسائنمنٹ

عملی کام:

  1. Get-Process | Sort-Object CPU -Descending | Select -First 5 چلائیں

  2. Get-Service | Where-Object {$_.Status -eq "Running"} چلائیں

  3. Get-ChildItem C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object {$_.Extension -eq ".txt"} چلائیں

  4. اپنا پہلا PowerShell script بنائیں

سوالات:

  1. PowerShell اور Command Prompt میں کیا بنیادی فرق ہے؟

  2. آبجیکٹ پائپ لائن کا کیا فائدہ ہے؟

  3. Execution Policy کیا ہے اور کیوں اہم ہے؟

  4. cmdlet اور function میں کیا فرق ہے؟

مشق:

  1. ایک PowerShell script لکھیں جو تمام services کی HTML رپورٹ بنائے

  2. top 5 memory-consuming processes ڈھونڈیں

  3. system uptime معلوم کریں


💡 بہترین مشقیں

  • cmdlets کے لیے Verb-Noun naming convention یاد رکھیں

  • Get-Help کو باقاعدگی سے استعمال کریں

  • scripts میں error handling شامل کریں

  • comments لکھنا نہ بھولیں

  • PowerShell ISE یا VS Code استعمال کریں


⚠️ اہم نوٹ (ڈسکلیمر)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🔴 براہ کرم غور سے پڑھیں

یہ مواد آئی ٹی درسگاہ فورم کی جانب سے محض تعلیمی اور معلوماتی مقاصد کے لیے فراہم کیا جا رہا ہے۔

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⛔ ذمہ داری سے انکار:

• اس کورس میں دی گئی تمام کمانڈز، کوڈز، اور طریقہ کار صرف تعلیمی مقاصد کے لیے ہیں
• ان کا استعمال صرف آپ کی اپنی ذمہ داری پر ہوگا
• کسی بھی نقصان، ڈیٹا کے ضیاع، سسٹم کی خرابی، یا کسی دوسرے مسائل کی صورت میں آئی ٹی درسگاہ فورم، اس کے منتظمین، یا اساتذہ میں سے کوئی بھی ذمہ دار نہیں ہوگا

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✅ تجاویز:

• کسی بھی کمانڈ کو چلانے سے پہلے اسے اچھی طرح سمجھ لیں
• اہم ڈیٹا کا بیک اپ ضرور بنا لیں
• پہلے ٹیسٹ سسٹم پر کمانڈز آزمائیں
• اگر کسی کمانڈ کے بارے میں یقین نہ ہو تو ماہرین سے مشورہ کریں

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 قانونی پہلو:

اس کورس کا مقصد صرف علم کا فروغ ہے۔ آئی ٹی درسگاہ فورم ان کمانڈز کے استعمال سے ہونے والے کسی بھی نقصان کا ذمہ دار نہیں ہوگا۔

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📌 یاد رکھیں:

text
🛡️ پہلے بیک اپ، پھر کمانڈ
🔍 پہلے سمجھیں، پھر چلائیں
💭 شک ہو تو ماہر سے پوچھیں
⚡ احتیاط ہی بہترین حفاظت ہے

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🚀 اگلا سبق:

"PowerShell Variables and Data Types"

کوئی تبصرے نہیں:

ایک تبصرہ شائع کریں