كمبيوتر بعيد

أحداث من سجل النظام على الكمبيوتر المحلي



الحصول على أحداث من سجل النظام على الكمبيوتر المحلي
$j = Start-Job -ScriptBlock {Get-EventLog -Log system} -Credential domain01\user01
 $j | Format-List -Property *

$j.JobStateInfo.state

$results = Receive-Job -Job $j
$results


تشغيل البرنامج النصي كمهمة خلفية
Start-Job -FilePath "c:\scripts\sample.ps1" 


الحصول على عملية بالاسم باستخدام مهمة الخلفية
Start-Job -Name "WinRm" -ScriptBlock {Get-Process winrm}


جمع وحفظ البيانات باستخدام وظيفة الخلفية
Start-Job -Name GetMappingFiles -InitializationScript {Import-Module MapFunctions} -ScriptBlock {Get-Map -Name * | Set-Content D:\Maps.tif} -RunAs32



بدأت جميع وظائف الخلفية في الدورة الحالية
Get-Job


إيقاف وظيفة باستخدام معرف مثيل
$j = Get-Job -Name Job1
$ID = $j.InstanceID
$ID



احصل على وظائف تتضمن أمر محدد
 Get-Job -Command "*get-process*"



الحصول على الوظائف التي لم يتم تعيين اسم
Get-Job -Name Job*



استخدام كائن مهمة لتمثيل المهمة في أمر
Start-Job -ScriptBlock {Get-Process} -Name MyJob
$j = Get-Job -Name MyJob
$j
 للحصول على نتائج المهمة.
Receive-Job -Job $j


الحصول على جميع الوظائف بما في ذلك الوظائف التي كتبها طريقة مختلفة
Start-Job -ScriptBlock {Get-EventLog System}

Invoke-Command -ComputerName S1 -ScriptBlock {Get-EventLog System} -AsJob

Invoke-Command -ComputerName S2 -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog System}}


يستخدم الأمر الرابع ** جيت-جوب ** للحصول على الوظائف المخزنة على الكمبيوتر المحلي. ** الخاصية بسجوبتيبنام ** الوظائف، التي أدخلت في ويندوز بويرشيل 3.0، يدل على أن المهمة المحلية بدأت باستخدام ** بدء العمل ** كمدليت هو مهمة الخلفية وبدأت المهمة في جلسة عمل عن بعد باستخدام ** استدعاء القيادة ** كمدليت هو وظيفة عن بعد.
Get-Job


Invoke-Command -ComputerName S2 -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog System}}




التحقيق في وظيفة فاشلة
Start-Job -ScriptBlock {Get-Process}

(Get-Job).JobStateInfo | Format-List -Property *



عرض جميع الخصائص في كائن المهمة يظهر أن المهمة تحتوي على وظيفة طفل اسمها Job2.
Get-Job | Format-List -Property *

(Get-Job -Name job2).JobStateInfo.Reason



لأمر الأول يحصل على وظائف في الدورة الحالية. الإخراج يتضمن وظيفة خلفية، وظيفة عن بعد والعديد من الحالات من وظيفة مجدولة. يبدو أن الوظيفة البعيدة، Job4، قد فشلت
Get-Job



الحصول على نتائج لوظيفة معينة
 $job = Start-Job -ScriptBlock {Get-Process}
 Receive-Job -Job $job

$job = Start-Job -ScriptBlock {Get-Process}
 $job | Receive-Job




 يحتوي كائن المهمة على ثلاث وظائف فرعية، واحدة لكل وظيفة على كل كمبيوتر بعيد.
$j = Invoke-Command -ComputerName Server01, Server02, Server03 -ScriptBlock {Get-Service} -AsJob
$j.ChildJobs


هذه الأوامر الحصول على نتائج واحدة من عدة وظائف خلفية تعمل على أجهزة الكمبيوتر البعيدة.
مثال 4: الحصول على نتائج وظائف الخلفية على أجهزة الكمبيوتر البعيدة متعددة
$s = new-pssession -computername Server01, Server02, Server03
$j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog -logname system}}
$results = Invoke-Command -Session $s -ScriptBlock {Receive-Job -Job $Using:j}


إيقاف وظيفة على كمبيوتر بعيد باستخدام إنفوك-كوماند

$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
PS C:\> $j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog System}}
PS C:\> Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }


 إيقاف وظيفة الخلفية
Stop-Job -Name "Job1"
Stop-Job -Id 1, 3, 4


إيقاف جميع وظائف الخلفية
Get-Job | Stop-Job

Stop-Job -State Blocked

يقاف مهمة على كمبيوتر بعيد
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog System} -AsJob
$j | Stop-Job -PassThru


انتظر بدء العمل على أجهزة الكمبيوتر عن بعد باستخدام 
$s = New-PSSession Server01, Server02, Server03
 Invoke-Command -Session $s -ScriptBlock {Start-Job -Name Date1 -ScriptBlock {Get-Date}}
 $done = Invoke-Command -Session $s -Command {Wait-Job -Name Date1}
 $done.Count

 تحديد متى تنتهي مهمة الخلفية الأولى
