Windows-ის დისტანციური მართვა WinRM-ის გამოყენებით. WinRM - დისტანციური მუშაობა PowerShell Winrm პარამეტრებით

Windows-ის დისტანციური მართვა WinRM-ის გამოყენებით.  WinRM - დისტანციური მუშაობა PowerShell Winrm პარამეტრებით
Windows-ის დისტანციური მართვა WinRM-ის გამოყენებით. WinRM - დისტანციური მუშაობა PowerShell Winrm პარამეტრებით

17/10/2011 დონ ჯონსი

მივხვდი, რომ PowerShell-ის შემქმნელები ცოტა ზარმაცები იყვნენ და ეს კარგია. მათ არ სურდათ ყოველი ბრძანებისთვის -ComputerName პარამეტრის კოდირება, ამიტომ შექმნეს ზოგადი სისტემა, სახელწოდებით "დისტანციური". არსებითად, ეს სისტემა საშუალებას აძლევს ნებისმიერ ბრძანებას გაუშვას დისტანციურ კომპიუტერზე. თქვენ კი შეგიძლიათ გაუშვათ სხვადასხვა ბრძანებები, რომლებიც არსებობს დისტანციურ კომპიუტერზე, მაგრამ არ არსებობს თქვენზე. ეს ნიშნავს, რომ თქვენ არ გჭირდებათ მუდმივად დააინსტალიროთ ყველა ბრძანება თქვენს სამუშაო სადგურზე. ეს დისტანციური სისტემა ძალიან ეფექტურია და გთავაზობთ უამრავ საინტერესო ადმინისტრაციულ ფუნქციას

როდესაც დავიწყე PowerShell-ის გამოყენება, დავინტერესდი Get-Service ბრძანებით და შევნიშნე, რომ მას ჰქონდა -ComputerName პარამეტრი. ეს არ ნიშნავს იმას, რომ სერვისთან დაკავშირება შეგიძლიათ სხვა კომპიუტერებიდან? არაერთი ექსპერიმენტის ჩატარების შემდეგ აღმოვაჩინე, რომ ზუსტად ასეა ნათქვამი. დავინტერესდი და დავიწყე -ComputerName პარამეტრების ძებნა სხვა ბრძანებებიდან. და ვნერვიულობ, როცა გავიგე, რომ სულ რამდენიმე იყო.

PowerShell უზრუნველყოფს დისტანციური მართვის ორ ტიპს: დისტანციური მართვის ერთ-ერთზე (1:1) და დისტანციურად ერთ-ერთზე (1:n). სანამ მათზე ვისაუბრებ, მსურს რამდენიმე საფუძვლების ახსნა.

დისტანციური საფუძვლები PowerShell-ში

PowerShell-ის დისტანციური მართვა მუშაობს ისევე როგორც Telnet და სხვა ძველი დისტანციური მართვის ტექნოლოგიები. როდესაც თქვენ აწარმოებთ ბრძანებას, ის რეალურად მუშაობს დისტანციურ კომპიუტერზე. ყველაფერი, რაც თქვენს კომპიუტერს უბრუნდება, ამ ბრძანების შედეგია. Telnet-ისა და Secure Shell-ისგან (SSH) განსხვავებით, PowerShell იყენებს საკომუნიკაციო სისტემის ახალ პროტოკოლს, სახელწოდებით Web Services for Management (WS-Management). პროტოკოლი მუშაობს HTTP ან HTTP Secure (HTTPS) თავზე, რაც აუცილებლობის შემთხვევაში აადვილებს ფეიერვოლების მარშრუტს, რადგან პროტოკოლი იყენებს მხოლოდ ერთ პორტს კომუნიკაციის დასამყარებლად. Microsoft-ის მიერ WS-Management-ის განხორციელება მოდის ფონური სერვისის სახით, სახელწოდებით Windows Remote Management. WinRM დაინსტალირებულია PowerShell 2.0-ით და მუშაობს ნაგულისხმევად სერვერებზე, როგორიცაა Windows Server 2008 R2. Windows 7-ზე ის დაინსტალირებულია ნაგულისხმევად, მაგრამ არ არის გააქტიურებული. თქვენ უნდა გაააქტიუროთ WinRM იმ კომპიუტერებზე, რომლებზეც გსურთ ბრძანების გაგზავნა. კომპიუტერს, რომელსაც ფიზიკურად დგახართ, არ სჭირდება WinRM სერვისის გაშვება.

PowerShell-ის ყველა ბრძანება აწარმოებს ობიექტებს გამოსავალად. როდესაც თქვენ აწარმოებთ ბრძანებას დისტანციურად, მისი გამომავალი უნდა იყოს ისეთ ფორმაში, რომელიც ადვილად გადაიცემა ქსელში HTTP ან HTTPS გამოყენებით. მაგალითად, PowerShell ავტომატურად გარდაქმნის გამომავალ ობიექტებს XML ფაილებად, რომლებიც იგზავნება ქსელში. როგორც კი ისინი მიაღწევენ თქვენს კომპიუტერს, ისინი კვლავ გარდაიქმნება ობიექტებად, რომლებთანაც PowerShell-ს შეუძლია მუშაობა. თუმცა, ეს უკან-კონვერტირებული ობიექტები რეალურად არის კადრები. მათ არ შეუძლიათ ყოველ წუთს საკუთარი თავის განახლება. ამრიგად, თუ თქვენ უნდა მიხვიდეთ ობიექტებამდე, რომლებიც წარმოადგენენ დისტანციურ კომპიუტერზე გაშვებულ პროცესებს, მაშინ მიღებული შედეგი იქნება ჭეშმარიტი მხოლოდ იმ კონკრეტული პერიოდისთვის, რომლის დროსაც ეს ობიექტები შეიქმნა. მნიშვნელობები, როგორიცაა მეხსიერება და CPU-ს გამოყენება არ შეიცვლება. უფრო მეტიც, თქვენ ვერ შეძლებთ უკან გადაკეთებულ ობიექტებს რაიმე გააკეთონ. მაგალითად, თქვენ არ შეგიძლიათ უბრძანოთ ობიექტს შეაჩეროს თავი. ეს არის დისტანციური თანამშრომლობის მთავარი შეზღუდვა, მაგრამ ეს ხელს არ შეგიშლით მუშაობასა და საინტერესო საქმეების კეთებაში.

დისტანციური მართვის სისტემის გამოსაყენებლად მხოლოდ რამდენიმე ძირითადი მოთხოვნაა.

  • როგორ უნდა მუშაობდეს თქვენი კომპიუტერი (აგრეთვე ადგილობრივი კომპიუტერი) და ის, რომელზეც გსურთ ბრძანების გაგზავნა (ასევე დისტანციური კომპიუტერი) Windows PowerShell 2.0-თან? Windows XP არის Windows-ის ძველი ვერსია, რომელზეც შეგიძლიათ დააინსტალიროთ PowerShell 2.0. ამრიგად, ძველ ვერსიას ასევე შეუძლია მონაწილეობა მიიღოს დისტანციურ სესიაში.
  • იდეალურ შემთხვევაში, ადგილობრივი და დისტანციური კომპიუტერები უნდა იყვნენ იმავე დომენის წევრები ან სანდო/სანდო დომენების წევრები. თქვენ შეგიძლიათ იმუშაოთ დისტანციური სისტემით დომენის გარეთ, მაგრამ ეს რთულია და ამაზე აქ არ ვისაუბრებ. ამ სცენარის შესახებ მეტი ინფორმაციისთვის იხილეთ PowerShell დახმარების თემა Remote_Troubleshooting-ის შესახებ.

WinRM მიმოხილვა

