Bir neçə uzaq kompüterdə PowerShell skriptini necə işə salmaq olar?
Öz kompüterinizdə işləyən bir skriptiniz var. İndi o, daha 20 kompüterdə işləməlidir. Budur ən geniş yayılmış dörd üsul, hər birinin nə tələb etdiyi və harada ilişib qaldığı.
Qısa cavab: bir ofis şəbəkəsində və domen mühitində Invoke-Command (PowerShell Remoting) Windows-a daxildir və pulsuzdur. Kompüterlər müxtəlif şəbəkələrdə, evdə və ya NAT arxasında olanda, buluddakı panelə xaricə doğru qoşulan agent VPN və port açmadan işləməyə davam edən seçimdir.
1. Invoke-Command ilə PowerShell Remoting (WinRM)
PowerShell Remoting Windows-un bir hissəsidir. Onu hər hədəf kompüterdə bir dəfə aktivləşdirirsiniz, sonra öz kompüterinizdən skript blokunu çoxlu maşında paralel işə salırsınız:
# Hər hədəf kompüterdə bir dəfə, administrator PowerShell-də
Enable-PSRemoting -Force
# Administrator kompüterinizdən
Invoke-Command -ComputerName PC-01, PC-02, PC-03 -ScriptBlock {
Get-Service Spooler | Select-Object Status, Name
}
Blok əvəzinə skript faylı işə salmaq üçün -FilePath C:\Scripts\cleanup.ps1 istifadə edin. Nəticələr hər biri PSComputerName ilə işarələnmiş obyektlər kimi qayıdır.
Tələblər
- Hər hədəfdə WinRM xidməti işləməli və firewall TCP 5985 (HTTP) və ya 5986 (HTTPS) portuna icazə verməlidir.
- Kompüterinizdən hədəflərə şəbəkə çıxışı — eyni lokal şəbəkə və ya VPN.
- Active Directory domenində autentifikasiyanı Kerberos həyata keçirir. Workgroup-da kompüterləri öz maşınınızda
TrustedHostssiyahısına əlavə etməli və-Credentialilə giriş məlumatlarını verməlisiniz. - Şəbəkə adapteri Public profildə olanda
Enable-PSRemotingfirewall-u konfiqurasiya etməkdən imtina edir; noutbuklarda bu tez-tez olur.
Harada ilişir: evdəki noutbuklar, VPN-i olmayan filiallar, domenə daxil olmayan kompüterlər.
2. PsExec
Microsoft Sysinternals-ın PsExec aləti SMB üzərindən uzaq kompüterdə proses başladır:
psexec \\PC-01 -s powershell -NoProfile -Command "Get-Volume"
- SMB (TCP 445) və
ADMIN$paylaşımına çıxış, həmçinin hədəfdə administrator hesabı tələb olunur. - Lokal şəbəkədə birdəfəlik işlər üçün rahatdır, lakin hücumçular da eyni üsuldan istifadə etdiyi üçün bir çox antivirus və EDR məhsulu onu işarələyir və ya bloklayır.
- Hər əmr bir kompüterdə işləyir; siyahı üzrə dövr qurmaq sizin öhdənizdədir.
3. Uzaq masaüstü, kompüter-kompüter
RDP, TeamViewer, AnyDesk və ya oxşar alətlə qoşulun, PowerShell-i açın, skripti yapışdırın. Bir maşın üçün olar. 20 maşın üçün bütün günortanızı aparır, istifadəçinin işini bölür və nəyin harada işə salındığı qeydə alınmır.
4. Hər kompüterdə agent (RMM)
Hər kompüterdəki kiçik xidmət mərkəzi panelə xaricə doğru daimi bağlantı saxlayır. Bağlantını kompüter özü qurduğu üçün açılacaq daxil olan port və saxlanılacaq VPN yoxdur; ofisdə, evdə və ya oteldəki Wi-Fi-da eyni cür işləyir. CtrlSoft da daxil olmaqla RMM (uzaqdan monitorinq və idarəetmə) alətləri belə işləyir.
CtrlSoft ilə skript işə salmaq
- Agenti hər kompüterə quraşdırın — əl ilə və ya bir əmrlə çoxlu kompüterə səssiz.
- Scripts bölməsini açın, PowerShell və ya CMD skriptinizi bir dəfə yadda saxlayın.
- Onu bir cihazda dərhal işə salın və ya bir cihaz, yaxud bütün qrup üçün cədvəl yaradın.
- Hər icranın nəticəsini və çıxış kodunu skriptin tarixçəsində görün. Tez birdəfəlik əmr üçün cihaz səhifəsindəki əmr konsolundan istifadə edin.
$env:USERPROFILE və ya HKCU: əvəzinə $env:ProgramData və ya HKLM: kimi bütün maşına aid yollardan istifadə edin.Müqayisə
| Üsul | Tələb | Ofis şəbəkəsindən kənarda | Eyni anda çoxlu kompüter |
|---|---|---|---|
| Invoke-Command | WinRM, 5985/5986 portları, domen və ya TrustedHosts | Yalnız VPN ilə | Bəli |
| PsExec | SMB 445, ADMIN$ paylaşımı, administrator hesabı | Yalnız VPN ilə | Öz dövrünüzlə |
| Uzaq masaüstü | Uzaq masaüstü aləti və istifadəçinin vaxtı | Alətdən asılıdır | Xeyr |
| Agent / RMM | Bir dəfə quraşdırılan agent, xaricə doğru HTTPS | Bəli | Bəli, nəticə tarixçəsi ilə |
Geri qaytarmaqdan xilas edən məsləhətlər
- Skripti əvvəlcə bir test kompüterində, sonra qalanlarında işə salın.
- Skriptləri iki dəfə işə düşsə də problem yaratmayacaq şəkildə yazın: dəyişməzdən əvvəl yoxlayın (
if (-not (Test-Path ...))). - Aydın çıxış kodu qaytarın — xəta olanda
exit 1— belə ki, icra səssizcə uğurlu görünmək əvəzinə uğursuz kimi qeyd olunsun. - Uzun sürən işləri qısa saxlayın və ya hissələrə bölün; uzaq sessiyaların və agentlərin adətən vaxt limiti olur.
Öz kompüterlərinizdə sınayın
5 cihaza qədər 30 gün pulsuz. Kart yox, server yox, VPN yox.
30 gün pulsuz sınayın