Windows PowerShell-ის ინსტალაცია და კონფიგურაცია. Windows PowerShell - სასარგებლო შენიშვნები Powershell-ის ინსტალაცია

0
Შესაფერისი:
Office 365 პროფესიონალებისთვის და მცირე ბიზნესისთვის, Office 365 საწარმოებისთვის, [ელფოსტა დაცულია]
Windows XP, Windows Vista, Windows Server 2003, Windows 7 და Windows Server 2008

სანამ Windows PowerShell-ის გამოყენებას დაიწყებთ, დარწმუნდით, რომ თქვენს კომპიუტერში დაინსტალირებული და კონფიგურირებული გაქვთ Windows PowerShell-ისა და Windows Remote Management (WinRM) სწორი ვერსიები. თქვენ უნდა გამოიყენოთ Windows Management Framework, რომელიც მოიცავს Windows PowerShell v2 და WinRM 2.0-ის სწორ ვერსიებს.

თუ თქვენს კომპიუტერს აქვს Windows 7 ან Windows Server 2008 R2, არაფრის ინსტალაცია არ გჭირდებათ. Windows Management Framework უკვე დაინსტალირებულია.

თქვენ შეგიძლიათ ჩამოტვირთოთ და დააინსტალიროთ Windows Management Framework, თუ თქვენს კომპიუტერს აქვს შემდეგი ოპერაციული სისტემა:

    Windows Vista Service Pack 1 (SP1) ან 2 (SP2);

    Windows Server 2008 Service Pack 1 (SP1) ან 2 (SP2);

    Windows Server 2003 Service Pack 2 (SP2);

    Windows XP Service Pack 3 (SP3).

მოდი საქმეს შევუდგეთ:

1. წაშალეთ Windows PowerShell-ის წინა ვერსიები თქვენი კომპიუტერიდან

Windows Management Framework-ის ინსტალაციამდე, თქვენ უნდა წაშალოთ Windows PowerShell-ის ნებისმიერი არსებული ვერსია.

1.1 Windows PowerShell-ის დეინსტალაცია Windows Vista-დან

    საკონტროლო პანელის პროგრამების ჯგუფში გახსენით პროგრამები და ფუნქციები განყოფილება და წაშალეთ Windows PowerShell-ის ნებისმიერი ეგზემპლარი, რომელიც არის დაინსტალირებული პროგრამების სიაში. მაგალითად, Windows PowerShell v2-ის CTP ვერსია შეიძლება გამოჩნდეს როგორც "Windows PowerShell (TM) V2".

    ამოცანების განყოფილებაში აირჩიეთ დაინსტალირებული განახლებების ნახვა და წაშალეთ Windows PowerShell-ის ნებისმიერი ეგზემპლარი, რომელიც ჩამოთვლილია როგორც დაინსტალირებული განახლებები. მაგალითად, Windows PowerShell V1 შეიძლება გამოჩნდეს Windows Update-ის სახით Microsoft-ის ცოდნის ბაზაში შემდეგი სტატიების ნომრებიდან ერთ-ერთი:

1.2 Windows PowerShell-ის ამოღება Windows Server 2008 სისტემიდან

    გაუშვით სერვერის მენეჯერი და გახსენით განყოფილება "კომპონენტები".

    1. აირჩიეთ "ფუნქციების წაშლა".

      აირჩიეთ Windows PowerShell მნიშვნელობა და მიჰყევით ინსტრუქციას დეინსტალაციისთვის.

    საკონტროლო პანელში, პროგრამების ჯგუფში, გახსენით პუნქტი Programs and Features და წაშალეთ Windows PowerShell-ის ნებისმიერი ეგზემპლარი, რომელიც არის დაინსტალირებული პროგრამების სიაში.

    ამოცანების ჯგუფში აირჩიეთ დაინსტალირებული განახლებების ნახვა. წაშალეთ Windows PowerShell-ის ნებისმიერი ეგზემპლარი, რომელიც ჩამოთვლილია როგორც დაინსტალირებული განახლებები.

1.3 Windows PowerShell-ის ამოღება Windows Server 2003-დან ან Windows XP-დან

    გახსენით პროგრამების დამატება/წაშლა საკონტროლო პანელში და წაშალეთ Windows PowerShell-ის ნებისმიერი ეგზემპლარი, რომელიც ჩამოთვლილია როგორც დაინსტალირებული პროგრამები.

    პროგრამების დამატება/წაშლა განყოფილებაში აირჩიეთ განახლებების ჩვენება. წაშალეთ Windows PowerShell-ის ნებისმიერი ეგზემპლარი, რომელიც ჩამოთვლილია როგორც დაინსტალირებული განახლებები. მაგალითად, Windows PowerShell V1 შეიძლება გამოჩნდეს Windows-ის განახლებად შემდეგი სტატიის ნომრით Microsoft-ის ცოდნის ბაზაში: KB926139.

2. წაშალეთ WinRM-ის წინა ვერსიები თქვენი კომპიუტერიდან

Windows Management Framework-ის ინსტალაციამდე უნდა წაშალოთ WinRM-ის ნებისმიერი არსებული ვერსია.

2.1 WinRM-ის დეინსტალაცია Windows Vista-დან ან Windows Server 2008-დან

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

    ამოცანების ჯგუფში აირჩიეთ დაინსტალირებული განახლებების ნახვა. წაშალეთ Windows დისტანციური მართვის სერვისის ნებისმიერი ეგზემპლარი, რომელიც არის დაინსტალირებული განახლებების სიაში. მაგალითად, WinRM 2.0-ის CTP ვერსია შეიძლება გამოჩნდეს როგორც "WindowsRemoteManagement" ერთ-ერთი შემდეგი სტატიის ნომრით Microsoft-ის ცოდნის ბაზაში:

2.2 Windows PowerShell-ის ამოღება Windows Server 2003-დან ან Windows XP-დან

    გახსენით პროგრამების დამატება/წაშლა მართვის პანელში და წაშალეთ Windows Remote Control-ის ნებისმიერი ეგზემპლარი, რომელიც ჩამოთვლილია როგორც დაინსტალირებული პროგრამები.

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

3. Windows Management Framework-ის ინსტალაცია

    ჩამოტვირთეთ და დააინსტალირეთ Windows Management Framework. აირჩიეთ Windows PowerShell v2 და WinRM 2.0 შემცველი პაკეტი, რომელიც შეესაბამება თქვენს ოპერაციულ სისტემას, სისტემის არქიტექტურას და ენას.

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

შენიშვნა

4. Windows PowerShell-ში სკრიპტების გაშვების შესაძლებლობის შემოწმება

    აირჩიეთ დაწყება, ყველა პროგრამა, აქსესუარები, Windows PowerShell თანმიმდევრობით.

    Windows PowerShell-ის გასახსნელად, გააკეთეთ შემდეგი:

    • თუ იყენებთ Windows Vista-ს, Windows 7-ს ან Windows Server 2008 R2-ს, დააწკაპუნეთ მარჯვენა ღილაკით Windows PowerShell-ზე და აირჩიეთ Run as administrator. როდესაც გამოჩნდება მომხმარებლის ანგარიშის კონტროლის მოთხოვნა, რომელიც გთხოვთ გააგრძელოთ, დააწკაპუნეთ ღილაკს გაგრძელება.

      თუ იყენებთ Windows XP-ს ან Windows Server 2003-ს, დააწკაპუნეთ Windows PowerShell-ზე.

    გაუშვით შემდეგი ბრძანება:

    Get-ExecutionPolicy

    თუ დაბრუნებული მნიშვნელობა განსხვავდება RemoteSigned-ისგან, თქვენ უნდა შეცვალოთ მნიშვნელობა RemoteSigned-ზე.

    შენიშვნა

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

Windows PowerShell-ში სკრიპტების გასაშვებად მომზადება

Windows PowerShell სესიაში, რომელიც გახსნილია ადმინისტრატორის სახით, გაუშვით შემდეგი ბრძანება:

Set-ExecutionPolicy RemoteSigned

5. დარწმუნდით, რომ WinRM-ს აქვს Windows PowerShell-ის დაკავშირების ნებართვა

    აირჩიეთ "დაწყება", "ყველა პროგრამა", "აქსესუარები" თანმიმდევრობით.

    შეასრულეთ ერთ-ერთი შემდეგი ბრძანების ხაზის გასახსნელად:

    • თუ თქვენ გაშვებული გაქვთ Windows Vista, Windows 7 ან Windows Server 2008 R2, დააწკაპუნეთ მარჯვენა ღილაკით Command Prompt და აირჩიეთ Run as administrator. როდესაც გამოჩნდება მომხმარებლის ანგარიშის კონტროლის მოთხოვნა, რომელიც გთხოვთ გააგრძელოთ, დააწკაპუნეთ ღილაკს გაგრძელება.

      თუ თქვენ იყენებთ Windows XP ან Windows Server 2003, აირჩიეთ Command Prompt.

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

    winrm მიიღეთ winrm/config/client/auth

    შენიშვნა

    თუ WinRM სერვისი უკვე მუშაობს, მისი გაშვება არ გჭირდებათ. WinRM სერვისის სტატუსის შემოწმება შესაძლებელია sc query winrm ბრძანების გაშვებით.

მოძებნეთ მნიშვნელობა Basic = შედეგებში. თუ მითითებულია Basic = false, მაშინ ის უნდა შეიცვალოს Basic = true.