ახლა გადავიდეთ WinRM-ზე, რადგან დისტანციური მუშაობის დასაწყებად ამ სერვისის პარამეტრების კონფიგურაცია გჭირდებათ. ისევ, თქვენ მხოლოდ WinRM და PowerShell დისტანციური პარამეტრების დაყენება გჭირდებათ დისტანციურ კომპიუტერზე. უმეტეს გარემოში, სადაც მე ვმუშაობდი, ადმინისტრატორებმა ჩართოთ დისტანციური მუშაობა ყველა კომპიუტერზე, რომელიც მუშაობს XP-ის ან უფრო გვიან ვერსიებზე. ეს შესაძლებელს ხდის დესკტოპ და ლეპტოპ კომპიუტერებში შეღწევის გარეშე, რაც შეიძლება ძალიან სასარგებლო იყოს (რაც ნიშნავს, რომ ასეთი კომპიუტერების მომხმარებლებმა არ იციან რას აკეთებთ).

ეს არ ნიშნავს იმას, რომ WinRM რაიმე განსაკუთრებულია PowerShell-ისთვის. WinRM-ს შეუძლია ტრაფიკის მარშრუტირება მრავალ ადმინისტრაციულ აპლიკაციამდე. არსებითად, WinRM მოქმედებს როგორც დისპეტჩერი. როდესაც ტრაფიკი ჩამოდის, WinRM წყვეტს, რომელი აპლიკაცია უნდა იმოქმედოს მასთან და მონიშნავს მას დანიშნულების აპლიკაციის სახელს. მიმღები აპლიკაცია უნდა დარეგისტრირდეს WinRM-ში, რათა WinRM-მა შეძლოს მისი სახელით შემომავალი ტრაფიკის მოსმენა. სხვა სიტყვებით რომ ვთქვათ, თქვენ არა მხოლოდ უნდა ჩართოთ WinRM, არამედ დაარეგისტრიროთ Power Shell, როგორც საბოლოო წერტილი WinRM-ისთვის.

ორივე ამოცანის შესრულების უმარტივესი გზაა PowerShell-ის ადმინისტრატორის სახით გაშვება და Enable-PSRemoting ბრძანების გაშვება. შეგიძლიათ ნახოთ სახელმძღვანელო სხვა ბრძანებისთვის, სახელწოდებით Set-WSManQuickConfig. არ არის საჭირო ბრძანების გაშვება. Enable-PSRemoting ამას აკეთებს თქვენთვის და ასევე ასრულებს რამდენიმე სხვა ნაბიჯს, რომლებიც აუცილებელია დისტანციური კომუნიკაციისა და მუშაობისთვის. არსებითად, Enable-PSRemoting ბრძანება იწყებს WinRM სერვისს, აკონფიგურირებს, რომ ავტომატურად დაიწყოს, დაარეგისტრირებს PowerShell-ს, როგორც საბოლოო წერტილს და აყენებს გამონაკლისებს Windows Firewall-ში, რათა შემომავალი WinRM ტრაფიკი დაუშვას.

თუ არ გსურთ ყველა კომპიუტერის გავლა დისტანციური მუშაობის გასააქტიურებლად, შეგიძლიათ გამოიყენოთ ჯგუფის პოლიტიკის ობიექტი (GPO). საჭირო GPO პარამეტრები ჩაშენებულია Windows Server 2008 R2 დომენის კონტროლერებში. უბრალოდ გახსენით GPO და გადადით მარშრუტზე Computer Configuration\

ადმინისტრაციული შაბლონები\Windows კომპონენტები. სიის ბოლოში ნახავთ როგორც Remote Shell, ასევე Windows Remote Management (WRM) პარამეტრებს, რომელთა კონფიგურაცია გჭირდებათ. დახმარების განყოფილება დისტანციური კომუნიკაციის სისტემის პრობლემების შესახებ (Remote_Troubleshooting) მოგაწვდით დეტალურ ინსტრუქციას, თუ როგორ უნდა გააკეთოთ ეს. გადახედეთ როგორ ჩართოთ დისტანციური მართვა საწარმოში და როგორ ჩართოთ მსმენელები დახმარების ჯგუფური პოლიტიკის გამოყენებით.

WinRM 2.0 (რომელსაც PowerShell იყენებს) ნაგულისხმევად იყენებს TCP პორტს 5985 HTTP-სთვის და 5986 პორტს HTTPS-სთვის. ეს უზრუნველყოფს, რომ WinRM არ ეწინააღმდეგება ადგილობრივად დაყენებულ ვებ სერვერებს, რომლებიც კონფიგურირებულია მოსასმენად 80 და 443 პორტებზე. შეგიძლიათ WinRM-ის კონფიგურაცია ალტერნატიული პორტების გამოსაყენებლად, მაგრამ მე ამას არ გირჩევთ. თუ ამ პორტებს დატოვებთ, PowerShell-ის დისტანციური წვდომის ყველა ბრძანება კარგად იმუშავებს. თუ ამ პორტებს შეცვლით, დისტანციური წვდომის ბრძანების გაშვებისას ყოველთვის მოგიწევთ ალტერნატიული პორტის მითითება. ეს ნიშნავს, რომ მეტის აკრეფა მოგიწევთ. თუ თქვენ ნამდვილად გჭირდებათ პორტის შეცვლა, შეგიძლიათ შეიყვანოთ ბრძანება:

Winrm დააყენეთ winrm/config/მსმენელი? მისამართი=* +ტრანსპორტი=HTTP @(პორტი=1234)

ნომრები 1234 მიუთითებს თქვენთვის საჭირო პორტზე. აქ ეს ბრძანება იწერება რამდენიმე სტრიქონში, მაგრამ თქვენ უნდა შეიყვანოთ იგი ერთ ხაზზე. იგივე ეხება სტატიაში აღწერილი ყველა სხვა ბრძანებას. თუ თქვენ გჭირდებათ HTTPS-ის გამოყენება http-ის ნაცვლად, შეგიძლიათ შეცვალოთ ეს ბრძანება ახალი HTTPS პორტის კონფიგურაციისთვის. უნდა ვაღიარო, რომ არსებობს WinRM პარამეტრების კონფიგურაციის საშუალება ადგილობრივ კომპიუტერებზე, რათა ნაგულისხმევად გამოიყენოთ ალტერნატიული პორტები. ამ გზით, თქვენ არ გჭირდებათ მუდმივად ალტერნატიული პორტის განსაზღვრა დისტანციური წვდომის ბრძანების გაშვებისას. მაგრამ მოდით ვიმუშაოთ Microsoft-ის მიერ მოცემულ ნაგულისხმევ პარამეტრებთან.

თუ დისტანციური Shell-ის GPO-ის პარამეტრებს ჩავუღრმავდებით, შეამჩნევთ, რომ შეგიძლიათ დააყენოთ, მაგალითად, რამდენ ხანს დარჩება უმოქმედო დისტანციური სესია სერვერის შეწყვეტამდე; რამდენ კონკურენტ მომხმარებელს შეუძლია ერთდროულად წვდომა დისტანციურ სერვერზე; რამდენი მეხსიერების და პროცესების გამოყენება შეუძლია თითოეულ დისტანციურ გარსს; დისტანციური ჭურვების მაქსიმალური რაოდენობა, რომლის გახსნაც მომხმარებლებს შეუძლიათ ერთდროულად. ეს პარამეტრები დაგეხმარებათ იმის უზრუნველსაყოფად, რომ თქვენი სერვერები არ იყოს გადატვირთული გულმავიწყი ადმინისტრატორების მიერ. თუმცა, ნაგულისხმევად, თქვენ უნდა იყოთ ადმინისტრატორი დისტანციური მართვის გამოსაყენებლად, ასე რომ თქვენ არ უნდა ინერვიულოთ რეგულარული მომხმარებლების მიერ სერვერების დაბლოკვის შესახებ.

დისტანციური ურთიერთქმედება 1:1

