كمبيوتر لتلقي الأوامر عن بعد
تكوين جهاز كمبيوتر لتلقي الأوامر عن بعد
Enable-PSRemoting
تكوين جهاز كمبيوتر لتلقي الأوامر عن بعد بدون موجه
Enable-PSRemoting -Force
السماح بالوصول عن بعد على العملاء
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
تشغيل برنامج نصي على خادم
Invoke-Command -FilePath c:\scripts\test.ps1 -ComputerName Server01
يستخدم الأمر معلمة فيليباث لتحديد البرنامج النصي الموجود على الكمبيوتر المحلي. يتم تشغيل البرنامج النصي على الكمبيوتر البعيد ويتم إرجاع النتائج إلى الكمبيوتر المحلي.
Invoke-Command -ComputerName server01 -Credential domain01\user01 -ScriptBlock {Get-Culture}
استجابة لذلك، يعرض ويندوز بويرشيل مربع حوار يطلب كلمة المرور وطريقة مصادقة لحساب User01. ثم يقوم بتشغيل الأمر على جهاز الكمبيوتر Server01 وإرجاع النتيجة.
$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
استخدام جلسة لتشغيل سلسلة من الأوامر التي تشارك البيانات
Invoke-Command -ComputerName Server02 -ScriptBlock {$p = Get-Process PowerShell}
Invoke-Command -ComputerName Server02 -ScriptBlock {$p.VirtualMemorySize}
$s = New-PSSession -ComputerName Server02
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process PowerShell}
Invoke-Command -Session $s -ScriptBlock {$p.VirtualMemorySize}
تشغيل أمر واحد على العديد من أجهزة الكمبيوتر
Invoke-Command -ComputerName Server01, Server02, TST-0143, localhost -ConfigurationName MySession.PowerShell -ScriptBlock {Get-EventLog "Windows PowerShell"}
الحصول على إصدار البرنامج المضيف على أجهزة كمبيوتر متعددة
$version = Invoke-Command -ComputerName (Get-Content Machines.txt) -ScriptBlock {(Get-Host).Version}
تشغيل مهمة خلفية على عدة أجهزة كمبيوتر عن بعد
$s = New-PSSession -ComputerName Server01, Server02
Invoke-Command -Session $s -ScriptBlock {Get-EventLog system} -AsJob
$j = Get-Job
$j | Format-List -Property *
ضمين المتغيرات المحلية في أمر تشغيل على كمبيوتر بعيد
$MWFO_Log = "Microsoft-Windows-Forwarding/Operational"
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName $Using:MWFO_Log -Newest 10}
إخفاء اسم الكمبيوتر
Invoke-Command -ComputerName S1, S2 -ScriptBlock {Get-Process PowerShell}
Invoke-Command -ComputerName S1, S2 -ScriptBlock {Get-Process PowerShell} -HideComputerName
تشغيل برنامج نصي على كافة أجهزة الكمبيوتر المدرجة في ملف نصي
Invoke-Command -ComputerName (Get-Content Servers.txt) -FilePath C:\Scripts\Sample.ps1 -ArgumentList Process, Service
تشغيل أمر على كمبيوتر بعيد باستخدام أوري
$LiveCred = Get-Credential
Invoke-Command -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.exchangelabs.com/PowerShell -Credential $LiveCred -Authentication Basic -ScriptBlock {Set-Mailbox Dan -DisplayName "Dan Park"}
إدارة إعادة توجيه أوري في أمر بعيد
$max = New-PSSessionOption -MaximumRedirection 1
Invoke-Command -ConnectionUri https://ps.exchangelabs.com/PowerShell -ScriptBlock {Get-Mailbox dan} -AllowRedirection -SessionOption $max
استخدام خيار جلسة عمل
$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Invoke-Command -ComputerName server01 -UseSSL -ScriptBlock { Get-HotFix } -SessionOption $so -Credential server01\user01
الوصول إلى مشاركة شبكة في جلسة بعيدة
Enable-WSManCredSSP -Delegate Server02
Connect-WSMan Server02
Set-Item WSMan:\Server02*\Service\Auth\CredSSP -Value $True
$s = New-PSSession Server02
Invoke-Command -Session $s -ScriptBlock {Get-Item \\Net03\Scripts\LogFiles.ps1} -Authentication CredSSP -Credential Domain01\Admin01
إنشاء جلسة عمل على كمبيوتر بعيد
$Server01 = New-PSSession -ComputerName Server01
إنشاء جلسات على أجهزة كمبيوتر متعددة
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
إنشاء جلسة عمل باستخدام منفذ محدد
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
إنشاء جلسة استنادا إلى جلسة عمل موجودة
New-PSSession -Session $s -Credential Domain01\User01
نشاء جلسة ذات نطاق عام في نطاق مختلف
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
إنشاء جلسات لكثير من أجهزة الكمبيوتر
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
إنشاء جلسة عمل باستخدام عنوان أوري
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
تشغيل مهمة خلفية في مجموعة من الجلسات
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
نشاء جلسة لجهاز كمبيوتر باستخدام معرف موارد منتظم (أوري) الخاص به
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
الحصول على جلسات متصلة بالكمبيوتر المحلي
Get-PSSession -ComputerName "localhost"
الحصول على جلسات متصلة بجهاز كمبيوتر
Get-PSSession -ComputerName "Server02"
إنشاء دالة تقوم بحذف جميع الجلسات في الجلسة الحالية
Function EndPSS { Get-PSSession | Remove-PSSession }
تكوين جهاز كمبيوتر لتلقي الأوامر عن بعد
Enable-PSRemoting
تكوين جهاز كمبيوتر لتلقي الأوامر عن بعد بدون موجه
Enable-PSRemoting -Force
السماح بالوصول عن بعد على العملاء
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
تشغيل برنامج نصي على خادم
Invoke-Command -FilePath c:\scripts\test.ps1 -ComputerName Server01
يستخدم الأمر معلمة فيليباث لتحديد البرنامج النصي الموجود على الكمبيوتر المحلي. يتم تشغيل البرنامج النصي على الكمبيوتر البعيد ويتم إرجاع النتائج إلى الكمبيوتر المحلي.
Invoke-Command -ComputerName server01 -Credential domain01\user01 -ScriptBlock {Get-Culture}
استجابة لذلك، يعرض ويندوز بويرشيل مربع حوار يطلب كلمة المرور وطريقة مصادقة لحساب User01. ثم يقوم بتشغيل الأمر على جهاز الكمبيوتر Server01 وإرجاع النتيجة.
$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
استخدام جلسة لتشغيل سلسلة من الأوامر التي تشارك البيانات
Invoke-Command -ComputerName Server02 -ScriptBlock {$p = Get-Process PowerShell}
Invoke-Command -ComputerName Server02 -ScriptBlock {$p.VirtualMemorySize}
$s = New-PSSession -ComputerName Server02
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process PowerShell}
Invoke-Command -Session $s -ScriptBlock {$p.VirtualMemorySize}
تشغيل أمر واحد على العديد من أجهزة الكمبيوتر
Invoke-Command -ComputerName Server01, Server02, TST-0143, localhost -ConfigurationName MySession.PowerShell -ScriptBlock {Get-EventLog "Windows PowerShell"}
الحصول على إصدار البرنامج المضيف على أجهزة كمبيوتر متعددة
$version = Invoke-Command -ComputerName (Get-Content Machines.txt) -ScriptBlock {(Get-Host).Version}
تشغيل مهمة خلفية على عدة أجهزة كمبيوتر عن بعد
$s = New-PSSession -ComputerName Server01, Server02
Invoke-Command -Session $s -ScriptBlock {Get-EventLog system} -AsJob
$j = Get-Job
$j | Format-List -Property *
ضمين المتغيرات المحلية في أمر تشغيل على كمبيوتر بعيد
$MWFO_Log = "Microsoft-Windows-Forwarding/Operational"
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName $Using:MWFO_Log -Newest 10}
إخفاء اسم الكمبيوتر
Invoke-Command -ComputerName S1, S2 -ScriptBlock {Get-Process PowerShell}
Invoke-Command -ComputerName S1, S2 -ScriptBlock {Get-Process PowerShell} -HideComputerName
تشغيل برنامج نصي على كافة أجهزة الكمبيوتر المدرجة في ملف نصي
Invoke-Command -ComputerName (Get-Content Servers.txt) -FilePath C:\Scripts\Sample.ps1 -ArgumentList Process, Service
تشغيل أمر على كمبيوتر بعيد باستخدام أوري
$LiveCred = Get-Credential
Invoke-Command -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.exchangelabs.com/PowerShell -Credential $LiveCred -Authentication Basic -ScriptBlock {Set-Mailbox Dan -DisplayName "Dan Park"}
إدارة إعادة توجيه أوري في أمر بعيد
$max = New-PSSessionOption -MaximumRedirection 1
Invoke-Command -ConnectionUri https://ps.exchangelabs.com/PowerShell -ScriptBlock {Get-Mailbox dan} -AllowRedirection -SessionOption $max
استخدام خيار جلسة عمل
$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Invoke-Command -ComputerName server01 -UseSSL -ScriptBlock { Get-HotFix } -SessionOption $so -Credential server01\user01
الوصول إلى مشاركة شبكة في جلسة بعيدة
Enable-WSManCredSSP -Delegate Server02
Connect-WSMan Server02
Set-Item WSMan:\Server02*\Service\Auth\CredSSP -Value $True
$s = New-PSSession Server02
Invoke-Command -Session $s -ScriptBlock {Get-Item \\Net03\Scripts\LogFiles.ps1} -Authentication CredSSP -Credential Domain01\Admin01
إنشاء جلسة عمل على كمبيوتر بعيد
$Server01 = New-PSSession -ComputerName Server01
إنشاء جلسات على أجهزة كمبيوتر متعددة
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
إنشاء جلسة عمل باستخدام منفذ محدد
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
إنشاء جلسة استنادا إلى جلسة عمل موجودة
New-PSSession -Session $s -Credential Domain01\User01
نشاء جلسة ذات نطاق عام في نطاق مختلف
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
إنشاء جلسات لكثير من أجهزة الكمبيوتر
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
إنشاء جلسة عمل باستخدام عنوان أوري
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
تشغيل مهمة خلفية في مجموعة من الجلسات
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
نشاء جلسة لجهاز كمبيوتر باستخدام معرف موارد منتظم (أوري) الخاص به
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
الحصول على جلسات متصلة بالكمبيوتر المحلي
Get-PSSession -ComputerName "localhost"
الحصول على جلسات متصلة بجهاز كمبيوتر
Get-PSSession -ComputerName "Server02"
إنشاء دالة تقوم بحذف جميع الجلسات في الجلسة الحالية
Function EndPSS { Get-PSSession | Remove-PSSession }
Post a Comment