$s = New-PSSession (Get-Content Machines.txt)
$c = 'Get-EventLog -LogName System | where {$_.EntryType -eq "error" --and $_.Source -eq "LSASRV"} | Out-File Errors.txt'
 Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {$Using:c}
 Invoke-Command -Session $s -ScriptBlock {Wait-Job -Any}

تعيين وقت الانتظار للوظائف على أجهزة الكمبيوتر البعيدة
$s = New-PSSession Server01, Server02, Server03
 $jobs = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-Date}}
$done = Invoke-Command -Session $s -ScriptBlock {Wait-Job -Timeout 30}


 انتظر حتى تنتهي واحدة من عدة وظائف
Wait-Job -id 1,2,5 -Any


انتظر لفترة، ثم السماح للعمل على الاستمرار في الخلفية
Wait-Job -Name "DailyLog" -Timeout 120



 لبدء جلسة تفاعلية مع Server01، كمبيوتر بعيد. عند بدء الجلسة، تتغير موجه الأوامر لتضمين اسم الكمبيوتر.
Enter-PSSession -Computer Server01



الإخراج إلى الملف Process.txt. يتم إرسال الأمر إلى الكمبيوتر البعيد، ويتم حفظ الملف على الكمبيوتر البعيد.
Get-Process Powershell > C:\ps-test\Process.txt



يوضح هذا الأمر كيفية العمل في جلسة تفاعلية مع كمبيوتر بعيد.
$s = New-PSSession -ComputerName Server01
 Enter-PSSession -Session $s


بدء جلسة تفاعلية وتحديد معاملات بورت و كريدنتيال

Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01


يبدأ هذا الأمر جلسة تفاعلية مع الكمبيوتر Server01. يستخدم المعلمة المنفذ لتحديد المنفذ ومعامل الاعتماد لتحديد حساب مستخدم لديه إذن للاتصال بالكمبيوتر البعيد.
 Enter-PSSession -ComputerName Server01
Exit-PSSession


بدء جلسة تفاعلية باستخدام سش
Enter-PSSession -HostName LinuxServer01 -UserName UserA



دء جلسة تفاعلية باستخدام سش وتحديد مفتاح المصادقة بورت والمستخدم

Enter-PSSession -HostName LinuxServer02 -UserName UserA -Port 22 -KeyFilePath c:\<path>\userAKey_rsa


استخدم الكلمة الرئيسية للخروج لإيقاف الجلسة
Enter-PSSession -computername Server01
 exit



 إنشاء خيار جلسة عمل افتراضية
New-PSSessionOption


تكوين جلسة عمل باستخدام كائن خيار جلسة عمل
$pso = New-PSSessionOption -Culture "fr-fr" -MaximumReceivedObjectSize 10MB
New-PSSession -ComputerName Server01 -SessionOption $pso



بدء جلسة تفاعلية
Enter-PSSession -ComputerName Server01 -SessionOption (New-PSSessionOption -NoEncryption -NoCompression)


 تعديل كائن خيار الجلسة
$a = New-PSSessionOption
 $a = New-PSSessionOption
 $a.UICulture = (Get-UICulture)
  $a.OpenTimeout = (New-Timespan -Minutes 4)
 $a.MaximumConnectionRedirectionCount = 1
 $a

$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000



الوفاء بمتطلبات تكوين جلسة عمل عن بعد
$skipCN = New-PSSessionOption -SkipCNCheck
New-PSSession -ComputerName 171.09.21.207 -UseSSL -Credential Domain01\User01 -SessionOption $SkipCN


لأنه يتم تعريف الكمبيوتر بواسطة عنوان إب الخاص به، لا تتطابق قيمة المعلمة كومبوترنام مع أي من الأسماء الشائعة في الشهادة المستخدمة ل طبقة المقابس الآمنة (سل). ونتيجة لذلك، مطلوب الخيار سكيبنشيك.

مثال 7: جعل الوسيطات متاحة لجلسة بعيدة
$team = @{Team="IT"; Use="Testing"}
$TeamOption = New-PSSessionOption -ApplicationArguments $team
$s = New-PSSession -ComputerName Server01 -SessionOption $TeamOption
Invoke-Command -Session $s {$PSSenderInfo.SpplicationArguments}
Invoke-Command -Session $s {if ($PSSenderInfo.ApplicationArguments.Use -ne "Testing") {.\logFiles.ps1} else {"Just testing."}}



Share
Disclaimer: Gambar, artikel ataupun video yang ada di web ini terkadang berasal dari berbagai sumber media lain. Hak Cipta sepenuhnya dipegang oleh sumber tersebut. Jika ada masalah terkait hal ini, Anda dapat menghubungi kami disini.

LATEST ARTICLES

Post a Comment