عملية على الكمبيوتر
لكل عملية على الكمبيوتر
Get-Process | ForEach-Object {$_.ProcessName}
تقسيم الأعداد الصحيحة في مصفوفة
30000, 56798, 12432 | ForEach-Object -Process {$_/1024}
الحصول على طول كافة الملفات في دليل
Get-ChildItem $pshome | ForEach-Object -Process {if (!$_.PSIsContainer) {$_.Name; $_.Length / 1024; " " }}
تعمل على أحدث أحداث النظام
$Events = Get-EventLog -LogName System -Newest 1000
$events | ForEach-Object -Begin {Get-Date} -Process {Out-File -Filepath Events.txt -Append -InputObject $_.Message} -End {Get-Date}
عرض المعلمة بيجين التاريخ والوقت الحاليين. بعد ذلك، تستخدم معلمة بروسيس كمدليت أوت-فيل لإنشاء ملف نصي يسمى events.txt وتخزين خاصية الرسالة لكل من الأحداث في ذلك الملف. أخيرا، يتم استخدام المعلمة إند لعرض التاريخ والوقت بعد اكتمال كل المعالجة.
مثال : تغيير قيمة مفتاح التسجيل
Get-ItemProperty -Path HKCU:\Network\* | ForEach-Object {Set-ItemProperty -Path $_.PSPath -Name RemotePath -Value $_.RemotePath.ToUpper();}
استخدم المتغير التلقائي $ نول
1, 2, $null, 4 | ForEach-Object {"Hello"}
الحصول على قيم الخاصية
Get-Module -List | ForEach-Object -MemberName Path
Get-Module -List | Foreach Path
تقسيم أسماء الوحدات إلى أسماء المكونات
"Microsoft.PowerShell.Core", "Microsoft.PowerShell.Host" | ForEach-Object {$_.Split(".")}
"Microsoft.PowerShell.Core", "Microsoft.PowerShell.Host" | ForEach-Object -MemberName Split -ArgumentList "."
"Microsoft.PowerShell.Core", "Microsoft.PowerShell.Host" | Foreach Split "."
تقوم المعلمة غروببي بترتيب البيانات حول العمليات إلى مجموعات استنادا إلى قيمة خاصية باسبريوريتي الخاصة بهم. تضمن المعلمة وراب عدم اقتطاع البيانات.
Get-Process | Sort-Object starttime | Format-Table -View starttime
يقوم هذا العرض بتحويل ستارتيمي للعملية إلى تاريخ قصير ثم يقوم بتجميع العمليات حسب تاريخ البدء.
Get-Service | Format-Table -Property Name, DependentServices
تنسيق عملية وحساب وقت تشغيلها
Get-Process Notepad | Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
تم تحديد الخاصية توتالرونينغتيم بواسطة جدول تجزئة مع مفتاحين، التسمية والتعبير. يتم تعيين اسم الخاصية إلى مفتاح
$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}
خارج الطابعة بإرسال الإخراج إلى الطابعة الافتراضية أو إلى طابعة بديلة، إذا تم تحديد واحد.
Get-Content $pshome\about_signing.help.txt | Out-Printer
للحصول على محتويات موضوع التعليمات. يتضمن المسار $ بشوم، وهو متغير مدمج يقوم بتخزين دليل التثبيت لنظام التشغيل ويندوز بويرشيل. يقوم مشغل خط أنابيب (|) بتمرير النتائج إلى طابعة خارجية، والتي ترسلها إلى الطابعة الافتراضية.
"Hello, World" | Out-Printer -Name "\\Server01\Prt-6B Color"
أوامره يطبع مرحبا، العالم إلى برت-6B طابعة ملونة على Server01. يستخدم هذا الأمر معلمة الاسم لتحديد الطابعة البديلة. لأن اسم المعلمة اختياري، يمكنك حذفه.
$H = Get-Help -Full Get-WmiObject
Out-Printer -InputObject $H
عمليات الإخراج إلى عرض الشبكة
Get-Process | Out-GridView
هذا الأمر يحصل على العمليات التي تعمل على الكمبيوتر المحلي ويرسلها إلى إطار عرض الشبكة.
مثال 2: استخدام متغير لإخراج العمليات إلى طريقة عرض الشبكة
$P = Get-Process
$P | Out-GridView
*********
أمره أيضا يحصل على العمليات التي تعمل على الكمبيوتر المحلي ويرسلها إلى نافذة عرض الشبكة.
Get-Process | Select-Object -Property Name, WorkingSet, PeakWorkingSet | Sort-Object -Property WorkingSet -Descending | Out-GridView
حفظ الإخراج إلى متغير، ثم إخراج عرض الشبكة
($A = Get-ChildItem -Path $pshome -Recurse) | Out-GridView
عمليات إخراج لجهاز كمبيوتر محدد إلى طريقة عرض الشبكة
Get-Process -ComputerName "Server01" | ogv -Title "Processes - Server01"
إخراج البيانات من أجهزة الكمبيوتر البعيدة إلى عرض الشبكة
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture} | Out-GridView
تشغيلها عن بعد لا يتضمن الأمر أوت-غريدفيو. إذا فعل ذلك، الأمر سوف تفشل عندما حاول فتح نافذة عرض الشبكة على كل من أجهزة الكمبيوتر البعيدة
Get-Process | Out-GridView -PassThru | Export-Csv -Path .\ProcessLog.csv
أمره يتيح لك تحديد عمليات متعددة من النافذة خارج الشبكة. يتم تمرير العمليات التي تحددها إلى الأمر إكسبورت-كسف وكتب إلى الملف ProcessLog.csv.
Powershell.exe -Command "Get-Service | Out-GridView -Wait"
الاشتراك في الأحداث عند بدء عملية جديدة
$Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
Register-ObjectEvent -InputObject $ProcessWatcher -EventName "EventArrived"
الاشتراك في أحداث الكائن على أجهزة الكمبيوتر البعيدة
$S = New-PSSession -ComputerName "Server01, Server02"
Invoke-Command -Session $S -FilePath ProcessCreationEvent.ps1
Invoke-Command -Session $S { get-event }# ProcessCreationEvent.ps1function Enable-ProcessCreationEvent{ $Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", `
(New-Object TimeSpan 0,0,1), `
"TargetInstance isa 'Win32_Process'" $ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query $Identifier = "WMI.ProcessCreated" Register-ObjectEvent -Input $ProcessWatcher -EventName "EventArrived" `
-SourceIdentifier $Identifier -MessageData "Test" -Forward}EnableProcessCreationEvent
الذي يشترك في أحداث إنشاء مثيل على كائن
$Timer = New-Object Timers.Timer
$Timer.Interval = 500
$Job = Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Random -Action {$Random = Get-Random -Min 0 -Max 100}
$Job.gettype().fullnameSystem.Management.Automation.PSEventJob
$Job | Format-List -Property *
تسجيل حدث محرك بويرشيل على أجهزة الكمبيوتر البعيدة
$S = New-PSSession -ComputerName "Server01, Server02"
Invoke-Command -Session $S { Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Forward }
اتخاذ إجراء محدد عند حدوث حدث الخروج
Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
Get-History | Export-Clixml $Home\history.clixml
}
إنشاء صفحة ويب لعرض التاريخ
ConvertTo-Html -InputObject (Get-Date)
إنشاء صفحة ويب لعرض الأسماء المستعارة بويرشيل
Get-Alias | ConvertTo-Html > aliases.htm
Invoke-Item aliases.htm
هذا الأمر بإنشاء صفحة هتمل تسرد الأسماء المستعارة ويندوز بويرشيل في وحدة التحكم الحالية
إنشاء صفحة ويب لعرض أحداث بويرشيل
Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html > pslog.htm
الأمر بإنشاء صفحة هتمل تسمى pslog.htm تعرض الأحداث في سجل أحداث ويندوز بويرشيل على الكمبيوتر المحلي.
Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" > proc.htm; ii proc.htm
إنشاء صفحة ويب لعرض كائنات الخدمة
Get-Service | ConvertTo-Html -CssUri "test.css"
إنشاء صفحة ويب لعرض كائنات الخدمة
Get-Service | ConvertTo-Html -As LIST > services.htm
إنشاء جدول ويب للتاريخ الحالي
Get-Date | cth -Fragment
إنشاء صفحة ويب لعرض أحداث بويرشيل
Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task
إنشاء صفحة ويب لعرض خدمات محددة
Get-Service A* | ConvertTo-Html -Title "Windows Services: Server01" -Body (get-date) -Pre
"<P>Generated by Corporate IT</P>" -Post "For details, contact Corporate IT." > services.htm; ii services.html
تعيين خصائص ميتا و تشارسيت من هتمل
Get-Service | ConvertTo-HTML -Meta @{refresh=10;author="Author's Name";keywords="PowerShell, HTML, ConvertTo-HTML"} -Charset "UTF-8"
يقوم أمره بإنشاء هتمل لصفحة ويب باستخدام العلامات الوصفية للتحديث والمؤلف والكلمات الرئيسية. تم تعيين مجموعة الأحرف للصفحة على أوتف-8
مثال تعيين هتمل إلى شتمل الانتقالية دتد
Get-Service | ConvertTo-HTML -Transitional
Export-Alias -Path "alias.csv" -Append -Description "Appended Aliases" -Force
لأنه يتم تحديد المعلمة نوكلوبر، الأمر سوف تفشل إذا كان ملف Alias.csv موجود بالفعل في الدليل الحالي.
إلحاق الأسماء المستعارة بملف
تصدير الأسماء المستعارة كبرنامج نصي
Export-Alias -Path "alias.ps1" -As Script
Add-Content -Path $Profile -Value (Get-Content alias.ps1)
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -FilePath .\alias.ps1
Get-Date -DisplayHint Date
Get-Date -Format g
Get-Date -UFormat "%Y / %m / %d / %A / %Z"
(Get-Date -Year 2000 -Month 12 -Day 31).DayOfYear
$a = Get-Date
$a.IsDaylightSavingTime()
$a = Get-Date
$a.ToUniversalTime()
$a = Get-WmiObject Win32_Bios -Computer Server01
$a | Format-List -Property Name, @{Label="BIOS Age";Expression={(Get-Date) - $_.ConvertToDateTime($_.ReleaseDate)}}
Get-Date | Add-Content Test.txt
الحصول على برويسس عشوائي
Get-Process | Get-Random
أوامر التصدير من كمبيوتر بعيد
$S = New-PSSession -ComputerName Server01 -Credential Server01\User01
Export-PSSession -Session $S -OutputModule TestCmdlets -Type cmdlet -CommandName *test* -FormatTypeName *
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
يصدر أمره جميع الأوامر وجميع بيانات التنسيق من بسسيون في المتغير $ S في الدورة الحالية. يستخدم الأمر معامل ألوكلوبر لتضمين الأوامر بنفس الأسماء مثل الأوامر في الجلسة الحالية.
أوامر التصدير من بسسيون مغلقة
$Options = New-PSSessionOption -NoMachineProfile
$S = New-PSSession -ComputerName "Server01" -SessionOption $Options
Export-PSSession -Session $S -OutputModule Server01
Remove-PSSession $S
New-PSSession -ComputerName "Server01" -SessionOption $Options
Import-Module Server01
استيراد كافة الأوامر من بسسيون
$S = New-PSSession -ComputerName Server01
Import-PSSession -Session $S
ضافة إلى الدورة الحالية، يمكنك استخدام بناء الجملة المحلي لتشغيلها. لا تحتاج إلى استخدام كمدليت إنفوك-كوماند لتشغيل أمر تم استيراده
$S1 = New-PSSession -ComputerName s1
$S2 = New-PSSession -ComputerName s2
Import-PSSession -Session s1 -Type cmdlet -Name New-Test, Get-Test -FormatTypeName *
Import-PSSession -Session s2 -Type Cmdlet -Name Set-Test -FormatTypeName *
New-Test Test1 | Set-Test -RunType Full
وماند، توقف ويندوز بويرشيل الأمر الذي يقوم بإنشاء الكائنات بمجرد إنشاء العدد المحدد من الكائنات، حتى عندما يظهر الأمر الذي ينشئ الكائنات قبل الأمر تحديد كائن في خط الأنابيب. لإيقاف هذا السلوك الأمثل، استخدم معلمة الانتظار
Get-Process | Select-Object -Property ProcessName, Id, WS
يؤدي هذا الأمر إلى إنشاء الكائنات التي تحتوي على خصائص الاسم و إد و مجموعة العمل (وس) لكائنات العملية.
مثال 2: تحديد الكائنات حسب الخاصية وتنسيق النتائج
Get-Process Explorer | Select-Object -Property ProcessName -ExpandProperty Modules | Format-List
كمدليت لتحديد أسماء العمليات. لأن الخاصية الوحدات النمطية يحتوي على كائن مودولبروسيس يحتوي على العديد من الخصائص يستخدم الأمر معلمة إكساندبروبيرتي للحصول على خصائص الكائنات في خاصية الوحدات النمطية لكل عملية. يستخدم الأمر كمدليت تنسيق قائمة لعرض اسم وحدات كل عملية في قائمة.حدد العمليات باستخدام معظم الذاكرة
Get-Process | Sort-Object -Property WS | Select-Object -Last 5
معلمة الانتظار غير مطلوبة في الأوامر التي تتضمن كمدليت سورت-أوبجيكت لأن سورت-أوبجيكت يعالج كافة الكائنات ثم يقوم بإرجاع مجموعة. يتوفر خيار تحديد الكائن فقط للأوامر التي تعيد الكائنات بشكل فردي عند معالجتها.
حدد اسم وبدء يوم العمليات
Get-Process | Select-Object -Property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}
لكل عملية على الكمبيوتر
Get-Process | ForEach-Object {$_.ProcessName}
تقسيم الأعداد الصحيحة في مصفوفة
30000, 56798, 12432 | ForEach-Object -Process {$_/1024}
الحصول على طول كافة الملفات في دليل
Get-ChildItem $pshome | ForEach-Object -Process {if (!$_.PSIsContainer) {$_.Name; $_.Length / 1024; " " }}
تعمل على أحدث أحداث النظام
$Events = Get-EventLog -LogName System -Newest 1000
$events | ForEach-Object -Begin {Get-Date} -Process {Out-File -Filepath Events.txt -Append -InputObject $_.Message} -End {Get-Date}
عرض المعلمة بيجين التاريخ والوقت الحاليين. بعد ذلك، تستخدم معلمة بروسيس كمدليت أوت-فيل لإنشاء ملف نصي يسمى events.txt وتخزين خاصية الرسالة لكل من الأحداث في ذلك الملف. أخيرا، يتم استخدام المعلمة إند لعرض التاريخ والوقت بعد اكتمال كل المعالجة.
مثال : تغيير قيمة مفتاح التسجيل
Get-ItemProperty -Path HKCU:\Network\* | ForEach-Object {Set-ItemProperty -Path $_.PSPath -Name RemotePath -Value $_.RemotePath.ToUpper();}
استخدم المتغير التلقائي $ نول
1, 2, $null, 4 | ForEach-Object {"Hello"}
الحصول على قيم الخاصية
Get-Module -List | ForEach-Object -MemberName Path
Get-Module -List | Foreach Path
تقسيم أسماء الوحدات إلى أسماء المكونات
"Microsoft.PowerShell.Core", "Microsoft.PowerShell.Host" | ForEach-Object {$_.Split(".")}
"Microsoft.PowerShell.Core", "Microsoft.PowerShell.Host" | ForEach-Object -MemberName Split -ArgumentList "."
"Microsoft.PowerShell.Core", "Microsoft.PowerShell.Host" | Foreach Split "."
تقوم المعلمة غروببي بترتيب البيانات حول العمليات إلى مجموعات استنادا إلى قيمة خاصية باسبريوريتي الخاصة بهم. تضمن المعلمة وراب عدم اقتطاع البيانات.
Get-Process | Sort-Object starttime | Format-Table -View starttime
يقوم هذا العرض بتحويل ستارتيمي للعملية إلى تاريخ قصير ثم يقوم بتجميع العمليات حسب تاريخ البدء.
Get-Service | Format-Table -Property Name, DependentServices
تنسيق عملية وحساب وقت تشغيلها
Get-Process Notepad | Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
تم تحديد الخاصية توتالرونينغتيم بواسطة جدول تجزئة مع مفتاحين، التسمية والتعبير. يتم تعيين اسم الخاصية إلى مفتاح
$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}
خارج الطابعة بإرسال الإخراج إلى الطابعة الافتراضية أو إلى طابعة بديلة، إذا تم تحديد واحد.
Get-Content $pshome\about_signing.help.txt | Out-Printer
للحصول على محتويات موضوع التعليمات. يتضمن المسار $ بشوم، وهو متغير مدمج يقوم بتخزين دليل التثبيت لنظام التشغيل ويندوز بويرشيل. يقوم مشغل خط أنابيب (|) بتمرير النتائج إلى طابعة خارجية، والتي ترسلها إلى الطابعة الافتراضية.
"Hello, World" | Out-Printer -Name "\\Server01\Prt-6B Color"
أوامره يطبع مرحبا، العالم إلى برت-6B طابعة ملونة على Server01. يستخدم هذا الأمر معلمة الاسم لتحديد الطابعة البديلة. لأن اسم المعلمة اختياري، يمكنك حذفه.
$H = Get-Help -Full Get-WmiObject
Out-Printer -InputObject $H
عمليات الإخراج إلى عرض الشبكة
Get-Process | Out-GridView
هذا الأمر يحصل على العمليات التي تعمل على الكمبيوتر المحلي ويرسلها إلى إطار عرض الشبكة.
مثال 2: استخدام متغير لإخراج العمليات إلى طريقة عرض الشبكة
$P = Get-Process
$P | Out-GridView
*********
أمره أيضا يحصل على العمليات التي تعمل على الكمبيوتر المحلي ويرسلها إلى نافذة عرض الشبكة.
Get-Process | Select-Object -Property Name, WorkingSet, PeakWorkingSet | Sort-Object -Property WorkingSet -Descending | Out-GridView
حفظ الإخراج إلى متغير، ثم إخراج عرض الشبكة
($A = Get-ChildItem -Path $pshome -Recurse) | Out-GridView
عمليات إخراج لجهاز كمبيوتر محدد إلى طريقة عرض الشبكة
Get-Process -ComputerName "Server01" | ogv -Title "Processes - Server01"
إخراج البيانات من أجهزة الكمبيوتر البعيدة إلى عرض الشبكة
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture} | Out-GridView
تشغيلها عن بعد لا يتضمن الأمر أوت-غريدفيو. إذا فعل ذلك، الأمر سوف تفشل عندما حاول فتح نافذة عرض الشبكة على كل من أجهزة الكمبيوتر البعيدة
Get-Process | Out-GridView -PassThru | Export-Csv -Path .\ProcessLog.csv
أمره يتيح لك تحديد عمليات متعددة من النافذة خارج الشبكة. يتم تمرير العمليات التي تحددها إلى الأمر إكسبورت-كسف وكتب إلى الملف ProcessLog.csv.
Powershell.exe -Command "Get-Service | Out-GridView -Wait"
الاشتراك في الأحداث عند بدء عملية جديدة
$Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
Register-ObjectEvent -InputObject $ProcessWatcher -EventName "EventArrived"
الاشتراك في أحداث الكائن على أجهزة الكمبيوتر البعيدة
$S = New-PSSession -ComputerName "Server01, Server02"
Invoke-Command -Session $S -FilePath ProcessCreationEvent.ps1
Invoke-Command -Session $S { get-event }# ProcessCreationEvent.ps1function Enable-ProcessCreationEvent{ $Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", `
(New-Object TimeSpan 0,0,1), `
"TargetInstance isa 'Win32_Process'" $ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query $Identifier = "WMI.ProcessCreated" Register-ObjectEvent -Input $ProcessWatcher -EventName "EventArrived" `
-SourceIdentifier $Identifier -MessageData "Test" -Forward}EnableProcessCreationEvent
الذي يشترك في أحداث إنشاء مثيل على كائن
$Timer = New-Object Timers.Timer
$Timer.Interval = 500
$Job = Register-ObjectEvent -InputObject $Timer -EventName Elapsed -SourceIdentifier Timer.Random -Action {$Random = Get-Random -Min 0 -Max 100}
$Job.gettype().fullnameSystem.Management.Automation.PSEventJob
$Job | Format-List -Property *
تسجيل حدث محرك بويرشيل على أجهزة الكمبيوتر البعيدة
$S = New-PSSession -ComputerName "Server01, Server02"
Invoke-Command -Session $S { Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Forward }
اتخاذ إجراء محدد عند حدوث حدث الخروج
Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
Get-History | Export-Clixml $Home\history.clixml
}
إنشاء صفحة ويب لعرض التاريخ
ConvertTo-Html -InputObject (Get-Date)
إنشاء صفحة ويب لعرض الأسماء المستعارة بويرشيل
Get-Alias | ConvertTo-Html > aliases.htm
Invoke-Item aliases.htm
هذا الأمر بإنشاء صفحة هتمل تسرد الأسماء المستعارة ويندوز بويرشيل في وحدة التحكم الحالية
إنشاء صفحة ويب لعرض أحداث بويرشيل
Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html > pslog.htm
الأمر بإنشاء صفحة هتمل تسمى pslog.htm تعرض الأحداث في سجل أحداث ويندوز بويرشيل على الكمبيوتر المحلي.
Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" > proc.htm; ii proc.htm
إنشاء صفحة ويب لعرض كائنات الخدمة
Get-Service | ConvertTo-Html -CssUri "test.css"
إنشاء صفحة ويب لعرض كائنات الخدمة
Get-Service | ConvertTo-Html -As LIST > services.htm
إنشاء جدول ويب للتاريخ الحالي
Get-Date | cth -Fragment
إنشاء صفحة ويب لعرض أحداث بويرشيل
Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task
إنشاء صفحة ويب لعرض خدمات محددة
Get-Service A* | ConvertTo-Html -Title "Windows Services: Server01" -Body (get-date) -Pre
"<P>Generated by Corporate IT</P>" -Post "For details, contact Corporate IT." > services.htm; ii services.html
تعيين خصائص ميتا و تشارسيت من هتمل
Get-Service | ConvertTo-HTML -Meta @{refresh=10;author="Author's Name";keywords="PowerShell, HTML, ConvertTo-HTML"} -Charset "UTF-8"
يقوم أمره بإنشاء هتمل لصفحة ويب باستخدام العلامات الوصفية للتحديث والمؤلف والكلمات الرئيسية. تم تعيين مجموعة الأحرف للصفحة على أوتف-8
مثال تعيين هتمل إلى شتمل الانتقالية دتد
Get-Service | ConvertTo-HTML -Transitional
Export-Alias -Path "alias.csv" -Append -Description "Appended Aliases" -Force
لأنه يتم تحديد المعلمة نوكلوبر، الأمر سوف تفشل إذا كان ملف Alias.csv موجود بالفعل في الدليل الحالي.
إلحاق الأسماء المستعارة بملف
تصدير الأسماء المستعارة كبرنامج نصي
Export-Alias -Path "alias.ps1" -As Script
Add-Content -Path $Profile -Value (Get-Content alias.ps1)
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -FilePath .\alias.ps1
Get-Date -DisplayHint Date
Get-Date -Format g
Get-Date -UFormat "%Y / %m / %d / %A / %Z"
(Get-Date -Year 2000 -Month 12 -Day 31).DayOfYear
$a = Get-Date
$a.IsDaylightSavingTime()
$a = Get-Date
$a.ToUniversalTime()
$a = Get-WmiObject Win32_Bios -Computer Server01
$a | Format-List -Property Name, @{Label="BIOS Age";Expression={(Get-Date) - $_.ConvertToDateTime($_.ReleaseDate)}}
Get-Date | Add-Content Test.txt
الحصول على برويسس عشوائي
Get-Process | Get-Random
أوامر التصدير من كمبيوتر بعيد
$S = New-PSSession -ComputerName Server01 -Credential Server01\User01
Export-PSSession -Session $S -OutputModule TestCmdlets -Type cmdlet -CommandName *test* -FormatTypeName *
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
يصدر أمره جميع الأوامر وجميع بيانات التنسيق من بسسيون في المتغير $ S في الدورة الحالية. يستخدم الأمر معامل ألوكلوبر لتضمين الأوامر بنفس الأسماء مثل الأوامر في الجلسة الحالية.
أوامر التصدير من بسسيون مغلقة
$Options = New-PSSessionOption -NoMachineProfile
$S = New-PSSession -ComputerName "Server01" -SessionOption $Options
Export-PSSession -Session $S -OutputModule Server01
Remove-PSSession $S
New-PSSession -ComputerName "Server01" -SessionOption $Options
Import-Module Server01
استيراد كافة الأوامر من بسسيون
$S = New-PSSession -ComputerName Server01
Import-PSSession -Session $S
ضافة إلى الدورة الحالية، يمكنك استخدام بناء الجملة المحلي لتشغيلها. لا تحتاج إلى استخدام كمدليت إنفوك-كوماند لتشغيل أمر تم استيراده
$S1 = New-PSSession -ComputerName s1
$S2 = New-PSSession -ComputerName s2
Import-PSSession -Session s1 -Type cmdlet -Name New-Test, Get-Test -FormatTypeName *
Import-PSSession -Session s2 -Type Cmdlet -Name Set-Test -FormatTypeName *
New-Test Test1 | Set-Test -RunType Full
وماند، توقف ويندوز بويرشيل الأمر الذي يقوم بإنشاء الكائنات بمجرد إنشاء العدد المحدد من الكائنات، حتى عندما يظهر الأمر الذي ينشئ الكائنات قبل الأمر تحديد كائن في خط الأنابيب. لإيقاف هذا السلوك الأمثل، استخدم معلمة الانتظار
Get-Process | Select-Object -Property ProcessName, Id, WS
يؤدي هذا الأمر إلى إنشاء الكائنات التي تحتوي على خصائص الاسم و إد و مجموعة العمل (وس) لكائنات العملية.
مثال 2: تحديد الكائنات حسب الخاصية وتنسيق النتائج
Get-Process Explorer | Select-Object -Property ProcessName -ExpandProperty Modules | Format-List
كمدليت لتحديد أسماء العمليات. لأن الخاصية الوحدات النمطية يحتوي على كائن مودولبروسيس يحتوي على العديد من الخصائص يستخدم الأمر معلمة إكساندبروبيرتي للحصول على خصائص الكائنات في خاصية الوحدات النمطية لكل عملية. يستخدم الأمر كمدليت تنسيق قائمة لعرض اسم وحدات كل عملية في قائمة.حدد العمليات باستخدام معظم الذاكرة
Get-Process | Sort-Object -Property WS | Select-Object -Last 5
معلمة الانتظار غير مطلوبة في الأوامر التي تتضمن كمدليت سورت-أوبجيكت لأن سورت-أوبجيكت يعالج كافة الكائنات ثم يقوم بإرجاع مجموعة. يتوفر خيار تحديد الكائن فقط للأوامر التي تعيد الكائنات بشكل فردي عند معالجتها.
حدد اسم وبدء يوم العمليات
Get-Process | Select-Object -Property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}
Post a Comment