1:1 დისტანციურად, თქვენ არსებითად გაქვთ ბრძანების ხაზის წვდომა ერთ დისტანციურ კომპიუტერზე. ნებისმიერი ბრძანება, რომელსაც თქვენ იძლევით, პირდაპირ დისტანციურ კომპიუტერზე მუშაობს და შედეგებს ხედავთ ბრძანების სტრიქონში. ეს გარკვეულწილად წააგავს დისტანციური დესკტოპის კავშირის გამოყენებას, გარდა იმისა, რომ თქვენ შემოიფარგლებით PowerShell ბრძანების ხაზის გარემოთი. PowerShell-ის დისტანციური მართვა იყენებს იმ რესურსების ნაწილს, რომელსაც მოითხოვს დისტანციური სამუშაო მაგიდა, ამიტომ მას გაცილებით ნაკლები გავლენა აქვს თქვენს სერვერებზე.

1:1 კავშირის დასამყარებლად დისტანციურ კომპიუტერთან სახელწოდებით Server-R2, თქვენ უნდა გაუშვათ

Enter-PSSession -Computername Server-R2

თუ ვივარაუდებთ, რომ ჩართული გაქვთ დისტანციური მართვა დისტანციურ მოწყობილობაზე, კომპიუტერი იმავე დომენშია და თქვენი ქსელი ნორმალურად მუშაობს, თქვენ მიიღებთ თქვენთვის საჭირო კავშირს. PowerShell გაცნობებთ, რომ მიაღწიეთ თქვენს მიზანს ბრძანების სტრიქონზე შეცვლით

PS C:\>

ნაწილი გაცნობებთ, რომ ყველაფერი, რასაც აკეთებთ, ხდება სერვერ-R2-ზე. ამის შემდეგ შეგიძლიათ გაუშვათ თქვენთვის სასურველი ნებისმიერი ბრძანება. თქვენ შეგიძლიათ ნებისმიერი მოდულის იმპორტიც კი და დაამატოთ PowerShell გაფართოებები (PSSnapins), რომლებიც განთავსდება დისტანციურ კომპიუტერზე.

ნებართვებიც კი იგივე დარჩება. PowerShell-ის თქვენი ასლი იმუშავებს იმავე უსაფრთხოების ნიშნით, რომლითაც იყო გაშვებული. PowerShell ამას Kerberos-ის გამოყენებით აკეთებს, ასე რომ, ის არ გადასცემს მომხმარებლის სახელსა და პაროლს ქსელში. ნებისმიერი ბრძანება, რომელსაც აწარმოებთ დისტანციურ კომპიუტერზე, იმუშავებს თქვენი რწმუნებათა სიგელების ქვეშ, ასე რომ, რისი გაკეთებაც გაქვთ ნებართვა, შეგიძლიათ გააკეთოთ. ეს ჰგავს პირდაპირ კომპიუტერის კონსოლიდან შესვლას და ამ კომპიუტერის PowerShell-ის ასლის გამოყენებას. თითქმის ასეა. აქ არის რამდენიმე განსხვავება.

  • თუ თქვენ გაქვთ PowerShell სკრიპტი თქვენი პროფილისთვის დისტანციურ კომპიუტერზე, ის არ იმუშავებს დისტანციური წვდომის სისტემის გამოყენებით დაკავშირებისას. მარტივად რომ ვთქვათ, პროფილები არის ბრძანებების პაკეტი, რომელიც ავტომატურად მუშაობს ყოველ ჯერზე, როცა ხსნით Command Prompt ფანჯარას. ისინი გამოიყენება გაფართოებების, მოდულების და მსგავსის ავტომატურად ჩამოტვირთვისთვის.
  • თქვენ შეზღუდული ხართ დისტანციური კომპიუტერის შესრულების პოლიტიკით. ვთქვათ, თქვენი კომპიუტერის პოლიტიკა დაყენებულია RemoteSigned-ზე, ასე რომ თქვენ შეგიძლიათ გაუშვათ ადგილობრივი ხელმოუწერელი სკრიპტები. თუ დისტანციური კომპიუტერის პოლიტიკა დაყენებულია შეზღუდული (ნაგულისხმევი პარამეტრი), ის არ დაუშვებს რაიმე სკრიპტის გაშვებას დისტანციური კომუნიკაციის დროს.

PowerShell-ის ბევრი ბრძანება მოდის წყვილებში: ერთი აკეთებს რაღაცას, მეორე აკეთებს მის საპირისპიროს. ჩვენს შემთხვევაში, Enter-PSSession აკავშირებს თქვენ დისტანციურ კომპიუტერთან და Exit-PSSession ხურავს ამ კავშირს. Exit-PSSession არ საჭიროებს პარამეტრებს. გაშვების შემდეგ, დისტანციური კავშირი დახურულია და თქვენი ბრძანების ხაზის ფანჯრის მოთხოვნა უბრუნდება ნორმალურ მდგომარეობას. რა მოხდება, თუ დაგავიწყდათ Exit-PSSession-ის გაშვება? Არ იდარდო. PowerShell-ს და WinRM-ს შეუძლიათ გაარკვიონ რა გააკეთეთ და საჭიროების შემთხვევაში დახურონ დისტანციური კავშირი.

ერთი რჩევა მინდა მოგცეთ. როდესაც დისტანციურ კომპიუტერს უკავშირდებით, არ გაუშვათ Enter-PSSession მასზე, სანამ ბოლომდე არ გესმით რას აკეთებთ. მაგალითად, თქვენ მუშაობთ ComputerA-ში. თქვენ უკავშირდებით Server-R2-ს. PowerShell ხაზზე თქვენ აწარმოებთ

PS C:\>Enter-PSSession Server-DC4

Server-R2 ახლა შეიცავს ღია კავშირს Server-DC4-თან. ეს ქმნის „დისტანციურ ჯაჭვს“, რომლის მიკვლევაც ძნელია. გარდა ამისა, თქვენი სერვერები ზედმეტად გადატვირთულია. შეიძლება იყოს დრო, როდესაც მოგიწევთ ამის გაკეთება (მაგალითად, Server-DC4 არის firewall-ის მიღმა და თქვენ ვერ შეძლებთ მასზე პირდაპირ წვდომას, ამიტომ უნდა გამოიყენოთ Server-R2, როგორც შუამავალი). თუმცა, ზოგადი წესი ასეთია: შეეცადეთ თავიდან აიცილოთ დისტანციური ჯაჭვები.

1:n დისტანციური

PowerShell-ის ერთ-ერთი ყველაზე მაგარი რამ არის 1:n დისტანციური მართვა. ის საშუალებას გაძლევთ გააგზავნოთ ბრძანებები რამდენიმე დისტანციურ კომპიუტერზე ერთდროულად - სრულფასოვანი განაწილებული გამოთვლა. თითოეული კომპიუტერი ინდივიდუალურად შეასრულებს ბრძანებას და გამოგიგზავნით შედეგებს. ყველაფერი კეთდება Invoke-Command ბრძანების გამოყენებით ამ ფორმით:

Invoke-Command -ComputerName Server-R2, Server-DC4, Server12 -Command (Get-EventLog Security -უახლესი 200 | სად ($_.EventID -eq 1212))

გარე ხვეული ბრეკეტების ბრძანება იგზავნება სამივე დისტანციურ კომპიუტერზე. ნაგულისხმევად, PowerShell-ს შეუძლია ერთდროულად ისაუბროს 32-მდე კომპიუტერთან. თუ 32-ზე მეტ კომპიუტერს მიუთითებთ, ისინი რიგში დადგება. შემდეგ, როდესაც ერთი კომპიუტერი გამორთულია, შემდეგი ასრულებს ბრძანებას. თუ თქვენ გაქვთ მართლაც სწრაფი ქსელი და ძლიერი კომპიუტერები, შეგიძლიათ გაზარდოთ მათი რაოდენობა ThrottleLimit ბრძანების პარამეტრის გამოყენებით. თქვენ შეგიძლიათ წაიკითხოთ, თუ როგორ გამოიყენოთ ეს პარამეტრი Invoke-Command-ში დახმარების გვერდზე.