შენიშვნა

    თუ WinRM სერვისი გაშვებულია და არ გჭირდებათ ძირითადი მნიშვნელობის შეცვლა, გაუშვით net stop winrm ბრძანება WinRM სერვისის შესაჩერებლად.

ძირითადი ავთენტიფიკაციის ჩართვა WinRM-ში

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

    winrm ნაკრები winrm/config/client/auth @(Basic="true")

    შეამოწმეთ Basic = true ბრძანების გამოსავალში.

    შენიშვნა

    თუ WinRM სერვისი გაშვებულია, გაუშვით net stop winrm ბრძანება მის შესაჩერებლად.

შემდეგი მოქმედება.

Microsoft-ის უახლესი ოპერაციული სისტემის საბოლოო გამოშვების შემდეგ გარკვეული დრო უკვე გავიდა და არა მხოლოდ ენთუზიასტები, რომლებიც ამოწმებენ შუალედურ ნაგებობებს, არამედ იმ მომხმარებლებმაც, რომლებმაც ჩამოტვირთეს დიდი ხნის ნანატრი განახლება, უკვე მოახერხეს მისი გაცნობა. ახალი სისტემა კარგია თუ არა? ეს არის უახლესი ინოვაციური პროდუქტი თუ უბრალოდ G8, რომელიც იმ დროს უნდა გამოსულიყო? ეს ის კითხვებია, რომლებზეც ცალსახად პასუხის გაცემა მაინც შეუძლებელია. აშკარა ინოვაციების გარდა, რომელიც მოიცავს Start მენიუს, რომელიც გამოჩნდა სისტემაში, Microsoft Edge ბრაუზერს, Xbox თავსებადობას, Cortana-ში ინტეგრირებულ ძიებას და ამოცანების ხედს, არის მთელი რიგი ინოვაციები, რომელთა შესახებ Windows 10-ის ყველა მომხმარებელმა არ იცის.

და ერთ-ერთი ასეთი ინოვაცია არის პროგრამული პროდუქტების უშუალოდ დაყენების შესაძლებლობა Windows PowerShell-ის ჭურვის გამოყენებით, რომელიც მოგვიანებით განიხილება ამ სტატიაში. იმისდა მიუხედავად, რომ ეს ფუნქცია გამოჩნდა ჯერ კიდევ 2014 წლის აპრილში, Windows Management Framework 5.0 Preview-ის გამოშვებასთან ერთად, ის შეიძლება გახდეს მშობლიური მხოლოდ "ათეულების" საბოლოო გამოშვებით. მოდით ვნახოთ, რომელი მოდული არის პასუხისმგებელი ამ ფუნქციონირებაზე და როგორ შეგიძლიათ დააინსტალიროთ პროგრამული პროდუქტები ინსტალაციის ფაილების ჩამოტვირთვის გარეშე.

Windows PowerShell OneGet მოდული

Windows Management Framework 5.0 Preview-ის გამოშვების შემდეგ, Windows PowerShell-ს აქვს რამდენიმე ახალი ფუნქცია, რომელიც შექმნილია კომპიუტერების მართვის გასაადვილებლად. ეს ფუნქციები მოიცავს ორ საინტერესო ტექნოლოგიას, კერძოდ, Windows PowerShell-ის სასურველი მდგომარეობის კონფიგურაციას და დამოწმებული Windows ქსელის გადამრთველებისთვის.

Certified for Windows Network Switches-ის შემთხვევაში, დაემატა Windows PowerShell-ის რამდენიმე სმდლეტი, რომლებიც პასუხისმგებელნი არიან Windows-ის სერტიფიცირებული ქსელის გადამრთველების მართვაზე. ანუ, არის 19 ახალი სმდლეტი, რომელთა პოვნაც შეგიძლიათ PowerShell-ის გარსში „Get-Command *-NetworkSwitch*“ ბრძანების გაშვებით. ვინაიდან ტექნოლოგია საკმაოდ სერიოზულია და განსაკუთრებულ ყურადღებას იმსახურებს, ამ სტატიაში შემოვიფარგლები მცირე აღწერით და არ განვიხილავ ამ ტექნოლოგიას უფრო დეტალურად.

მაგრამ მეორე ტექნოლოგია უფრო დეტალურად უნდა იყოს განხილული. თუ თქვენ დააინსტალირეთ Windows Management Framework 5 ან Windows 10 ოპერაციული სისტემა, შეგიძლიათ გამოიყენოთ ინსტრუმენტი, რომელიც ბევრად აადვილებს პროგრამული უზრუნველყოფის პოვნას და ინსტალაციას თქვენს კომპიუტერებზე. OneGet არის ასეთი ინსტრუმენტი. OneGet არის პაკეტის მართვის აგრეგატორი, ანუ მოდული, რომელიც იყენებს სპეციალურ საცავებს, რათა უზრუნველყოს ერთიანი ინტერფეისი პროგრამული უზრუნველყოფის აღმოჩენის, ინსტალაციისა და ინვენტარიზაციისთვის. სხვა სიტყვებით რომ ვთქვათ, ეს ტექნოლოგია, ერთი მხრივ, უზრუნველყოფს cmdlet-ების კომპლექტს, რომელიც საშუალებას აძლევს საბოლოო მომხმარებელს მართოს საინსტალაციო პაკეტები (რაზეც ცოტა მოგვიანებით ვისაუბრებთ), ხოლო მეორე მხრივ, ის უზრუნველყოფს ინტერფეისს გამყიდველის პაკეტების დასაწერად. .

სანამ თავად მოდულთან შეხებას დავიწყებთ, ყურადღება უნდა მიაქციოთ რამდენიმე განმარტებას, რომლებიც მჭიდროდ არის დაკავშირებული ამ ტექნოლოგიასთან, კერძოდ:

  • პაკეტი. მოკლედ, პაკეტი არის პროგრამა, რომელიც აგებულია და დაინსტალირებულია კონკრეტული წყაროდან ნებისმიერი ხელმისაწვდომი პაკეტის მართვის სისტემის გამოყენებით. როგორც წესი, პაკეტი უზრუნველყოფს შედგენილ კოდს, დამატებითი მეტა-ინფორმაციით, რომელიც შეიძლება შეიცავდეს პაკეტის აღწერას, მის ვერსიას ან „დამოკიდებულებებს“. პაკეტის მართვის სისტემა, მაგალითად, განახორციელოს პროგრამული პროდუქტის ავტომატური განახლება ახალ ვერსიაზე, რათა დარწმუნდეს, რომ ყველა პაკეტის დამოკიდებულება იქნება დაინსტალირებული, უნდა დაამუშავოს ასეთი მეტა ინფორმაცია და, საჭიროების შემთხვევაში, ავტომატურად უნდა დააინსტალიროს ყველა დაკარგული პაკეტები;
  • საცავი. ვიკიპედიის მიხედვით, საცავი არის ადგილები, სადაც მონაცემები ინახება და ინახება. ყველაზე ხშირად, საცავში არსებული მონაცემები ინახება ქსელში შემდგომი განაწილებისთვის ხელმისაწვდომი ფაილების სახით. საცავებს თავდაპირველად იყენებდნენ Linux სისტემები, რაც საშუალებას გაძლევთ დააინსტალიროთ სისტემის გასაშვებად საჭირო პაკეტები სხვა მდებარეობიდან. საცავების უმეტესობა უფასოა, მაგრამ ზოგიერთი კომპანია უზრუნველყოფს წვდომას საკუთარ საცავებზე ფასიანი გამოწერისთვის. OneGet საცავებზე ცოტა მოგვიანებით ვისაუბრებთ;
  • პაკეტის მენეჯერი. ეს არის პროგრამული ინსტრუმენტების ნაკრები, რომელიც პასუხისმგებელია პროგრამული პაკეტების ინსტალაციის, განახლების, კონფიგურაციისა და წაშლის პროცესის ავტომატიზაციაზე. როგორც წესი, პაკეტები მოიცავს მონაცემთა ბაზას, რომელიც ჩამოთვლის პროგრამული უზრუნველყოფის წინაპირობებს და დამოკიდებულებებს, ასევე პროდუქტის ვერსიის ინფორმაციას, რათა თავიდან აიცილოს არასამუშაო პროგრამული პროდუქტების გამოყენება. პაკეტის მენეჯერები მოიცავს Linux apt-get ან NuGet, რომელიც მოგვიანებით გამოჩნდა Windows სისტემებზე. თავის მხრივ, OnetGet არის NuGet-ის ლოგიკური გაფართოება, რომელიც მოქმედებს როგორც აგრეგატორი ყველა ხელმისაწვდომი პაკეტის მენეჯერისთვის, რომელსაც ეწოდება პროვაიდერები.

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

  • ჩამტვირთავი– პროვაიდერი, რომელიც საშუალებას აძლევს სხვა პროვაიდერებს აღმოაჩინონ;
  • MSI– პროვაიდერი, რომელიც შექმნილია MSI ფაილების დასამუშავებლად;
  • MSU– თავის მხრივ, გამყიდველი, რომელიც პასუხისმგებელია Microsoft-ის განახლების ფაილების მართვაზე;
  • ARP(პროგრამების დამატება/წაშლა) - პროვაიდერი, რომელიც პასუხისმგებელია ნებისმიერი პროგრამული პროდუქტის შესახებ ინვენტარიზაციის მონაცემებზე, რომელიც რეგისტრირებულია სისტემის "ამოშალე ან შეცვალე პროგრამის" კომპონენტში;
  • PowerShellGet- პროვაიდერი, რომელიც გაძლევთ საშუალებას მართოთ სხვადასხვა PowerShell მოდული.