ერთადერთი პარამეტრი, რომელსაც ვერ ნახავთ ამ ბრძანების დახმარების გვერდზე, არის Command პარამეტრი. ის, როგორც უკვე აჩვენე, მშვენივრად მუშაობს. Command პარამეტრი არის მეტსახელი ან მოკლე სახელი ScriptBlock პარამეტრისთვის, რომელიც ჩამოთვლილია დახმარების გვერდზე. მე უფრო ადვილია Command-ის გამოყენება, ამიტომ მიდრეკილია გამოვიყენო ScriptBlock-ის ნაცვლად, მაგრამ ისინი ერთნაირად მუშაობენ.

თუ ყურადღებით წაიკითხავთ Invoke-Command-ის დახმარების გვერდს, ასევე შენიშნეთ ვარიანტი, რომელიც საშუალებას გაძლევთ მიუთითოთ სკრიპტის ფაილი და არა ბრძანება. FilePath პარამეტრი საშუალებას გაძლევთ გაგზავნოთ სკრიპტი დისტანციურ კომპიუტერებზე; ეს ნიშნავს, რომ თქვენ შეგიძლიათ ავტომატიზირდეთ რამდენიმე რთული ამოცანები და დაავალოთ თითოეულ კომპიუტერს სამუშაოს თავისი წილი.

ახლა მოდით გავამახვილოთ ყურადღება კომპიუტერის სახელის პარამეტრზე. Invoke-Command-ის მაგალითის კოდში მე მქონდა მძიმით გამოყოფილი კომპიუტერის სახელების სია. თუ თქვენ გაქვთ ბევრი კომპიუტერი, შეიძლება არ გინდოდეთ მათი სახელების აკრეფა ყოველ ჯერზე, როცა დაუკავშირდებით მათ. ამის ნაცვლად, შეგიძლიათ შექმნათ ტექსტური ფაილი, რომელიც შეიცავს ერთი კომპიუტერის სახელს ერთ სტრიქონზე, მძიმეების, ციტატების ან სხვა რამის გარეშე. მაგალითად, თუ თქვენს ტექსტურ ფაილს ერქვა webservers.txt, თქვენ იყენებდით შემდეგ კოდს:

Invoke-Command -Command ( dir ) - ComputerName (Get-Content webservers.txt)

ფრჩხილები აიძულებს PowerShell-ს ჯერ გაუშვას Get-Content ბრძანება - ეს ჰგავს ფრჩხილების მუშაობას მათემატიკაში. შემდეგ Get-Content-ის შედეგები მოთავსებულია -ComputerName პარამეტრში.

ასევე შესაძლებელია კომპიუტერის სახელის მოთხოვნა Active Directory-ში, მაგრამ ეს უფრო რთულია. კომპიუტერის მოსაძებნად შეგიძლიათ გამოიყენოთ Get-ADComputer ბრძანება, მაგრამ თქვენ არ ჩასვამთ ბრძანებას ფრჩხილებში, როგორც ეს გააკეთეთ Get-Content-თან დაკავშირებით. Რატომაც არა? Get-Content აწარმოებს ტექსტის მარტივ სტრიქონებს, ხოლო Get-ADComputer აწარმოებს "კომპიუტერის" ტიპის ობიექტებს. -ComputerName პარამეტრი მოელის სტრიქონს. კომპიუტერული ობიექტების მიღება რომ მოუწია, არ იცოდა, რა გაეკეთებინა მათთან. ამიტომ, თუ გსურთ გამოიყენოთ Get-ADComputer, თქვენ უნდა მიიღოთ მნიშვნელობები კომპიუტერის ობიექტების Name თვისებიდან. Ამგვარად:

Invoke-Command -Command (dir) -ComputerName (Get-ADComputer -Filter * -SearchBase "ou=Sales, dc=company, dc=pri" | Select-Object -Expand Name)

ფრჩხილებში კომპიუტერის ობიექტები გადაეცემა Select-Object ბრძანებას და -Expand პარამეტრი გამოიყენება ამ კომპიუტერის ობიექტების Name თვისების გასარკვევად. ფრჩხილებში მოცემული გამოხატვის შედეგი არის კომპიუტერის სახელების ნაკრები და არა კომპიუტერული ობიექტები. კომპიუტერის სახელები არის ზუსტად ის, რაც სჭირდება -Computer Name პარამეტრს.

თუ არ იცნობთ Get-ADComputer-ს, მოდით შევხედოთ რას აკეთებს ეს ბრძანება. -Filter პარამეტრი განსაზღვრავს, რომ ყველა კომპიუტერი უნდა იყოს შეტანილი შედეგებში, ხოლო -Search Base პარამეტრი ავალებს PowerShell-ს დაიწყოს კომპიუტერების ძებნა გაყიდვების ორგანიზაციის ჯგუფში (OU) company.pri დომენში. Get-ADComputer ბრძანება ხელმისაწვდომია მხოლოდ Windows Server 2008 R2-ში და Windows 7-ში დისტანციური სერვერის ადმინისტრირების ხელსაწყოების დაყენების შემდეგ. ამ ოპერაციულ სისტემებზე თქვენ მუშაობთ

იმპორტი-მოდული ActiveDirectory

დირექტორია სერვისის ბრძანებების ჩატვირთვა ბრძანების გარსში, რათა მათი გამოყენება შესაძლებელი იყოს.

არის კიდევ რაღაც!

ყველა ეს მაგალითი მოცემულია თანატოლებთან დისტანციური სესიებისთვის. თუ თქვენ აპირებთ ხელახლა დაკავშირებას იმავე კომპიუტერთან (ან კომპიუტერთან) რამდენჯერმე მოკლე დროში, შეგიძლიათ შექმნათ მრავალჯერადი გამოყენებადი, მუდმივი სესიები. ეს ძალიან სასარგებლოა, თუ კავშირი მოითხოვს ალტერნატიულ სერთიფიკატებს, არანაგულისხმევ პორტის ნომერს ან სხვა რაიმეს, რაც დამატებით პარამეტრებს მოითხოვს.

მუდმივი სესიების შესაქმნელად, თქვენ უნდა გამოიყენოთ New-PSSession ბრძანება, შემდეგ შეინახოთ ისინი ცვლადში მარტივი წვდომისთვის. მაგალითად, შემდეგი კოდი ქმნის დისტანციურ სესიას სამი კომპიუტერით და ინახავს მათ $sessions ცვლადში:

$sessions = New-PSSession -ComputerName One, Two, Three -Port 5555 -Credential DOMAIN\Administrator

დისტანციური სესიები ავტომატურად იხურება, როდესაც დახურავთ ბრძანების გარსს, მაგრამ მანამდე მათ შეუძლიათ დაიკავონ მეხსიერება და CPU-ს გარკვეული გამოყენება ადგილობრივ და დისტანციურ სისტემებზე. მათი ზუსტად დასახურად, შეგიძლიათ გამოიყენოთ Remove-PSSession ბრძანება:

$სესიები | Remove-PSSession

როდესაც გჭირდებათ სესიების ხელახლა გახსნა, შეგიძლიათ გამოიყენოთ Invoke-Command:

Invoke-Command -Command (dir) -Session $sessions

ან შეგიძლიათ გამოიყენოთ Enter-PSSession:

Enter-PSSession -სესია $session

გაითვალისწინეთ, რომ Enter-PSSession კოდში ხელახლა იხსნება მხოლოდ ერთი დისტანციური სესია. ინდექსის ცვლადი 1 ეუბნება PowerShell-ს, რომ მან ხელახლა უნდა გახსნას სესია კომპიუტერთან სახელად Two (ინდექსი არის ნულზე დაფუძნებული).

როგორც ვხედავთ, PowerShell-ის დისტანციურ მუშაობას ბევრი უპირატესობა აქვს. თუ გამოიყენებ, დაინახავ, რამდენად გააფართოვებს შენი ჰორიზონტი.

დონ ჯონსი ( [ელფოსტა დაცულია]) არის PowerShell-ის ტექნიკური ინსტრუქტორი (www.windowsitpro.com/go/DonJonesPowerShell), 35-ზე მეტი წიგნის ავტორი. აქვს Microsoft MVP ტიტული



წაიკითხეთ: 839

მე გაგაცნობთ პროცესს, თუ როგორ შეგიძლიათ ცენტრალურად ჩართოთ და დააკონფიგურიროთ Windows დისტანციური მართვის (WinRM) სერვისი ყველა სამიზნე კომპიუტერზე. ჯგუფიუსაფრთხოებაპოლიტიკა. Windows Remote Management არის სპეციალური სერვისი, რომელიც საშუალებას აძლევს ადმინისტრატორებს დისტანციურად წვდომა და მართონ კლიენტი და სერვერი Windows ოპერაციული სისტემები.

ავიღოთ ჩვეულებრივი კომპიუტერიფანჯრები7, რომელიც შედის დომენში და რომელზედაც ფუნქცია არ არის გააქტიურებულიფანჯრებიდისტანციურიმენეჯმენტი. ბრძანების ხაზში შეიყვანეთ შემდეგი ბრძანება:

მოდით გავუშვათ ბრძანების ხაზი ადმინისტრატორის უფლებებით.

თქვენ უნდა ნახოთ შემდეგი შეცდომის შეტყობინება, რომელიც მიუთითებს, რომ WRM არ არის დაინსტალირებული:

WSMan ბრალია. კლიენტი ვერ დაუკავშირდება მოთხოვნაში მითითებულ დანიშნულებას. შეცდომის ნომერი: – 2144108526 0?80338012

თუ თქვენ გჭირდებათ WinRM-ის ხელით კონფიგურაცია ცალკე სისტემაზე, უბრალოდ ჩაწერეთ ბრძანება:

winrm quickconfig

მე განვიხილე მისი დაყენების ვარიანტი ერთ სამუშაო სადგურზე.

თუ გჭირდებათ WinRM-ის კონფიგურაცია კომპიუტერების ჯგუფზე, შეგიძლიათ გამოიყენოთ ჯგუფის პოლიტიკის სპეციალური პარამეტრები. მოდით შევქმნათ ჯგუფის პოლიტიკა იმ კონტეინერისთვის, სადაც განთავსებულია სამუშაო სადგურები. კომპიუტერის კონფიგურაცია- პოლიტიკოსები - ადმინისტრაციული შაბლონები-> Windows კომპონენტები - Windows დისტანციური მართვა. ჩვენ ვააქტიურებთ შემდეგ პარამეტრებს:

Windows დისტანციური მართვის კლიენტი.

Windows დისტანციური მართვის სერვისი

IPv4 ფილტრის განყოფილებაში მიუთითეთ *, რაც ნიშნავს, რომ კომპიუტერს შეუძლია მიიღოს კავშირები (და შესაბამისად მართოს ბრძანებები) ნებისმიერი ადგილიდან.

შემდგომ განყოფილებაში კომპიუტერის კონფიგურაცია- პოლიტიკოსები - ადმინისტრაციულიშაბლონები – Windows კომპონენტები – Windows Remote Shell

გაააქტიურეთ ელემენტი:

დაუშვით დისტანციური ჭურვი - ჩართულია

თქვენ შეგიძლიათ მართოთ სერვისების დაწყების გზები შემდეგი ჯგუფის პოლიტიკის განყოფილებიდან: კომპიუტერის კონფიგურაცია – პოლიტიკა – Windows კონფიგურაცია – უსაფრთხოების პარამეტრები – სისტემის სერვისები.

გახსენით სერვისი "Windows Remote Management Service (WM-Management)" და გააკეთეთ პარამეტრები ქვემოთ, იხილეთ ეკრანის სურათი.

ყველაფერი მზადაა. ჩვენ გადატვირთეთ სამუშაო სადგური და WinRM-ის გააქტიურების შემდეგ ჯგუფური პოლიტიკის გამოყენებით, შეამოწმეთ სერვისის სტატუსი კლიენტის სისტემაზე ნაცნობი ბრძანების გამოყენებით:

WinRM ჩამოთვლის winrm/config/მსმენელს

მოდით დავრწმუნდეთ, რომ WinRM სერვისის გაშვების ტიპი დაყენებულია ავტომატურად. მიუხედავად იმისა, რომ სინამდვილეში გაშვების ტიპი არის "ავტომატური დაგვიანებით", რადგან ნაგულისხმევად, WinRM სერვისს აქვს გაშვების დაყოვნების ნაკრები (პარამეტრი DelayedAutoStart=1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WinRM ფილიალში).

ჯგუფური პოლიტიკის გამოყენების შემდეგ, ამ სისტემის მართვა შესაძლებელია დისტანციურად WinRS ბრძანებების გამოყენებით. შემდეგი ბრძანება გახსნის ბრძანების სტრიქონს, რომელიც მუშაობს დისტანციურ სისტემაზე:

გამარჯვებულები -r:<имя_компьютера>cmd

როდესაც Command Prompt ფანჯარა გამოჩნდება, შეგიძლიათ შეასრულოთ და ნახოთ ნებისმიერი ბრძანების შედეგები დისტანციურ კომპიუტერზე, თითქოს მასზე ლოკალურად მუშაობდით. გაითვალისწინეთ, რომ WinRM ასევე უნდა იყოს გააქტიურებული თქვენს მასპინძელ კომპიუტერზე.

ჩემს შემთხვევაში სატესტო მანქანას ჰქვია alektest4

winrs -r:alektest4 cmd

ნავიგაციის პოსტი

გამოიყენეთ პროქსი ((დაბლოკილია Roskomnadzor-ის მიერ, გამოიყენეთ vpn ან პროქსი)) Telegram კლიენტის გამოყენებისას.

Windows-ის დისტანციური მართვა WinRM-ის გამოყენებით

რეალურად WinRM(ან Windows დისტანციური მართვა) და ითარგმნება როგორც „დისტანციური მართვა Windows". WinRM- დისტანციური მართვის სერვისი ოპერაციული სისტემებისთვის ფანჯრები. მას შემდეგ ის შედის ოპერაციულ სისტემებში ვისტადა სერვერი 2008 წ, ამისთვის Windows XPდა სერვერი 2003 წაქედან ცალკე უნდა დამონტაჟდეს. WinRM– დისტანციური მართვის აპლიკაციის სერვერის ნაწილი, რომელთანაც შესაძლებელია კლიენტის გამოყენებით დისტანციურად დაკავშირება Windows Remote Shell (WinRS).

WinRMსერვისზე დაფუძნებული ვებ სერვისები მენეჯმენტისთვის (WS-Management)და იყენებს HTTP (პორტი 80) ან HTTPS (443) და SOAP მოთხოვნებს სამუშაოს შესასრულებლად. გამოყენებული პროტოკოლის მიუხედავად, მთელი ტრაფიკი გაიგზავნება WinRMდაშიფრულია (თუ კონკრეტულად არ გამორთავთ ამ პარამეტრს). ნაგულისხმევი ავტორიზაციის პროტოკოლი არის კერბეროსი.