შეგიძლიათ იპოვოთ OneGet პროვაიდერების სრული სია მათი მოკლე აღწერილობით შემდეგ ბმულზე.

თავად OneGet მოდული მოიცავს 10 Windows PowerShell cmdlet-ს, რომელთა უმეტესობა განხილული იქნება ამ სტატიის შემდეგ ნაწილში. ეს cmdlet მოიცავს:

  • Find-Package - პაკეტების ძიება;
  • Get-Package - აბრუნებს კომპიუტერზე დაინსტალირებული ყველა პაკეტის სიას;
  • Get-PackageProvider - აბრუნებს პროვაიდერების სიას, რომლებიც დაკავშირებულია OneGet-თან ამ კომპიუტერზე;
  • Get-PackageSource - აბრუნებს პაკეტის წყაროების სიას, რომლებიც რეგისტრირებულია პაკეტის კონკრეტულ პროვაიდერთან.
  • Install-Package - გაძლევთ საშუალებას დააინსტალიროთ ერთი ან მეტი პროგრამული პროდუქტი;
  • Register-PackageSource - პაკეტის წყაროს დამატება მითითებული პაკეტის პროვაიდერისთვის;
  • Save-Package - საშუალებას გაძლევთ შეინახოთ პაკეტი ადგილობრივ კომპიუტერში შემდგომი ინსტალაციის გარეშე;
  • Set-PackageSource - მითითებული პაკეტის პროვაიდერისთვის პაკეტის წყაროს შეცვლა;
  • Uninstall-Package - ერთი ან მეტი პროგრამული პაკეტის ამოღება;
  • Unregister-PackageSource - წაშალეთ რეგისტრირებული პაკეტის წყარო.
    • პროგრამული უზრუნველყოფის ინსტალაცია OneGet-ის გამოყენებით

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

      Chocolatey Package Provider-ის ინსტალაცია

  1. გახსენით Windows PowerShell და იმ პაკეტის წყაროების სიის სანახავად, რომლებიც დარეგისტრირებულია OneGet-ზე ადგილობრივ კომპიუტერზე, გაუშვით ბრძანება Get-PackageSource. გაითვალისწინეთ, რომ თუ ბრძანებაში მიუთითებთ კონკრეტული პაკეტის პროვაიდერს, მაშინ Get-PackageSource cmdlet გაჩვენებთ მხოლოდ თქვენ მიერ მითითებულ პროვაიდერთან დაკავშირებულ წყაროებს. წინააღმდეგ შემთხვევაში, ბრძანება აბრუნებს პაკეტის ყველა წყაროს, რომლებიც რეგისტრირებულია OneGet-ში. ვინაიდან ჩვენ გვჭირდება პაკეტის წყაროების ნახვა ყველა პროვაიდერისთვის, ბრძანება იმუშავებს დამატებითი პარამეტრების გარეშე. დარწმუნდით, რომ გაითვალისწინეთ, რომ ამ ეტაპზე თქვენ ჯერ არ გაქვთ დაინსტალირებული დამატებითი პაკეტის პროვაიდერი, რომელიც გამოყენებული იქნება პროგრამული პროდუქტების ინსტალაციისთვის. თქვენ შეგიძლიათ იხილოთ ბრძანების გამოსავალი შემდეგ სურათზე:

  2. როგორც წინა ილუსტრაციაში ხედავთ, Chocolatey პროვაიდერი არ არის დაინსტალირებული ჩვენს ადგილობრივ აპარატზე. ამიტომ, ეს უნდა გამოსწორდეს. გაითვალისწინეთ, რომ პაკეტის პროვაიდერის დასამატებლად, PowerShell-ის ExecutionPolicy უნდა იყოს მითითებული შეუზღუდავი. წინააღმდეგ შემთხვევაში, თქვენ ვერ შეძლებთ მომწოდებლის დამატებას. შეგახსენებთ, რომ cmdlet Get-ExecutionPolicyსაშუალებას გაძლევთ აჩვენოთ შესრულების პოლიტიკა მიმდინარე სესიისთვის. შესრულების პოლიტიკა არის Windows PowerShell უსაფრთხოების პოლიტიკის ნაწილი, რომელიც განსაზღვრავს შესაძლებელია თუ არა კონფიგურაციის ფაილების ჩატვირთვა და სკრიპტების შესრულება და რომელი სკრიპტები საჭიროებენ ციფრულ ხელმოწერას გასაშვებად. ნაგულისხმევი მნიშვნელობა არის " შეზღუდული” (არ ატვირთავს კონფიგურაციის ფაილებს და არ ახორციელებს სკრიპტებს), ასე რომ, თუ თქვენ არ შეგიცვლიათ შესრულების პოლიტიკის მნიშვნელობა თქვენთვის, გაუშვით ბრძანება Set-Executionpolicy შეუზღუდავია. იმის გამო, რომ ნაგულისხმევი შესრულების პოლიტიკის ფარგლები არის LocalMachine, ასე რომ, პოლიტიკის პარამეტრები ვრცელდება მხოლოდ მიმდინარე მომხმარებელზე, თქვენ ასევე შეგიძლიათ დაამატოთ პარამეტრი გამოყენებული ბრძანებაში. - ფარგლებიმნიშვნელობით Მიმდინარე მომხმარებელი. ამ ორი ბრძანების გამოსავალი შეგიძლიათ იხილოთ შემდეგ ილუსტრაციაში:

  3. ამ ეტაპზე ჩვენ შეგვიძლია ვიხილოთ პროვაიდერების სია, რომლებიც დარეგისტრირებულნი არიან OneGet-ში მიმდინარე კომპიუტერზე. ამისათვის შეგიძლიათ გამოიყენოთ cmdlet Get-PackageProvider. ეს cmdlet, როგორც ზემოთ უკვე აღვნიშნე, აბრუნებს პაკეტის პროვაიდერების სიას, რომლებიც უკვე დაკავშირებულია OneGet-თან. სურვილისამებრ, შეგიძლიათ შედეგების გაფილტვრა ერთი (რამდენიმე) გამყიდველის სახელის საფუძველზე. მაგალითად, იმის სანახავად, თუ რომელი პროვაიდერები არიან ამჟამად დაკავშირებული, გაუშვით cmdlet Get-PackageProviderყოველგვარი დამატებითი პარამეტრების გარეშე. როგორც შემდეგ ილუსტრაციაში ხედავთ, თავდაპირველად 4 ასეთი პროვაიდერი მყავდა დაკავშირებული ჩემს კომპიუტერთან, რომლის შესახებაც დღეს უკვე მოგახსენეთ. ახლა, Chocolatey პროვაიდერის თქვენს კომპიუტერზე დასაყენებლად, თქვენ უნდა გაუშვათ ბრძანება Get-PackageProvider -Name Chocolatey -ForceBootstrap, სადაც -ForceBootstrap პარამეტრი პასუხისმგებელია პროვაიდერის ავტომატურად ინსტალაციაზე. გაითვალისწინეთ, რომ, როგორც წესი, Chocolatey პროვაიდერის დაყენებისას, უნდა იყოს დაინსტალირებული NuGet პროვაიდერიც. როგორც ხედავთ შემდეგ ილუსტრაციაში, cmdlet-ის ხელახალი გამოყენების შემდეგ Get-PackageProvider, პროვაიდერი, რომელსაც ჩვენ ვაინსტალირებთ, უკვე უნდა გამოჩნდეს სიაში:

ახლა ჩვენ შეგვიძლია შევქმნათ პროვაიდერებში არსებული ყველა პაკეტის სრული სია და მივაწოდოთ იგი cmdlet-ში ექსპორტი-CliXMLობიექტების XML წარმოდგენის შექმნა და მათი XML ფაილში შენახვა. გაითვალისწინეთ, რომ თქვენს მიერ ექსპორტირებული სია მუდმივად შეიცვლება და დროთა განმავლობაში უფრო და უფრო მეტი პაკეტი დაემატება თქვენს მიერ გამოყენებულ საცავებს. შესაბამისად, არ დაგავიწყდეთ დროდადრო ექსპორტირებული ფაილის შეცვლა. იმისათვის, რომ მოხდეს პაკეტების სიის ექსპორტი და შეინახოთ ეს სია C:\TestPosh საქაღალდეში, თქვენ უნდა შეასრულოთ შემდეგი ბრძანება: პოვნა-პაკეტი | Export-CliXML C:\TestPosh\Test.xml

გთხოვთ გაითვალისწინოთ, რომ ექსპორტის პროცედურა აუცილებლად დაგჭირდებათ გარკვეული დრო. მას შემდეგ, რაც ბრძანება დასრულდება და თქვენს კომპიუტერში იქმნება XML ფაილი, შემოიტანეთ იგი და ნახვის გასაადვილებლად გამოიყენეთ მილსადენი და ბრძანება gridview, რომელიც პასუხისმგებელია ბრძანების შედეგების ფანჯარაში ინტერაქტიული ცხრილის სახით ჩვენებაზე, შეგიძლიათ ნახოთ რომელი პაკეტები იქნება ხელმისაწვდომი ინსტალაციისთვის. ბუნებრივია, თქვენ შეგიძლიათ გახსნათ პაკეტების ეს სია ნებისმიერი აპლიკაციის გამოყენებით, რომელსაც შეუძლია XML ფაილების დამუშავება, მაგალითად, იგივე Excel-ის გამოყენებით. ეს ბრძანება, როგორც ხედავთ შემდეგ ილუსტრაციაში, ასე გამოიყურება: Import-CliXML C:\TestPosh\Test.xml | გამოდით GridView

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