IN Windows Server 2008 WinRMდაინსტალირებულია, მაგრამ (უსაფრთხოების მიზეზების გამო) ნაგულისხმევად არ არის ჩართული. იმის შესამოწმებლად, მუშაობს თუ არა WinRMჩვენს აპარატზე, ჩაწერეთ ბრძანების სტრიქონი winrm ჩამოთვალეთ winrm/config/მსმენელი

თუ პასუხი არ არის, მაშინ WinRMარ გაშვებული. დაყენების მიზნით WinRMავტომატურად დასაწყებად და კომპიუტერთან დისტანციური კავშირის დასაშვებად, ჩაწერეთ ბრძანება winrm quickconfigან winrm qc

იმისათვის, რომ WinRM არ მოითხოვოს დადასტურება, შეგიძლიათ დაამატოთ გასაღები ზარზე -ჩუმად. შეგიძლიათ გაიგოთ ინფორმაცია ჩაშენებული დახმარების დაზუსტების შესახებ. WinRM: winrm დახმარების კონფიგურაცია

აბა, გამორთე WinRMშეგიძლიათ გამოიყენოთ ეს ბრძანება:
winrm წაშლა winrm/config/listener?IPAdress=*+Transport=HTTP

ასევე, ყველა საჭირო პარამეტრი შეიძლება გაკეთდეს ჯგუფის პოლიტიკის გამოყენებით. ამისათვის საჭიროა:

  • დააყენეთ სერვისი WinRMავტომატურ დაწყებამდე
  • დაუშვით კავშირები შესაბამის პორტებთან (80 და 443) firewall-ში ფანჯრები
  • ჯგუფის პოლიტიკის ელემენტის კონფიგურაცია კომპიუტერის კონფიგურაცია\ადმინისტრაციული შაბლონები\Windows კომპონენტები\Windows Remote Management\Windows Remote Management\მსმენელთა ავტომატური ინსტალაციის დაშვება (კომპიუტერის კონფიგურაცია\ადმინისტრაციული შაბლონები\Windows კომპონენტები\Windows Remote Management\WinRM Service\დაუშვით მსმენელთა ავტომატური კონფიგურაცია). აქ თქვენ უნდა მიუთითოთ IP მისამართები, საიდანაც ნებადართულია კავშირები.

ახლა მოდით გადავიდეთ გამოყენებაზე. დისტანციურ კომპიუტერთან დასაკავშირებლად ჩვენ ვიყენებთ კომუნალურ პროგრამას WinRS. WinRS- აბრევიატურა Windows Remote Shell(დისტანციური გარემო ფანჯრები). თან WinRSჩვენ შეგვიძლია გამოვიყენოთ დისტანციური მოთხოვნები გაშვებულ კომპიუტერებზე WinRM. თუმცა, გახსოვდეთ, რომ თქვენი აპარატი ასევე უნდა მუშაობდეს WinRMიმუშაოს WinRS.

გამოყენების მთავარი გზა WinRSარის დისტანციურ მანქანაზე ბრძანებების შესრულება. კომპიუტერის სახელი მითითებულია გასაღებით -რმოჰყვება შესასრულებელი ბრძანება, მაგალითად იმარჯვებს: SRV2 ipconfig / ყველამუშაობს დისტანციურ კომპიუტერზე SRV2გუნდი ipconfig/ყველა

ნაგულისხმევი პროტოკოლი კომუნიკაციისთვის არის http, მაგრამ ასევე შეგიძლიათ გამოიყენოთ https: winrs -r:https://SRV2 ipconfig /all

თქვენ ასევე შეგიძლიათ გამოიყენოთ WinRSგახსენით ინტერაქტიული სესია დისტანციურ კომპიუტერზე: winrs -r:SRV2 cmd.exe

ეს ფუნქცია მსგავსია მეშვეობით დაკავშირების ტელნეტი, მაგრამ გამოიყენეთ WinRSნამდვილად უკეთესია უსაფრთხოების თვალსაზრისით.

WinRM-ის გამოსაყენებლად, ყველა კომპიუტერი უნდა იყოს ერთი და იგივე დომენის წევრი. თუ ეს ასე არ არის თქვენს შემთხვევაში, მაშინ შეგიძლიათ სცადოთ უსაფრთხოების დონის შემცირება. ამისათვის, კომპიუტერზე, რომელზეც გვინდა წვდომა, შეიყვანეთ შემდეგი ბრძანებები:

« მართალია")

« »}