პროგრამული უზრუნველყოფის ინსტალაცია PowerShell-ის გამოყენებით

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

იმ შემთხვევაში, თუ გსურთ მიიღოთ ინფორმაცია კონკრეტულ პროგრამულ უზრუნველყოფაზე, მაგალითად, დაინსტალირებული Microsoft Office 2013 პროდუქტებზე, შეგიძლიათ გამოიყენოთ –Name პარამეტრი ამ cmdlet-თან ერთად შესაბამისი მნიშვნელობით, მაგალითად, მიიღეთ-პაკეტი - სახელი "ოფისი 2013". ამ cmdlet-ის გამომავალი ჩანს ქვემოთ:

პროგრამული უზრუნველყოფის დაყენებამდე შევეცადოთ გადავწყვიტოთ რა უნდა დავაყენოთ. ვინაიდან მოწყობილობაზე მხოლოდ Office 2013 და რამდენიმე სხვა აპლიკაციაა დაინსტალირებული, შემდეგ მე გაჩვენებთ, თუ როგორ შეგიძლიათ დააინსტალიროთ პროგრამული პროდუქტები, როგორიცაა Adobe Creative Cloud, Adobe Reader, Notepad ++, ასევე Process Explorer, Process Monitor და WinRar.

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

მაგალითად, დასაწყისისთვის, შევეცადოთ ვიპოვოთ Adobe აპლიკაციები, რომლებიც ხელმისაწვდომია ინსტალაციისთვის ჩვენ მიერ დამატებული Chocolatey პროვაიდერისგან. ამისათვის, გარდა თავად cmdlet-ისა, საკმარისია პარამეტრის მითითება -სახელიდა შეიყვანეთ სასურველი პროგრამული პროდუქტი მის მნიშვნელობად. იმის გამო, რომ საინსტალაციო პაკეტებს შეიძლება ჰქონდეს პროდუქტის სახელი სიტყვა Adobe-ის შემდეგ, შეიყვანეთ პროდუქტის სახელი შემდეგნაირად: Adobe *როგორც ნაჩვენებია შემდეგ ილუსტრაციაში. როგორც ხედავთ, OneGet მოდულმა იპოვა შემდეგი საინსტალაციო პაკეტი საცავში: adobe-creative-cloudვერსია 1.0. პრინციპში, ეს არის ერთ-ერთი პროდუქტი, რომელსაც ეძებთ, რაც იმას ნიშნავს, რომ უნდა დამონტაჟდეს. ამისათვის, როგორც ხედავთ შემდეგ ილუსტრაციაშიც, თქვენ უნდა გამოიყენოთ cmdlet-ის შესაძლებლობები ინსტალაცია-პაკეტი. Creative Cloud-ის დასაყენებლად გაუშვით შემდეგი ბრძანება Install-Package -დასახელება adobe-creative-cloud –Force, სადაც Force პარამეტრი, როგორც ეს ჩვეულებრივ PowerShell-შია, უგულებელყოფს შეზღუდვებს, რომლებიც ხელს უშლის ბრძანების შესრულებას, სანამ ცვლილებები დაიწყებს უსაფრთხოების მოთხოვნების დარღვევას. ამ ბრძანებების გამოსავალი შეგიძლიათ იხილოთ შემდეგ ილუსტრაციაში:

ახლა, პირველი პროგრამული პროდუქტის დაინსტალირების შემდეგ, შევეცადოთ მოძებნოთ Adobe Reader-ის კონკრეტული ვერსია. ამისათვის უკვე ცნობილი ბრძანების გარდა Find-Package – დაარქვით AdobeReaderპარამეტრი უნდა დაემატოს - ყველა ვერსია, რომელიც აბრუნებს პაკეტის ყველა ხელმისაწვდომ ვერსიას, ან პაკეტის ყველა ვერსიას, რომელიც არის ოფციებში მითითებულ დიაპაზონში მინიმალური ვერსიადა მაქსიმალური ვერსია. გთხოვთ გაითვალისწინოთ, რომ ეს პარამეტრი არჩევითია, რადგან ძიება თავდაპირველად აჩვენებს პროგრამული პროდუქტის უახლეს ვერსიას. ახლა ყველა არსებული ვერსიიდან უნდა ავირჩიოთ ის, რომელიც უნდა იყოს დაინსტალირებული კომპიუტერზე, მაგალითად, ეს იყოს ვერსია 2015.007.20033 . იმისათვის, რომ დააინსტალიროთ მკითხველის ეს კონკრეტული ვერსია, თქვენ უნდა შეასრულოთ ბრძანება Install-Package -სახელი AdobeReaderპარამეტრის დამატება - საჭირო ვერსიამნიშვნელობით 2015.007.20033 , რომელიც განსაზღვრავს პაკეტის ზუსტ ვერსიას, რომლის ინსტალაციაც გსურთ. თქვენ ასევე შეგიძლიათ დააყენოთ პროდუქტის მაქსიმალური ხელმისაწვდომი ვერსია პარამეტრის დამატებით მაქსიმალური ვერსიაშესაბამისი ღირებულებით. ამ ბრძანებების გამოსავალი ნაჩვენებია შემდეგ ილუსტრაციაში:

თუ გჭირდებათ პროგრამული პროდუქტის უახლესი ვერსიის ინსტალაცია და ამავე დროს არ გსურთ აკრიფოთ რამდენიმე ბრძანება PowerShell-ში, შეგიძლიათ განაზოგადოთ პაკეტის ძებნა და ინსტალაცია მილსადენის გამოყენებით. მაგალითად, Notepad++ ტექსტური რედაქტორის უახლესი ვერსიის დაყენების შემთხვევაში, შეგიძლიათ გაუშვათ შემდეგი ბრძანება: Find-Package -Name NotepadPlusPlus | Install-Package -Force. ამრიგად, თქვენ ეძებთ პაკეტს საცავში და, თუ შედეგს იპოვით, დაუყოვნებლივ დააინსტალირეთ იგი ჩუმ რეჟიმში. ამ პროგრამული პროდუქტის ინსტალაციის პროცესი ნაჩვენებია ქვემოთ:

ახლა, რადგან ზემოაღნიშნული ამოცანის მიხედვით, რჩება Process Explorer-ის, Process Monitor-ის და WinRar-ის დაყენება, მოდით ვცადოთ ერთდროულად რამდენიმე პროგრამული პაკეტის დაყენება. ამისათვის სასურველია ვიცოდეთ ზუსტად როგორ იწოდება ეს პაკეტები თავად საცავში. როგორც ადრე დავწერე, ამის შემოწმება შესაძლებელია cmdlet-ის გამოყენებით პოვნა-პაკეტი | გამოდით GridView. მას შემდეგ რაც ცნობილია პაკეტის სახელები, შეგიძლიათ გააგრძელოთ თავად ინსტალაცია. ამისათვის შეგიძლიათ გაუშვათ შემდეგი ბრძანება: Find-Package -დასახელება procexp, procmon, winrar | ინსტალაცია-პაკეტი. ამ მაგალითში, როგორც ხედავთ შემდეგ ილუსტრაციაში, მე კონკრეტულად არ ვაკონკრეტებ პარამეტრს ძალარათა ყურადღება მიაქციოთ რამდენიმე პროგრამული პაკეტის ერთდროულად დაყენების მთელ პროცესს.

პროგრამების შენახვა და წაშლა

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

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

როგორც ხედავთ შემდეგ ილუსტრაციაში, ბრძანება Save-Package -Name Procexp -Path C:\TestPoshშეინახეთ Process Explorer-ის უახლესი ვერსია C:\TestPosh საქაღალდეში:

თუ შემთხვევით დააინსტალირეთ არასწორი პაკეტი, ყოველთვის შეგიძლიათ წაშალოთ იგი OneGet მოდულის გამოყენებით. ამისათვის გამოიყენეთ cmdlet დეინსტალაცია-პაკეტი. როგორც ამ მოდულის დანარჩენი cmdlets, თქვენ უნდა მიუთითოთ Name პარამეტრი შესაბამისი აპლიკაციის სახელით პროგრამის წასაშლელად, ასევე შეგიძლიათ გამოიყენოთ Force პარამეტრი პროგრამის ჩუმად ამოსაღებად. მაგალითად, კომპიუტერიდან ადრე დაინსტალირებული WinRAR-ის მოსაშორებლად, თქვენ უნდა შეასრულოთ შემდეგი ბრძანება: Uninstall-Package -სახელი WinRAR-Forceროგორც ქვემოთ:

დასკვნა

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

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

VN:F

რეიტინგი: 9.9/ 10 (18 ხმა)

პროგრამების ინსტალაცია PowerShell-ის გამოყენებით Windows 10-ში, 9.9 10-დან 18 შეფასების საფუძველზე