WinRM დააყენა winrm/config/client @(TrustedHosts= « კომპიუტერის სახელი" }

სადაც ComputerName არის დისტანციური კომპიუტერი, საიდანაც მოხდება კავშირი.

კომპიუტერზე, საიდანაც ჩვენ დავუკავშირდებით, შეიტანეთ:

WinRM კომპლექტი winrm/config/service/auth @(Basic= « მართალია")

WinRM დააყენა winrm/config/client @(TrustedHosts= « »}

WinRM დააყენა winrm/config/client @(TrustedHosts="კომპიუტერის სახელი" }

სადაც ComputerName არის კომპიუტერი, რომელსაც ჩვენ ვმართავთ.

შემდეგ ჩვენ ვამყარებთ კავშირს ბრძანების გამოყენებით:

გამარჯვებულები -r:"კომპიუტერის სახელი" : –უ:დომენი\მომხმარებლის სახელი -p:პაროლი cmd.exe

სადაც Domain\Username არის მომხმარებლის ანგარიში ადმინისტრაციული უფლებებით დისტანციურ კომპიუტერზე.

ერთხელ მქონდა პრობლემები WinRM-თან ორ სერვერზე.

1. SETSPN
ერთის მხრივ, პრობლემა ის იყო, რომ HTTP/ SPN<имя сервера>დარეგისტრირებულნი იყვნენ ზოგიერთი "არასწორი" მომხმარებლის ანგარიშისთვის.

მე ვიპოვე ეს პოსტები ბრძანებით
setspn -F -Q */<имя сервера>

მერე ბრძანებებით წავშალე
setspn -D http/<имя сервера>.<имя домена> <имя домена>\<левая учётная запись>
setspn -D http/<имя сервера> <имя домена>\<левая учётная запись>

შემდეგ ჩართვა-psremoting -force წარმატებით დასრულდა.

2. ენის პაკეტი
და მეორე სერვერზე იყო სახიფათო პრობლემა, სავარაუდოდ, firewall-თან დაკავშირებით Firewall-ის სტატუსის შემოწმება შეუძლებელია, მოძებნა უამრავი საიტი და აღმოაჩინა გამოსავალი ინტუიციურად, დაყენებული ენის პაკეტის პასუხზე დაყრდნობით.

WinRm QuickConfig
WinRM სერვისი უკვე მუშაობს ამ მოწყობილობაზე.
WSManFault
შეტყობინება
პროვაიდერის შეცდომა
WSManFault
შეტყობინება = Firewall-ის სტატუსის შემოწმება შეუძლებელია.

შეცდომის ნომერი: -2147024894 0x80070002
სისტემა ვერ პოულობს მითითებულ ფაილს.

პასუხში ნათქვამია, რომ ეს შეცდომა შეიძლება მოგვარდეს დამატებითი ენის პაკეტის წაშლით.
მაგრამ მე სხვანაირად გავაკეთე. მაქვს ინგლისური ოპერაციული სისტემა რუსული ენის დამატებითი პაკეტით. მე უბრალოდ შევცვალე ინტერფეისის ენა რუსულზე.
საკონტროლო პანელმა, რეგიონულმა და ენობრივმა ოფციებმა, ენებმა და კლავიატურებმა შეცვალეს ინტერფეისის ენა ინგლისურიდან რუსულზე.
გამოვედი და ისევ შევედი. გახსენით PowerShell და გაიმეორეთ WinRm QuickConfig

PS C:\Windows\system32>winrm qc

WinRM სერვისი არ არის კონფიგურირებული კომპიუტერის დისტანციური მართვის დასაშვებად.
შემდეგი ცვლილებები უნდა განხორციელდეს:

შექმენით WinRM მსმენელი HTTP://*-ზე, რათა მიიღოთ WS-Man მოთხოვნები ამ კომპიუტერის ნებისმიერ IP მისამართზე.

Ცვლილებების შეტანა? წ

WinRM სერვისი განახლებულია დისტანციური მართვისთვის.

შექმენით WinRM მსმენელი HTTP://*-ზე, რათა მიიღოთ WS-Man მოთხოვნები ამ კომპიუტერის ნებისმიერ IP მისამართზე.

ეს იყო წარმატებული, მაგრამ მაინც არასაკმარისი.

ამ სერვერზე დისტანციურად სხვა კომპიუტერიდან ბრძანებების შესრულების მცდელობისას გაჩნდა Access Denied შეცდომა.

ახალი-PSSssion: [<имя сервера>] დისტანციურ სერვერთან დაკავშირება<имя сервера>ვერ მოხერხდა შემდეგი შეცდომის შეტყობინებით: წვდომა აკრძალულია. დამატებითი ინფორმაციისთვის იხილეთ about_Remote_Troubleshooting დახმარების თემა.

შემდეგ გავიმეორე Enable-PsRemoting

PS C:\Windows\system32> Enable-PsRemoting

WinRM სწრაფი დაყენება
გაუშვით Set-WSManQuickConfig ბრძანება, რათა ჩართოთ დისტანციური მართვა ამ კომპიუტერზე WinRM სერვისის გამოყენებით.
აუცილებელი მოქმედებები.
1. გაუშვით ან გადატვირთეთ (თუ უკვე მუშაობს) WinRM სერვისი.
2. WinRM სერვისის ტიპის შეცვლა „ავტოსტარტზე“.
3. შექმენით მსმენელი, რომ მიიღოს მოთხოვნები ნებისმიერ IP მისამართზე.
4. დააკონფიგურირეთ firewall-ის გამონაკლისები WS-Management სერვისის ტრაფიკისთვის (მხოლოდ http პროტოკოლი).

გაგრძელება?

(ნაგულისხმევი მნიშვნელობა არის "Y"): a
WinRM სერვისი უკვე კონფიგურირებულია კომპიუტერზე მოთხოვნების მისაღებად.
WinRM სერვისი უკვე კონფიგურირებულია კომპიუტერის დისტანციური მართვის დასაშვებად.

Დადასტურება
დარწმუნებული ხართ, რომ გსურთ ამ მოქმედების შესრულება?
ოპერაციების „რეგისტრაცია სესიის კონფიგურაციის“ შესრულება „სესიის კონფიგურაციის“ სამიზნე ობიექტზე
"Microsoft.PowerShell32" ვერ მოიძებნა. ბრძანება "Register-PSSessionConfiguration Microsoft.PowerShell32" შესრულდება
-processorarchitecture x86 -force" შექმნას "Microsoft.PowerShell32" სესიის კონფიგურაცია. WinRM სერვისი
განახლდა."
[Y] დიახ - Y [A] დიახ ყველასთვის - A [N] არა - N [L] არა ყველასთვის - L [S] შეჩერება - S [?] დახმარება
(ნაგულისხმევი მნიშვნელობა არის "Y"): a

ამის შემდეგ, WinRM მუშაობდა როგორც უნდა ამ სერვერზე.

WinRM და WinRS ახალია Windows Vista-ში, Windows Server 2003 R2, Windows Server 2008 (და Server 2008 Core)-ში. ეს არის ახალი მძლავრი ბრძანების ხაზის ხელსაწყოები, რომლებიც სთავაზობენ სისტემის ადმინისტრატორებს გაუმჯობესებულ დისტანციურ მართვას და დისტანციური შესრულების შესაძლებლობებს Windows მანქანებზე. თუმცა, მათ ჯერ უნდა ჩართოთ და გარკვეული დრო დასჭირდებათ მათი ფუნქციონირების შესასწავლად. თქვენ იღბლიანი ხართ, ამ სტატიაში მოცემულია ყველაფერი, რაც გჭირდებათ ამ ხელსაწყოების გამოყენების დასაწყებად დღესვე!

რა არის Windows დისტანციური მართვა (WinRM)?

Windows Remote Management (შემოკლებით WinRM) არის ახალი მოსახერხებელი დისტანციური მართვის სერვისი Windows Server 2003 R2, Windows Vista და Windows Server 2008. WinRM არის ამ დისტანციური მართვის პროგრამის „სერვერის“ კომპონენტი და WinRS (Windows Remote Shell) არის " კლიენტი" WinRM-ისთვის, რომელიც მუშაობს დისტანციურ კომპიუტერზე WinRM სერვერის დისტანციურად მართვის მცდელობაში. თუმცა, უნდა აღვნიშნო, რომ ორივე კომპიუტერს უნდა ჰქონდეს WinRM დაინსტალირებული და ჩართული, რათა WinRS-მა იმუშაოს და მიიღოს ინფორმაცია დისტანციური სისტემის შესახებ. WinRM ეფუძნება ვებ სერვისების მართვის (WS-Management) სტანდარტებს. ეს ნიშნავს, რომ WinRM იყენებს HTTP (პორტი 80) და SOAP მოთხოვნებს სამუშაოს შესასრულებლად. ამაში კარგი ის არის, რომ HTTP მოთხოვნები მარტივად შეიძლება გაიგზავნოს firewall-ით. აქედან გამომდინარეობს კარგი და ცუდი შედეგები: ერთის მხრივ, უფრო ადვილი იქნება დისტანციური კომპიუტერის მართვა ინტერნეტის საშუალებით, მაგრამ, მეორე მხრივ, თავდამსხმელს გაუადვილდება იმავე კომპიუტერზე დისტანციურად შეტევა. 80 პორტის გამოყენების კიდევ ერთი მცირე უპირატესობა ის არის, რომ არ არის საჭირო სერვერზე სხვა პორტების გახსნა, თუ შემომავალი HTTP კავშირები უკვე დაშვებულია.

Microsoft-ის თქმით, WinRM არის "Microsoft-ის ახალი ინსტრუმენტი სისტემების მართვისთვის სტანდარტებზე დაფუძნებული API-ს დასამყარებლად". ასე რომ, თუ ადრე არ იყავით დაინტერესებული ასეთი ინსტრუმენტების შესწავლით, ვფიქრობ, ის ფაქტი, რომ „ეს არის Microsoft-ის ახალი სტანდარტი“ ამის სწავლას ღირს.

შესაძლოა უკვე იცნობდეთ Windows Management Instrumentation (WMI) მონაცემთა ბაზას. მაგრამ, ყოველი შემთხვევისთვის, ვიტყვი, რომ ეს მონაცემთა ბაზა შეიცავს ყველა სახის ინფორმაციას კომპიუტერული ტექნიკისა და პროგრამული უზრუნველყოფის შესახებ. თითქმის ყველა აპლიკაცია, რომელიც მართავს Windows სისტემას, იშლება WMI მონაცემთა ბაზის დონეზე, რათა შეასრულოს ყველა ადმინისტრაციული დავალება მოცემულ კომპიუტერზე.

WinRM გამოიყენებს WMI მონაცემთა ბაზას ისეთი დავალებების შესასრულებლად, როგორიც შეიძლება გქონდეთ შესრულებული სხვა პროგრამული უზრუნველყოფით, როგორიცაა VBScript. WinRM-ის უპირატესობა ის არის, რომ ის იყენებს HTTP-ს (პორტი 80), როგორც ვთქვი, და არის სპეციალური კოდიც კი, რომელიც WinRM-ს საშუალებას აძლევს გაყოს შემომავალი კავშირები 80 პორტზე IIS კომპონენტთან, რომელიც შესაძლოა უკვე მუშაობს ამ პორტზე.

WinRM მხარს უჭერს სხვადასხვა ტიპის ავთენტიფიკაციას, რათა ვინმემ არ შეასრულოს ადმინისტრაციული ამოცანები თქვენს კლიენტებსა და სერვერებზე. რა თქმა უნდა, უნდა გახსოვდეთ, რომ WinRM-ის ჩართვით, თქვენ ხსნით სხვა გზას თქვენს სისტემაზე თავდასხმისთვის. თუმცა, როგორც მე ვაკეთებ ნებისმიერ ღია პორტს, თუ ავთენტიფიკაცია და დაშიფვრა სწორად არის დაყენებული, შეიძლება ჩაითვალოს, რომ მიიღეთ ყველა გონივრული სიფრთხილის ზომა.

თქვენი სისტემის მართვის პროგრამული უზრუნველყოფის მწარმოებელს შესაძლოა უკვე გეგმავდა WinRM-ის გამოყენება მათი პროგრამული უზრუნველყოფის მომავალ გამოშვებებში, ასე რომ თქვენ შესაძლოა უკვე იყენებდეთ WinRM-ს სხვა აპლიკაციების საშუალებით. თუმცა, თქვენ შეგიძლიათ გამოიყენოთ ეს კომპონენტი თავად ბრძანების გამოყენებით winrm.cmd. ამ CLI ხელსაწყოთი, თქვენ ძალიან მარტივად შეგიძლიათ ამოიღოთ ინფორმაცია WMI მონაცემთა ბაზიდან ნებისმიერი ამოცანის გადასაჭრელად.

როგორც ქვემოთ ნახავთ, WinRM-ს აქვს ბრძანების ხაზის ინტერფეისი მრავალი ვარიანტით. WinRM-ის შესახებ დახმარების ინფორმაცია ნაჩვენები იქნება თქვენც კი, თუ ის არ არის ჩართული თქვენს სისტემაში.

სურათი 1: WinRM ბრძანების ხაზის პარამეტრები

როგორ ჩართოთ და გამოვიყენოთ WinRM?

თუ იყენებთ Windows 2008 სერვერს, WinRM უკვე დაინსტალირებულია, მაგრამ ნაგულისხმევად ჩართული არ არის. ეს კარგი სიფრთხილის ზომაა. უმარტივესი გზა იმის შესამოწმებლად, არის თუ არა WinRM ჩართული და გაშვებული თქვენს აპარატზე, არის ბრძანების სტრიქონზე გადასვლა და აკრიფეთ:

winrm ჩამოთვალეთ winrm/config/მსმენელი

თუ პასუხს არ მიიღებთ, მაშინ WinRM არ მუშაობს. WinRM-ის ავტომატურად დასაწყებად და დისტანციური წვდომის დასაშვებად გამოიყენეთ ბრძანება winrm quickconfig, Მაგალითად:

C:\Users\Administrator> winrm quickconfig WinRM არ არის დაყენებული, რათა დაუშვას დისტანციური წვდომა ამ მოწყობილობაზე მართვისთვის.შემდეგი ცვლილებები უნდა განხორციელდეს:შექმენით WinRM მსმენელი HTTP://*-ზე, რათა მიიღოთ WS-Man მოთხოვნები ამ აპარატის ნებისმიერ IP-ზე.განახორციელო ეს ცვლილებები? WinRM განახლებულია დისტანციური მართვისთვის.შექმენით WinRM მსმენელი HTTP://*-ზე, რათა მიიღოთ WS-Man მოთხოვნები ამ აპარატის ნებისმიერ IP-ზე.C:\Users\Administrator>

Quickconfig-ის დაყენების შემდეგ, მე ხელახლა გავუშვით ჩამოთვლის ბრძანება შემდეგი შედეგებით:

C:\Users\Administrator> winrm და winrm/config/მსმენელი მსმენელიმისამართი = *ტრანსპორტი = HTTPპორტი = 80Მასპინძლის სახელიჩართულია = მართალიაURLPrefix = wsmanCertificateThumbprintListeningOn = 10.253.15.98, 127.0.0.1, ::1, fe80::5efe:10.253.15.98%11, fe80::9583:2148:e1ef:6444%10C:\Users\Administrator>

ახლა ვიცი, რომ WinRM ჩართულია.

სხვათა შორის, თუ გსურთ გამორთოთ WinRM, უნდა გამოიყენოთ ეს ბრძანება:

winrm წაშლა winrm/config/listener?IPAdress=*+Transport=HTTP

WinRM-ის გამოსაყენებლად, მასთან კომუნიკაციის ყველა კვანძი უნდა იყოს იმავე დომენის წევრი, როგორც WinRM გაშვებული კვანძი.

რა არის WinRS და როგორ გამოვიყენოთ იგი?

WinRS არის აკრონიმი Windows Remote Shell-ისთვის. WinRS-ით შეგიძლიათ დისტანციური მოთხოვნების გაკეთება Windows-ის აპარატებზე, რომლებიც მუშაობენ WinRM-ზე. თუმცა, არ უნდა დაგვავიწყდეს, რომ თქვენს კომპიუტერს ასევე სჭირდება WinRM-ის გაშვება WinRS-თან მუშაობისთვის.

როგორც ქვემოთ მოცემულ დიაგრამაზე ხედავთ, იმარჯვებსარის სრული ფუნქციური ბრძანების სტრიქონი ინსტრუმენტი, რომელიც შეიცავს უამრავ საცნობარო ინფორმაციას მისი გამოყენების შესახებ.

სურათი 2: WinRS ბრძანების ხაზის პარამეტრები

WinRS-ის გამოყენების ერთ-ერთი ყველაზე გავრცელებული გზაა დისტანციურ მანქანაზე ბრძანებების შესრულება. რა თქმა უნდა, ეს კომუნიკაცია ხდება HTTP პროტოკოლის გამოყენებით (პორტი 80) (ნაგულისხმევი).

ქვემოთ მოცემულია WinRS-ის გამოყენების მაგალითი: მე გავუშვი ბრძანებები localhost ჰოსტზე. ორი ბრძანება გავუშვი: '' ვერ'და' რეჟ. C:'. თითოეულ შემთხვევაში საპასუხოდ მიღებული იყო ადეკვატური ინფორმაცია.

სურათი 3: WinRS ბრძანების ჩვენება

შედეგები

WinRM და WinRS არის ძალიან ძლიერი ახალი ინსტრუმენტები, რომელთა შესახებაც Windows სისტემის ადმინისტრატორებმა უნდა გაეცნონ. იფიქრეთ დისტანციური მართვის შესაძლებლობებზე WinRM/WinRS-ით! შეგიძლიათ დააინსტალიროთ პროგრამები, შეცვალოთ პარამეტრები, მოაგვაროთ პრობლემები (რა თქმა უნდა, თუ პრობლემა არ არის ქსელურ კომუნიკაციაში). შეგიძლიათ უფრო შორს წახვიდეთ და დააკავშიროთ WinRS სკრიპტით, რომ შეასრულოთ ეს ამოცანები მრავალ კომპიუტერზე. ასევე, გახსოვდეთ, რომ იყენებთ თუ არა ამ ინსტრუმენტებს, თქვენი სისტემის მართვის პროგრამული უზრუნველყოფა მალე გამოიყენებს მათ ამა თუ იმ გზით.

მცველი

ავტონაწილები თქვენი მანქანისთვის ნებისმიერ რეგიონში.

ხანდახან სამუშაოდ ვარ პეტერბურგში, მომცეს ბმული კომპანიისთვის, რომელიც გთავაზობთ ბინების ყოველდღიურ გაქირავებას სანკტ-პეტერბურგში. კარგი ალტერნატივა სასტუმროებისთვის.