დღეს მე გაჩვენებთ როგორ დააინსტალიროთ და გამოიყენოთ Active Directory Administration Module Windows PowerShell-ისთვის. თქვენ შეგიძლიათ გამოიყენოთ cmdlets ამ მოდულში, რათა მიიღოთ ინფორმაცია და მართოთ სხვადასხვა AD ობიექტებისა და პარამეტრების შესახებ. ეს მოდული დამონტაჟებულია როგორც ცალკე კომპონენტი სერვერის ოპერაციულ სისტემებში. დესკტოპის ოპერაციულ სისტემაზე (Windows 10, 8.1, 7), თქვენ მოგიწევთ დააინსტალიროთ დისტანციური სერვერის ადმინისტრირების ინსტრუმენტები (RSAT) პაკეტი, რომელიც მოიცავს მოდულს PowerShell-ის AD-თან ურთიერთობისთვის. გარდა ამ მოდულისა, RSAT მოიცავს ყველა აუცილებელ მენეჯმენტის გრაფიკულ სნეპ-ინს, ბრძანების ხაზს და Windows PowerShell მოდულებს Windows და AD ადმინისტრირებისთვის. თქვენ თავად უნდა ჩამოტვირთოთ ეს პაკეტი თქვენი OS-ის ვერსიისთვის Microsoft-ის ვებსაიტიდან.

Windows PowerShell-ისთვის Active Directory მოდულის ინსტალაცია

Active Directory მოდული Windows PowerShell-ისთვის პირველად გამოჩნდა Windows Server 2008 R2-ში. ის ავტომატურად არის დაყენებული. AD მოდულიდან PowerShell cmdlet-ების გამოსაყენებლად, დომენს უნდა ჰქონდეს მინიმუმ ერთი კონტროლერი, რომელიც მუშაობს Windows Server 2008 R2 ან უფრო ახალ ვერსიაზე. თუ თქვენს ქსელს აქვს მხოლოდ Windows Server 2003 და 2008 DC-ები, უნდა ჩამოტვირთოთ და დააინსტალიროთ Active Directory Management Gateway Service. PowerShell cmdlets Active Directory მოდულიდან ურთიერთქმედებს ვებ სერვისთან, რომელიც არის დომენის კონტროლერის ნაწილი ADDS როლით.

თქვენ შეგიძლიათ დააინსტალიროთ Active Directory Module Windows PowerShell-ისთვის არა მხოლოდ დომენის კონტროლერზე, არამედ დომენის ნებისმიერ წევრ სერვერზე ან სამუშაო სადგურზე. Windows Server 2016-ზე შეგიძლიათ დააინსტალიროთ Active Directory მოდული Windows PowerShell-ისთვის სერვერ მენეჯერის გრაფიკული კონსოლიდან, როლების და მახასიათებლების დამატების ოსტატის გამოყენებით. საკმარისია ოსტატის გაშვება და კომპონენტების შერჩევის ეტაპზე აირჩიეთ Remote Server Administration Tools -> Role Administration Tools -> AD DS და AD LDS Tools -> Active Directory მოდული Windows PowerShell-ისთვის(დისტანციური სერვერის ადმინისტრირების ინსტრუმენტები > როლების ადმინისტრირების ინსტრუმენტები > AD DS და AD LDS Tools -> Active Directory მოდული Windows PowerShell-ისთვის).

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

იმპორტ-მოდულის სერვერის მენეჯერი
დამატება-WindowsFeature -სახელი "RSAT-AD-PowerShell" -IncludeAllSubFeature

Windows 10-ში, Windows 8.1-ში და Windows 10-ში RSAT-AD-PowerShell მოდულის დასაყენებლად ჯერ უნდა დააინსტალიროთ RSAT-ის შესაბამისი ვერსია, ამის შემდეგ მოდული უნდა ჩართოთ საკონტროლო პანელში (პანელი -> პროგრამები -> პროგრამები). და ფუნქციები და დააწკაპუნეთ „Windows-ის ფუნქციების ჩართვა“ -> დისტანციური სერვერის ადმინისტრირების ხელსაწყოები -> როლების ადმინისტრირების ხელსაწყოები -> AD DS და AD LDS ინსტრუმენტები -> ჩართეთ Active Directory Module Windows PowerShell კომპონენტისთვის.

ან შეგიძლიათ დააინსტალიროთ მოდული PowerShell-ის გამოყენებით:

Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Active Directory PowerShell მოდულის იმპორტი და გამოყენება

Windows 7-ზე და Windows Server 2008 R2-ზე დაინსტალირებული PowerShell 2.0-ზე, AD მოდულის გამოყენების დასაწყებად, თქვენ უნდა შემოიტანოთ იგი თქვენს PowerShell სესიაში ბრძანებით:

ალტერნატიულად, შეგიძლიათ მოდულის ექსპორტი დისტანციური აპარატიდან, სადაც ის უკვე დაინსტალირებულია და შემოიტანოთ იგი თქვენს PowerShell სესიაში:

$MySession = New-PSSession -ComputerName MyDomainController
Export-PSsession -Session $MySession -Module ActiveDirectory -OutputModule RemoteADPosh
Remove-PSSession -Session $MySession
იმპორტი-მოდული RemoteADPosh

Windows Server 2012 R2/2016-ში და Windows 8.1/Windows 10-ში მოდული (თუ დაინსტალირებულია) ავტომატურად იმპორტირებულია სესიაში.

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

PS C:\> cd AD:
PS AD:\> რეჟ

PS AD:\> cd "DC=vmblog,DC=ru"

თქვენ შეგიძლიათ აჩვენოთ ხელმისაწვდომი მოდულის cmdlet-ების სია Active Directory-თან მუშაობისთვის შემდეგნაირად:

Get-Command - მოდული ActiveDirectory

Windows-ის სხვადასხვა ვერსიაში ხელმისაწვდომია სხვადასხვა რაოდენობის cmdlet:

  • Windows Server 2008 R2 - 76 სმდლეტი.
  • Windows Server 2012 - 135 სმდლეტი
  • Windows Server 2012 R2 / 2016 - 147 სმდლეტი.

ახლა თქვენ შეგიძლიათ გამოიყენოთ PowerShell cmdlets AD-ის ადმინისტრირებისთვის. ჩვენს საიტებზე შეგიძლიათ გაეცნოთ შემდეგი cmdlet-ების გამოყენებას AD მოდულიდან PowerShell-ისთვის: , .

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

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

მიუხედავად იმისა, რომ vbs არ არის ცუდი, მის მემკვიდრე PowerShell-ს გაცილებით მეტი ფუნქციონირება აქვს.

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

Თუ Windows 7-ით დაწყებული, PowerShell-ი მოყვება თავად Windows-ს, შემდეგ Windows XP-ში უნდა ჩამოტვირთოთ და დააინსტალიროთ - ჩამოტვირთეთ PowerShell V2 Windows XP SP3-ისთვის.

Powershell-ის მე-5 ვერსიის ჩამოტვირთვა შესაძლებელია ბმულიდან: microsoft.com, ასევე აღწერილია რომელი ფაილი ჩამოტვირთოს სასურველი OS-ისთვის და როგორ დააინსტალიროთ.

როგორ დავუშვათ ადგილობრივი PowerShell სკრიპტების გაშვება?

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

powershell -Command Set-ExecutionPolicy RemoteSigned

წინააღმდეგ შემთხვევაში, როდესაც ცდილობთ თქვენი სკრიპტის გაშვებას, დაინახავთ შემდეგ ტექსტს:

ფაილის C:\ImageSize.ps1 ჩატვირთვა შეუძლებელია, რადგან ამ სისტემაში სკრიპტის დაწერა დაუშვებელია. აკრიფეთ "get-help about_signing" დამატებითი ინფორმაციისთვის.
+ კატეგორიის ინფორმაცია: არ არის მითითებული: (:) , ParentContainsErrorRecordException
+ FullyQualifiedErrorId: RuntimeException

უსაფრთხოების ამ პოლიტიკის უკან დასაბრუნებლად, დაწერეთ:

powershell -Command Set-ExecutionPolicy შეზღუდულია

ნებისმიერი სკრიპტის გაშვების დასაშვებად ხელმოწერის დადასტურების გარეშე, დაწერეთ:

powershell -Command Set-ExecutionPolicy შეუზღუდავი

თუ სკრიპტის გაშვებისას ხედავთ შემდეგ შეტყობინებას:

უსაფრთხოების გაფრთხილება გაუშვით მხოლოდ სკრიპტები, რომლებსაც ენდობით. მიუხედავად იმისა, რომ სკრიპტები ინტერნეტიდან შეიძლება სასარგებლო იყოს, ამ სკრიპტმა შესაძლოა ზიანი მიაყენოს თქვენს კომპიუტერს. გსურთ გაუშვათ \server\scripts\my.ps1? [D] არ გაუშვათ [R] გაუშვით ერთხელ [S] შეჩერება [?] დახმარება (ნაგულისხმევია "D"): d

და თუ გსურთ მისი მოშორება, მაშინ სკრიპტის გაშვებისას გამოიყენეთ -ExecutionPolicy Bypass პარამეტრი

Powershell -ExecutionPolicy Bypass -ფაილი "\\server\scripts\my.ps1"

როგორ გავუშვათ PowerShell სკრიპტი?

შეიყვანეთ ბრძანება ბრძანების ხაზზე

Powershell - ფაილი your-script-name.ps1

სადაც your-script-name.ps1 არის თქვენი სკრიპტის სახელი. PowerShell სკრიპტის ფაილებს აქვთ *.ps1 გაფართოება

დახმარება ან დახმარება Windows PowerShell-თან დაკავშირებით

PowerShell-ს აქვს სხვადასხვა cmdlet ამა თუ იმ დახმარების მისაღებად. მაგრამ ყველაზე მნიშვნელოვანი არის: მიიღეთ დახმარება

შეიყვანეთ ბრძანებები კონსოლში:

powershell -ბრძანება Get-Help

powershell -ბრძანება მიიღეთ-დახმარება -?

და მიიღეთ ორი განსხვავებული აღწერა, რომლებიც ავსებენ ერთმანეთს დახმარების გამოყენების შესახებ.

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

Მაგალითად:

  • powershell -ბრძანება Get-Help Get-Help - ზოგადი დახმარება Get-Help cmdlet-ისთვის
  • powershell -command get-help Get-Help -მაგალითები - მაგალითები, თუ როგორ შეგიძლიათ გამოიყენოთ get-help cmdlet
  • powershell -command get-help Get-help -დეტალური - დეტალური დახმარება get-help cmdlet-ისთვის
  • powershell -command get-help Get-Help -full - ყველაზე სრულყოფილი დახმარება get-help cmdlet-ზე

winintro.ru/windowspowershellhelp.ru/ - დახმარება html-წიგნის სახით

Windows Powershell შენიშვნები:

შედარება ოპერატორები

  • -eq - ტოლი
  • -ne - არა თანაბარი - არა თანაბარი
  • -ge - მეტი ან ტოლი - მეტი ან ტოლი
  • -გტ მეტი ვიდრე
  • -lt - Less than - Less than
  • -le - ნაკლები ან თანაბარი - Less than ან Equal
  • -like - Wildcard შედარება - გამოიყენეთ wildcards ნიმუშის შესატყვისად
  • -არამსგავსი - ველური ნიშნების შედარება - ველური ნიშნების გამოყენება შეუსაბამობების მოსაძებნად
  • -match - რეგულარული გამოსახულებების შედარება - გამოიყენეთ რეგულარული გამონათქვამები ნიმუშის შესატყვისად
  • -notmatch - რეგულარული გამოხატვის შედარება - გამოიყენეთ რეგულარული გამონათქვამები შაბლონების შეუსაბამობების მოსაძებნად
  • -replace - Replace operator - ცვლის ოპერატორის მარცხნივ მდებარე მნიშვნელობის ნაწილს ან მთელს
  • -contains - შეკავების ოპერატორი - დაადგინეთ, ოპერატორის მარცხნივ მნიშვნელობა შეიცავს თუ არა მნიშვნელობას მარჯვნივ. შედეგი არის ლოგიკური მნიშვნელობა
  • -notcontains - შეკავების ოპერატორი - განსაზღვრავს, რომ ოპერატორის მარცხნივ მნიშვნელობა არ შეიცავს მარჯვნივ მდებარე მნიშვნელობას. შედეგი არის ლოგიკური მნიშვნელობა

ნაგულისხმევად, შედარების ოპერატორებს არ აქვთ რეზონანსული მნიშვნელობები.
რეგისტრირებული შედარებისთვის, ბრძანებას პრეფიქსი აქვს "c". მაგალითად, რეგისტრირებული -eq ოპერატორი შეიცვალა "-ceq".
მკაფიო რეგისტრირებული შედარებისთვის, ბრძანებას პრეფიქსი აქვს "i". მაგალითი: -replace ოპერატორი არის რეგისტრირებული -ireplace

  • -ის - არის ტიპი
  • -არ არის - არ არის ტიპი
  • -as - როგორც ტიპი, არ არის შეცდომა, თუ კონვერტაცია ვერ მოხერხდა

PowerShell ლოგიკური ოპერატორები:

  • -და - ორივე პირობა უნდა იყოს ჭეშმარიტი, რომ გამოთქმა იყოს ჭეშმარიტი
  • -ან - ერთი ან ორივე პირობა უნდა იყოს ჭეშმარიტი, რომ გამოთქმა იყოს ჭეშმარიტი
  • -xor - ერთი პირობა უნდა იყოს ჭეშმარიტი და მეორე მცდარი, რომ გამოთქმა იყოს ჭეშმარიტი
  • -არა - მითითებული პირობები უნდა შეფასდეს "false"-მდე, რათა გამოთქმა იყოს ჭეშმარიტი
  • ! - მითითებული პირობა უნდა შეფასდეს "false"-მდე, რათა გამოთქმა იყოს ჭეშმარიტი

$myVar -არის "სტრიქონი" $myVar -eq 123 $myVar -ceq $myVar2 "abcdef" -როგორც "abc*" "abcdef" -ჩანაცვლება "dEf","xyz" $myVar1 - არის "სტრიქონი" -და $myVar2 - არის "Int" (1 -eq 1) -და -არა (2 -gt 2)

სიმებიანი ოპერაციები

#გაყოფა სტრიქონი ინტერვალით: $string = "სატესტო სტრიქონი" $string.split(" ") $string.IndexOf(" ") #Search $string პირველი ადგილისთვის # აბრუნებს ნულზე დაფუძნებულ ინდექსს პირველი გაჩენის შესახებ PS> "abcdeabcde". indexOf("cde") 2 # აბრუნებს ინდექსის პოზიციას მითითებული სიმბოლოს ბოლო გამოჩენიდან PS> "abcdeabcde".lastIndexOf("c") 7 # აბრუნებს ქვესტრინგს, რომელიც იწყება პოზიციიდან 1 PS> " abcdefgh".Substring(1) bcdefgh # აბრუნებს ქვესტრიქონს, რომელიც იწყება 1-ლი პოზიციიდან და 4 სიმბოლო სიგრძით PS> "abcdefgh".Substring(1,4) bcde # ქვესტრიქონის ჩასმა პოზიციიდან 0 PS> "abcdefgh".insert(0," X") Xabcdeabcde # ამოღება პოზიციიდან 0 სიგრძე 2 PS> "abcdefgh".remove(0,2) cdeabcde # ობიექტის თვისება - სტრიქონის სიგრძე PS> "abcdefgh".length 8 # აბრუნებს True თუ სტრიქონი შეიცავს ქვესტრინგს "cde" PS> "abcdefgh" . Contains("cde") True # აბრუნებს True, თუ სტრიქონი იწყება ქვესტრიქონით "abc" PS> "abcdefgh".startsWith("abc") True # აბრუნებს True, თუ სტრიქონი მთავრდება ქვესტრიქონით " fgh" PS> "abcdefgh".endsWith("fgh") Tru e # აბრუნებს True, თუ სტრიქონი შეიცავს ქვესტრინგს "cde" PS> $"abcdefgh" -მსგავსი "*cde*" True # აბრუნებს მასივს, სადაც "d" არის დელიმიტერი PS> "abcdefgh" -გაყოფა "d" abc efgh # აბრუნებს სტრიქონს შერწყმული ორიდან ":" - გამყოფი PS> "abcdefgh", "xyz"-join ";" abcdefgh;xyz # აბრუნებს სტრიქონს, სადაც "abc" შეიცვლება "XYZ"-ით PS> "abcdefgh".replace("abc","XYZ") XYZdefgh # აბრუნებს სტრიქონს, სადაც სიმბოლოები გარდაიქმნება UPPER შემთხვევაში PS> "abcdefgh". ".ToUpper( ) ABCDEFGH # აბრუნებს სტრიქონს, სადაც სიმბოლოები გარდაიქმნება PS> "ABCDEFGH".ToLower() abcdefgh

წინასწარ განსაზღვრული ცვლადები

$სახლი- მომხმარებლის დირექტორია
$NULL- ცარიელი
$მართალი- სიმართლე
$ ყალბი- ტყუის
$DebugPreference– „გაგრძელება“ გამომავალი გამართვის, „SilentlyContinue“ არ გამოაქვეყნოს გამართვის ინფორმაცია. იხილეთ ჩაწერა-გამართვის ბრძანება

ფაილებთან მუშაობა

$string | Out-File $file -Append #Append $string ახალი ხაზით ფაილში $file $string = get-content -Path $file #მიიღეთ ფაილის შინაარსი $string-ში $file $jokes = ::ReadAllText($file ) #წაიკითხეთ მთელი ფაილი ერთ სტრიქონში Test-Path "C:\test.txt" #შეამოწმეთ ფაილი არსებობს თუ არა

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

$flist = get-childitem e:\doc\* -include *.pdf -recurse $flist | ForEach-Object($_.CopyTo("e:\doc\all_pdf\" + $_.PSChildName)) ls d:\ | ?($_.psiscontainer) | აირჩიეთ სრული სახელი #მხოლოდ დირექტორიების ჩვენება ls d:\ | ?(!$_.psiscontainer) | აირჩიეთ სრული სახელი #ფაილების ჩვენება მხოლოდ $local = Get-Location #მიმდინარე დირექტორია $local.Path # სამუშაო დირექტორია $local.Drive.Root # Root $local.Drive.Name # დისკის ასო $local.Drive.Used # Drive გამოიყენება $local .Drive.Free # უფასო დისკზე

ნაჩვენებია ფაილების სრული სახელები დისკზე D: რომლებიც შეიცვალა 2014 წლის 1 ივნისიდან 2014 წლის 20 სექტემბრამდე:

Ls d:\ -recurse | ?(!$_.psiscontainer) | აირჩიეთ სრული სახელი,LastWriteTime | Where-Object ($_.LastWriteTime -ge "06/01/2014" -და $_.LastWriteTime -le "09/20/2014")

ტექსტის ჩვენება ეკრანზე

# ტექსტი, რომელსაც ყურადღება უნდა მიაქციოთ. მონიშნულია ყვითლად. Write-Warning("ტექსტს ყურადღება სჭირდება") # Just output text Write-Host("Just text") #enable debug output $DebugPreference = "გაგრძელება" # ბეჭდვა გამართვის შესახებ ინფორმაციის ჩაწერა-გამართვა "ფაილის გახსნა შეუძლებელია." # გამორთულია გამართვის გამომავალი $DebugPreference = "Silently Continue"

გააჩერეთ რამდენიმე წამი

დაწყება-ძილი -s 15 # პაუზა 15 წამით

შეაჩერეთ კონსოლში, სანამ არ დააჭერთ Enter-ს

წაკითხვის ჰოსტი "დააჭირე Enter"

პროცესებთან მუშაობა

#ამოცანა: მოკვლა ყველა პროცესი სახელად Notepad # მეთოდი #1 მისაღებად-პროცესის Notepad | Stop-Process # მეთოდი #2 (მუშაობს მხოლოდ ერთი პროცესით) $plist = get-process Notepad $plist.Kill() # მეთოდი #3 (იგივე 2, მაგრამ ყველა პროცესი) $plist = get-process Notepad $plist | ForEach-Object ($_.Kill()) #მიიღეთ პროცესები და მათი დაწყების თარიღები: Get-Process| Format-Table Name,StartTime-AutoSize

მატება

$i++ - დარეკვის დროს მე მაქვს ძველი მნიშვნელობა, მაგრამ ამის შემდეგ ის იზრდება 1++-ით

++$i - ზარის დროს, i იზრდება 1-ით

მასივები

$array = 17,15,160 #created სამი ელემენტისგან შემდგარი მასივი $array -contains $element #შეიცავს მასივი $file1 ელემენტს $file1.count მასივის #size მასივის #მოცილება "asdf" ელემენტის მასივიდან $array = @ ("adsf","adf","erge") $array = $array |? ($_ -ne "adf") #მიიღეთ მასივის მხოლოდ უნიკალური ელემენტები $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | აირჩიეთ -uniq #ინდექსი ელემენტის პირველი გაჩენის მასივში $array.indexOf("cde")

თუ Elseif Else კონსტრუქცია

if ($i -eq 0) ( Write-Host("i არის ნული") ) ElseIf ($i -eq 1) (Write-Host("i უდრის ერთს") ) Else (Write-Host("i არ არის ნულის ან ერთის ტოლი")

ყოველი მარყუჟისთვის

$services = Get-Service ForEach ($service in $services) ( $service.Stop() ) 65 #convert ASCII კოდი სიმბოლოდ "A" #convert character to ASCII code "Hello" #convert string to ASCII codes

ველოდებით რომელიმე კლავიშის დაჭერას:

$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer() $host.ui.RawUI.WindowTitle = "(!LANG:elimS ფანჯრის სათაური" #задаем заголовок окна !}

მონაცემთა ტიპები PowerShell-ში

ყველაზე გავრცელებული ტიპები:

უნიკოდის სიმბოლოების ფიქსირებული სიგრძის სტრიქონი Unicode 16-ბიტიანი სიმბოლო 8-ბიტიანი ხელმოუწერელი სიმბოლო 32-ბიტიანი მთელი რიცხვი 64-ბიტიანი ხელმოწერილი მთელი რიცხვი ლოგიკური True/False მნიშვნელობა 128-ბიტიანი ათობითი მნიშვნელობა ერთჯერადი ზუსტი 32-ბიტიანი მცურავი წერტილის ნომერი ორმაგი - ზუსტი 64-ბიტიანი მცურავი წერტილის ნომერი თარიღი და დრო Xml ობიექტი მნიშვნელობების მასივი Hashtable ობიექტი

ასევე არის ჩაშენებული მუდმივები: $true,$false, $null

Unicode: PowerShell სტრიქონში Unicode სიმბოლოს დაშიფვრად, უნიკოდის პრეფიქსი 0x-ით და გადაიტანეთ System.Char-ზე:

PS > 0x263a ☺

მონაცემთა ტიპის კონვერტაცია

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

PS C:\> "0064" 64 PS C:\> $false 0 PS C:\> ("0x" + "FF") 255

მონაცემთა ტიპების ტესტირება

PS C:\> 32 -ის
True PS C:\> $true -is
მართალია

ფუნქციები Powershell-ში

ფუნქცია elimS ( #ფუნქცია, რომელსაც აქვს მრავალი შეყვანის პარამეტრი param($string = "default", $integer = 7) #input parameters write-host "string = " $string " | მთელი რიცხვი = " $integer ) elimS #ფუნქციის გამოძახება პარამეტრების განსაზღვრების გარეშე, პარამეტრები მიიღებენ ნაგულისხმევ მნიშვნელობას $string = "სატესტო სტრიქონი" $integer = 911 elimS $string $integer #აი როგორ გამოვიძახოთ ფუნქცია სწორად - ჩვენ გამოვყოფთ პარამეტრებს შორისით elimS -integer $integer - string $string #this ასევე სწორია $global:var1 = "test" არის გლობალური ცვლადი, ასე რომ თქვენ შეგიძლიათ გადასცეთ ცვლადების მნიშვნელობა ფუნქციებიდან.

მეტი იმის შესახებ, თუ როგორ უნდა გადასცეთ რამდენიმე პარამეტრი ფუნქციას:

დაისვენე

get-host #show powershell version Clear-RecycleBin c: -Force #empty trash Compress-Archive -Path C:\test\* -DestinationPath C:\archive\test1.zip #zip საქაღალდე Expand-Archive -Path C:\temp \test1.zip "C:\test\New folder\" #unpack archive (Get-CimInstance Win32_operatingSystem).lastbootuptime #show system boot time write-host $sleep_array.GetType().FullName #show ცვლადის ტიპის შეცვლა ($a) ( #შემთხვევა - მრავალჯერადი, თუ 1 ($b = $b+10 ) 2 ($b = $b+20 ) 3 ($b = $b+30 ) 4 ($b = $b+40 ) ნაგულისხმევი ($b = $b+50) ) Get-Content -გზა "C:\scripts\test.txt" -მოიცადეთ #similar to tail linux-ში

powershell cmdlets

სორტირება-ობიექტი- ახარისხებს ობიექტებს აღმავალი ან კლებადობით, ობიექტის თვისებების მნიშვნელობების მიხედვით. თქვენ შეგიძლიათ დააყენოთ ერთი თვისება ან რამდენიმე თვისება (დახარისხება რამდენიმე კლავიშის მიხედვით) და შეგიძლიათ აირჩიოთ რეგისტრის მგრძნობიარე ან რეგისტრის მგრძნობიარე დახარისხება. თქვენ ასევე შეგიძლიათ აჩვენოთ Sort-Object cmdlet მხოლოდ ობიექტების უნიკალური მნიშვნელობებით კონკრეტული თვისებისთვის.

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

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

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

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

powershell cmdlet პარამეტრები

-ErrorAction- პარამეტრი არის ყველა cmdlet-ში, საშუალებას გაძლევთ დააყენოთ მოქმედება, რომელიც უნდა შესრულდეს შეცდომის დადგომისას:

  • გაგრძელება - აჩვენეთ შეცდომის შეტყობინება და გააგრძელეთ შესრულება
  • SilentlyContinue - უგულებელყოთ შეცდომა და გააგრძელეთ
  • Stop - შეაჩერე შესრულება პირველი შეცდომის დროს
  • გამოკითხვა - როდესაც შეცდომა წარმოიქმნება, მოითხოვეთ რა უნდა გააკეთოთ შემდეგ

მაგალითი: Copy-Item "d:\test1\klbackup*" "d:\test2\" -ErrorAction stop

-Რა იქნება თუ- აჩვენებს შეტყობინებას, რომელიც აღწერს ბრძანების შედეგს მისი რეალურად შესრულების გარეშე. წარმოდგენილია ყველა cmdlet-ში.

მიიღეთ დახმარება about_CommonParameters- პარამეტრების აღწერა, რომლებიც შეიძლება გამოყენებულ იქნას ნებისმიერი cmdlet-ით.

SSH Powershell-ის საშუალებით

მაგალითი იმისა, თუ როგორ შეგიძლიათ იმუშაოთ SSH-ის საშუალებით:

#დააინსტალირეთ SSH მოდული, ერთხელ Find-Module Posh-SSH | Install-Module #Create an SSH სესია: Import-Module Posh-SSH $ComputerName = "1.2.3.4" $UserName = "ubuntu" $KeyFile = "C:\SSH\key.pem" $nopasswd = ახალი ობიექტის სისტემა. უსაფრთხოება .SecureString $Crendtial = New-Object System.Management.Automation.PSCredential ($UserName, $nopasswd) $SSHSession = New-SSHSession -ComputerName $ComputerName -Credential $Crendtial -KeyFile $SKeyFill-ის ხელახლა შენახვა: SSHSession | New-SSHShellStream # გაგზავნის ბრძანება $SSH.WriteLine("ifconfig") # პასუხის წაკითხვა $SSH.read() #სესიის დახურვა: $sshSession | Remove-SSHSession

გუნდები:

  • Get-SSHTrustedHost - სანდო ჰოსტების ნახვა
  • Get-SSHSession - ნახეთ ღია სესიების სია
  • Remove-SSHSession - სესიის დახურვა

Შენიშვნა.თქვენ შეგიძლიათ გამოიყენოთ ეს მოდული WMF 5.0 ინსტალაციის გარეშე. PS 4.0 და 3.0 მოდულის წინასწარი გადახედვა ხელმისაწვდომია ცალ-ცალკე - 2016 წლის მარტი, ხოლო უახლესი მოდულისთვის მოძებნეთ PackageManagement PowerShell Modules Preview-ის ჩამოტვირთვის ცენტრი.

პროგრამების ინსტალაცია

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

#ინტერნეტიდან ხელმოწერილი პაკეტების ინსტალაციის დაშვება Set-ExecutionPolicy RemoteSigned #Set Chocolatey პროვაიდერი Get-PackageProvider –Name Chocolatey -ForceBootstrap #Make Chocolatey trusted Set-PackageSource -Name Chocolatey -Trusted #Install-Pavlzi-ფაილების წვდომა. , sysinternals -Verbose -Force -ProviderName chocolatey #დაამატე გზა შესრულებად ფაილებს (sysinternals) PATH setx PATH "$env:path;C:\Chocolatey\bin" -m

პროვაიდერი ჩამოტვირთავს C:\Chocolatey\lib პაკეტს chocolateyInstall.ps1 სკრიპტის საფუძველზე. ის ჩამოტვირთავს პროგრამის ინსტალერს ოფიციალური საიტიდან %temp%\Chocolatey საქაღალდეში და გაუშვებს ჩუმად ინსტალაციის რეჟიმში. უმარტივესი მაგალითია Notepad++.

Install-ChocolateyPackage "notepadplusplus" "exe" "/S" "https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe"

პროგრამის ძებნა

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

Find-Package "*zip*","*commander*" -ProviderName Chocolatey

ინსტალერის ტიპები და ჩუმი ინსტალაციის გასაღებები

  • Windows AutoInstall Site და Software AutoInstall Forum
  • Windows-ის განახლებების ინსტალაცია Powershell-ის საშუალებით

    • ჩამოტვირთეთ Windows Update PowerShell მოდული Microsoft-ის ვებსაიტიდან.
    • გახსენით არქივი საქაღალდეში %WINDIR%\System32\WindowsPowerShell\v1.0\Modules
    • თუ ჯერ არ გაქვთ ნებადართული ადგილობრივი სკრიპტების გაშვება, მოდით გავაკეთოთ ეს: "Set-ExecutionPolicy RemoteSigned".
      • შეგიძლიათ შეამოწმოთ "Get-ExecutionPolicy" ბრძანებით: ის უნდა იყოს "RemoteSigned" ნაცვლად "შეზღუდული".
    • გადმოწერილი მოდულის იმპორტი ბრძანებით: "იმპორტი-მოდული PSWindowsUpdate"
    • მზადაა. ახლა შეგიძლიათ გამოიყენოთ ბრძანებები:
      • იხილეთ ხელმისაწვდომი განახლებების სია: Get-WUIinstall -ListOnly
      • დააინსტალირეთ ყველა განახლება დადასტურების მოთხოვნის გარეშე: Get-WUIinstall -AcceptAll
      • დააინსტალირეთ ყველა განახლება დადასტურების მოთხოვნის გარეშე და გადატვირთეთ გადატვირთვა: Get-WUIinstall -AcceptAll -IgnoreReboot
      • დააინსტალირეთ გარკვეული განახლებები მათი ნომრის გათვალისწინებით:"Get-WUIinstall -KBArticleID KB3066441, KB3078676 -AcceptAll -IgnoreReboot" - ახლა თქვენ არ გჭირდებათ Microsoft-ის საიტზე წასვლა და მათი ხელით ჩამოტვირთვა
      • მოდულის დეტალური დახმარება: მიიღეთ-დახმარება Get-WUIinstall -დეტალურად
      • იხილეთ ხელმისაწვდომი განახლებების სია, გარდა კატეგორიის "ენის პაკეტები", "Skype" სათაურები და KB3012973 განახლება: Get-WUIinstall -NotCategory "Language Packs" -NotTitle Skype -NotKBArticleID KB3012973 -ListOnly
      • დააინსტალირეთ განახლებები კატეგორიის "ენების პაკეტების", "Skype" სათაურების გარდა და განაახლეთ KB3012973: Get-WUIinstall -NotTitle Skype -NotTitle Skype -NotKBArticleID KB3012973 -AcceptAll -IgnoreReboot

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

    ასე რომ, პირველ რიგში, ჩვენ ხელთ მივიღებთ მინიმუმ PowerShell 2.0-ს (ფაქტობრივად, ამ ნაბიჯის გამოტოვება შესაძლებელია ყველაფერში, რაც ქვემოთ არის აღწერილი cmd-ში, მაგრამ მე დავიწყე ამით). ეს შეიძლება გაკეთდეს ორი გზით: sconfig.cmd უტილიტის გაშვებით ბრძანების ხაზზე ან DISM-ის საშუალებით ( განლაგების გამოსახულების სერვისი და მართვა) იქ. პირველი გვთავაზობს ფსევდოგრაფიკულ ინტერფეისს, სადაც მე-4 პუნქტში ვიპოვით შესაძლებლობას დავაყენოთ PS 2.0.

    DISM-ის საშუალებით ეს კეთდება შემდეგნაირად:
    dism.exe /ონლაინ /enable-feature:MicrosoftWindowsPowerShell

    PS-ის ინსტალაციის, გადატვირთვისა და ოდნავ უფრო ადეკვატური ხელსაწყოს ხელმისაწვდომობის შემდეგ, შევეცდებით მის განახლებას მიმდინარე ვერსიაზე. ამ წერის დროს, ეს არის ვერსია 4.0 ან წინასწარი ვერსია 5.0. ჩემთვის ვერსია 3.0 არის მინიმალური გამოსაყენებელი ვერსია, რომელსაც უკვე აქვს მრავალი cmdlet სერვერის როლებისა და რესურსების მართვისთვის, რომლებიც არ არის მეორე ვერსიაში. Windows PowerShell 3.0 მოითხოვს .Net Framework 4.0 ან უფრო ახალი სისტემის დაინსტალირებას.
    თუ ახლა ვცდილობთ დავაინსტალიროთ .Net 4.0, აღმოვაჩენთ, რომ ამისთვის გვჭირდება უკვე დაინსტალირებული .Net 2.0, რომელიც რატომღაც აკლია Server Core გამოცემას. სასაცილოა, მაგრამ ჩვევის გამო, ინსტალერის გადმოტვირთვა და მისი გაშვება, ჩვენ უარს მივიღებთ ინსტალაციაზე და შევამჩნევთ, რომ უნდა გამოვიყენოთ dism.exe. >_< OK, dism, так dism. Уставливается по аналогии с PS:
    dism.exe /ონლაინ /enable-feature:NetFx2-ServerCore
    dism.exe /ონლაინ /enable-feature:NetFx2-ServerCore-WOW64

    შემდეგი ნაბიჯი არის .Net Framework-ის განახლება უახლეს ვერსიამდე. თუ გსურთ გამოიყენოთ Powershell 3.0, დააინსტალირეთ .Net 4.0, ხოლო თუ გსურთ უახლესი ვერსია, გჭირდებათ .Net 4.5.1 და უფრო მაღალი. არჩევანი შენია, ინსტალაცია ძალიან მარტივია. დაჭერა შეიძლება იყოს მხოლოდ საინსტალაციო პაკეტის მიღებაში - ქსელის დისკი დავუკავშირე სერვერს, რომელზეც ავტვირთე ყველა საინსტალაციო ფაილი; შეგიძლიათ გამოიყენოთ თქვენთვის მოსახერხებელი ნებისმიერი საშუალება.

    ასე რომ, ჩვენ მოვამზადეთ საფუძველი PS ვერსიის 3.0 და უფრო მაღალი ინსტალაციისთვის. შემდეგი ნაბიჯი არის Windows Management Framework ინსტალერის ჩამოტვირთვა და ინსტალაცია. ჩამოტვირთეთ და გაუშვით KB2819745 ჩვენ გვჭირდება არქიტექტურა:

    ტრადიციულად, ინსტალაციის შემდეგ, ჩვენ გვჭირდება გადატვირთვა, ამის შემდეგ, ჩვენს განკარგულებაში გვექნება PowerShell 4.0.

    სხვათა შორის, იმისათვის, რომ შეძლოთ Add-WindowsFeature cmdlet-ის გამოყენება (დაარქვეს Install-WindowsFeature Windows Server 2012-ში) სერვერის როლების კონფიგურაციისთვის, თქვენ უნდა დააინსტალიროთ სერვერის მენეჯერის კომპონენტები იმავე DISM.EXE-ის მეშვეობით. ეს ასე გამოიყურება:
    dism.exe /online /enable-feature:ServerManager-PSH-Cmdlet s
    ზოგადად, მე ძალიან გაფუჭებული ვარ PS-ის უახლესი ვერსიებით, tk. მე ეს ავიღე მესამე ვერსიის გამოსვლის შემდეგ, მაგრამ როგორც აღმოჩნდა, dism.exe ასევე შეიძლება შემოიფარგლოს როლების დაყენებით. და თუ არ იცით თქვენთვის საჭირო ფუნქციის სახელი, მაშინ ყოველთვის შეგიძლიათ იხილოთ ყველა არსებული ვარიანტი და მათი სტატუსი პარამეტრის /get-features საშუალებით. მაგრამ რაც შემეხება, Get-WindowsFeature ბევრად უფრო ინფორმატიულია. =)
    dism.exe /online /get-features vs. Get-WindowsFeature