• Nainstalujte a importujte modul Active Directory pro PowerShell. Windows PowerShell – užitečné poznámky Převod datových typů

    0
    Použitelné pro:
    Office 365 pro profesionály a malé firmy, Office 365 pro podniky, Live@edu
    Windows XP, Windows Vista, Windows Server 2003, Windows 7 a Windows Server 2008

    Než začnete používat prostředí Windows PowerShell, měli byste se ujistit, že jsou v počítači nainstalovány a nakonfigurovány správné verze prostředí Windows PowerShell a Windows Remote Management (WinRM). Musíte použít rozhraní Windows Management Framework, které zahrnuje správné verze prostředí Windows PowerShell v2 a WinRM 2.0.

    Pokud váš počítač používá Windows 7 nebo Windows Server 2008 R2, nemusíte nic instalovat. Windows Management Framework je již nainstalován.

    Windows Management Framework si můžete stáhnout a nainstalovat, pokud váš počítač používá jeden z následujících operačních systémů:

      Windows Vista SP1 nebo SP2;

      Windows Server 2008 SP1 nebo SP2;

      Windows Server 2003 SP2;

      Windows XP s aktualizací Service Pack 3 (SP3).

    Začněme:

    1. Odeberte z počítače předchozí verze prostředí Windows PowerShell

    Před instalací rozhraní Windows Management Framework musíte odinstalovat všechny stávající verze prostředí Windows PowerShell.

    1.1 Odebrání prostředí Windows PowerShell ze systému Windows Vista

      Ve skupině Programy v Ovládacích panelech otevřete Programy a funkce a odinstalujte všechny instance prostředí Windows PowerShell, které jsou v seznamu nainstalovaných programů. Například verze CTP prostředí Windows PowerShell v2 se může jevit jako „Windows PowerShell(TM) V2“.

      V části Úlohy vyberte Zobrazit nainstalované aktualizace a odeberte všechny instance prostředí Windows PowerShell, které jsou v seznamu nainstalovaných aktualizací. Například Windows PowerShell V1 se může objevit jako aktualizace systému Windows s jedním z následujících čísel článků znalostní báze Microsoft Knowledge Base:

    1.2 Odebrání prostředí Windows PowerShell ze systému Windows Server 2008

      Spusťte Správce serveru a otevřete sekci Komponenty.

      1. Vyberte "Odebrat funkce".

        Vyberte Windows PowerShell a postupujte podle pokynů k odebrání.

      V Ovládacích panelech v části Programy otevřete Programy a funkce a odinstalujte všechny instance prostředí Windows PowerShell, které jsou v seznamu nainstalovaných programů.

      Ve skupině "Úkoly" vyberte položku "Zobrazit nainstalované aktualizace". Odeberte všechny instance prostředí Windows PowerShell, které jsou v seznamu nainstalovaných aktualizací.

    1.3 Odebrání prostředí Windows PowerShell ze systému Windows Server 2003 nebo Windows XP

      Otevřete Přidat nebo odebrat programy v Ovládacích panelech a odeberte všechny instance prostředí Windows PowerShell, které jsou v seznamu nainstalovaných programů.

      V části Přidat nebo odebrat programy vyberte Zobrazit aktualizace. Odeberte všechny instance prostředí Windows PowerShell, které jsou v seznamu nainstalovaných aktualizací. Například prostředí Windows PowerShell V1 se může objevit jako aktualizace systému Windows s následujícím číslem článku znalostní báze Microsoft Knowledge Base: KB926139.

    2. Odebrání předchozích verzí WinRM z vašeho počítače

    Před instalací Windows Management Framework musíte odinstalovat všechny existující verze WinRM.

    2.1 Odebrání WinRM ze systému Windows Vista nebo Windows Server 2008

      Ve skupině Programy v Ovládacích panelech otevřete Programy a funkce a odinstalujte všechny instance Windows Remote Control, které jsou v seznamu nainstalovaných programů.

      Ve skupině "Úkoly" vyberte položku "Zobrazit nainstalované aktualizace". Odeberte všechny instance služby Windows Remote Management, které jsou v seznamu nainstalovaných aktualizací. Například CTP verze WinRM 2.0 se může jevit jako "WindowsRemoteManagement" s jedním z následujících čísel článků znalostní báze Microsoft Knowledge Base:

    2.2 Odebrání prostředí Windows PowerShell ze systému Windows Server 2003 nebo Windows XP

      Otevřete Přidat nebo odebrat programy v Ovládacích panelech a odeberte všechny instance Windows Remote Control, které jsou v seznamu nainstalovaných programů.

      V části Přidat nebo odebrat programy vyberte Zobrazit aktualizace. Odeberte všechny instance služby Windows Remote Management, které jsou v seznamu nainstalovaných aktualizací. WinRM se například může objevit jako aktualizace systému Windows s následujícím číslem článku znalostní báze Microsoft Knowledge Base: KB936059.

    3. Nainstalujte rozhraní Windows Management Framework

      Stáhněte a nainstalujte Windows Management Framework. Vyberte balíček, který obsahuje Windows PowerShell v2 a WinRM 2.0, který je vhodný pro váš operační systém, architekturu systému a jazyk.

      Po instalaci WinRM a Windows PowerShell nakonfigurujte software tak, aby fungoval správně, jak je popsáno v následujících krocích.

    Poznámka

    4. Ověřte, že skripty lze spouštět v prostředí Windows PowerShell

      Postupně vyberte „Start“, „Všechny programy“, „Příslušenství“, Windows PowerShell.

      Chcete-li otevřít prostředí Windows PowerShell, proveďte jednu z následujících akcí:

      • Pokud používáte Windows Vista, Windows 7 nebo Windows Server 2008 R2, klikněte pravým tlačítkem na Windows PowerShell a vyberte Spustit jako správce. Když se zobrazí výzva Řízení uživatelských účtů s výzvou k pokračování, klikněte na Pokračovat.

        Pokud používáte Windows XP nebo Windows Server 2003, klikněte na Windows PowerShell.

      Spusťte následující příkaz:

      Get-ExecutionPolicy

      Pokud vrácená hodnota není RemoteSigned, musíte změnit hodnotu na RemoteSigned.

      Poznámka

      Pokud je zásada provádění skriptů nastavena na RemoteSigned, lze spouštět pouze skripty vytvořené v počítači uživatele nebo podepsané důvěryhodným zdrojem.

    Příprava na spouštění skriptů v prostředí Windows PowerShell

    V relaci prostředí Windows PowerShell otevřené jako správce spusťte následující příkaz:

    Set-ExecutionPolicy RemoteSigned

    5. Kontrola, zda má WinRM oprávnění k připojení k prostředí Windows PowerShell

      Postupně vyberte „Start“, „Všechny programy“, „Příslušenství“.

      Příkazový řádek otevřete jedním z následujících způsobů:

      • Pokud používáte systém Windows Vista, Windows 7 nebo Windows Server 2008 R2, klepněte pravým tlačítkem na Příkazový řádek a vyberte Spustit jako správce. Když se zobrazí výzva Řízení uživatelských účtů s výzvou k pokračování, klikněte na Pokračovat.

        Pokud používáte Windows XP nebo Windows Server 2003, vyberte Příkazový řádek.

      Na příkazovém řádku spusťte následující příkaz:

      winrm získat winrm/config/client/auth

      Poznámka

      Pokud je služba WinRM již spuštěna, nemusíte ji spouštět. Stav služby WinRM můžete zkontrolovat spuštěním příkazu sc query winrm.

    Ve výsledcích hledejte hodnotu Basic = . Pokud je zadána hodnota Basic = false, musí být změněna na Basic = true.

    Poznámka

      Pokud je spuštěna služba WinRM a nepotřebujete měnit základní hodnotu, spusťte net stop winrm a službu WinRM zastavte.

    Povolení podpory základního ověřování ve WinRM

      V okně příkazového řádku otevřeného jako správce spusťte následující příkazy: Hodnota ve složených závorkách ( ) rozlišuje velká a malá písmena:

      winrm set winrm/config/client/auth @(Basic="true")

      Zkontrolujte, zda je ve výstupu příkazu Basic=true.

      Poznámka

      Pokud je služba WinRM spuštěna, zastavte ji spuštěním net stop winrm.

    Další akce.

    Dnes vám ukážu, jak nainstalovat a používat modul pro správu Active Directory pro Windows PowerShell. Rutiny v tomto modulu lze použít k získávání informací a správě různých objektů a nastavení AD. Tento modul je instalován v serverových operačních systémech jako samostatná komponenta. Na desktopových operačních systémech (Windows 10, 8.1, 7) budete muset nainstalovat balíček Remote Server Administration Tools (RSAT), který obsahuje modul pro interakci s AD z PowerShellu. Kromě tohoto modulu RSAT obsahuje všechny potřebné moduly snap-in pro grafickou správu, nástroje příkazového řádku a moduly Windows PowerShell pro správu Windows a AD. Tento balíček pro vaši verzi operačního systému si musíte stáhnout sami z webu společnosti Microsoft.

    Instalace modulu Active Directory pro Windows PowerShell

    Modul Active Directory pro Windows PowerShell se poprvé objevil v systému Windows Server 2008 R2. Automaticky se nainstaluje na . Chcete-li používat rutiny PowerShell z modulu AD, musí mít vaše doména alespoň jeden řadič se systémem Windows Server 2008 R2 nebo vyšším. Pokud má vaše síť pouze řadiče domény se systémem Windows Server 2003 a 2008, musíte si stáhnout a nainstalovat službu Active Directory Management Gateway Service. Rutiny PowerShellu z modulu Active Directory spolupracují s webovou službou, která je součástí řadiče domény s rolí ADDS.

    Modul Active Directory pro Windows PowerShell můžete nainstalovat nejen na řadič domény, ale také na jakýkoli členský doménový server nebo pracovní stanici. V systému Windows Server 2016 můžete nainstalovat modul Active Directory pro Windows PowerShell z grafické konzoly Správce serveru pomocí Průvodce přidáním rolí a funkcí. Stačí spustit průvodce a ve fázi výběru komponent musíte vybrat Nástroje pro správu vzdáleného serveru -> Nástroje pro správu rolí -> Nástroje AD DS a AD LDS -> Modul Active Directory pro Windows PowerShell(Nástroje pro správu vzdáleného serveru > Nástroje pro správu rolí > Nástroje AD DS a AD LDS -> Modul Active Directory pro Windows PowerShell).

    Tento modul lze také nainstalovat pomocí PowerShell. Otevřete konzolu PowerShell s právy správce a spusťte příkazy:

    Import-Modul ServerManager
    Add-WindowsFeature –Název „RSAT-AD-PowerShell“ –IncludeAllSubFeature

    Ve Windows 10, Windows 8.1 a Windows 10 je pro instalaci modulu RSAT-AD-PowerShell nutné nejprve nainstalovat příslušnou verzi RSAT, poté je nutné modul povolit v Ovládacích panelech (Ovládací panely -> Programy -> Programy a Funkce a klikněte na „Zapnout funkce Windows“ -> Nástroje pro vzdálenou správu serveru -> Nástroje pro správu rolí -> Nástroje AD DS a AD LDS -> povolte komponentu Active Directory Module pro Windows POwerShell.

    Nebo můžete modul nainstalovat pomocí PowerShell:

    Enable-WindowsVolitelnáFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

    Importujte a používejte modul PowerShell pro Active Directory

    Chcete-li v systémech Windows 7 a Windows Server 2008 R2, na kterých je nainstalován PowerShell 2.0, používat modul AD, musíte jej importovat do relace PowerShellu pomocí příkazu:

    Případně můžete exportovat modul ze vzdáleného počítače, kde je již nainstalován, a importovat jej do relace PowerShellu:

    $MySession = New-PSSession -ComputerName MyDomainController
    Export-PSsession -Session $MySession -Modul ActiveDirectory -OutputModule RemoteADPosh
    Remove-PSSession -Session $MySession
    Import-modul RemoteADPosh

    Ve Windows Server 2012 R2/2016 a Windows 8.1/Windows 10 se modul (pokud je nainstalován) importuje do relace automaticky.

    Pokud je počítač připojen k doméně, ve výchozím nastavení je jednotka vytvořena podle názvu INZERÁT:..Na tuto jednotku můžete přejít pomocí příkazu CD a použít obvyklé příkazy systému souborů k navigaci na této jednotce. Cesty jsou prezentovány ve formátu X500.

    PS C:\> cd AD:
    PS AD:\> dir

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

    Seznam dostupných rutin modulů pro práci se službou Active Directory můžete zobrazit takto:

    Get-Command - Modul ActiveDirectory

    Různé verze systému Windows mají k dispozici různé počty rutin:

    • Windows Server 2008 R2 – 76 cmdletů.
    • Windows Server 2012 – 135 cmdletů
    • Windows Server 2012 R2 / 2016 – 147 rutin.

    Nyní tedy můžete ke správě AD používat rutiny PowerShellu. Na našem webu se můžete seznámit s používáním následujících cmdletů z modulu AD pro PowerShell: , .

    Od uvedení finálního vydání nejnovějšího operačního systému od Microsoftu již uplynul nějaký ten pátek a již se s ním seznámili nejen nadšenci testující středně pokročilé sestavení, ale i ti uživatelé, kteří si stáhli dlouho očekávanou aktualizaci. Je nový systém dobrý nebo ne? Je to nejnovější inovativní produkt nebo jen „osmička“, která měla vyjít včas? To jsou otázky, na které nelze v žádném případě definitivně odpovědět. Kromě samozřejmých novinek, mezi které patří nová nabídka Start, prohlížeč Microsoft Edge, kompatibilita s Xboxem, vyhledávání a zobrazení úkolů integrované s Cortanou, je tu řada novinek, o kterých ne každý uživatel Windows 10 ví.

    A jednou z těchto novinek je možnost instalovat softwarové produkty přímo pomocí prostředí Windows PowerShell, o čemž bude řeč dále v tomto článku. Navzdory skutečnosti, že se tato funkce objevila již v dubnu 2014 spolu s vydáním Windows Management Framework 5.0 Preview, mohla se stát nativní až s konečným vydáním „desítky“. Pojďme se tedy podívat, který modul je zodpovědný za tuto funkci a jak můžete nainstalovat softwarové produkty bez stahování instalačních souborů.

    Modul Windows PowerShell OneGet

    S vydáním Windows Management Framework 5.0 Preview má nyní Windows PowerShell několik nových funkcí navržených tak, aby usnadnily správu počítačů. Tyto funkce zahrnují dvě zajímavé technologie, a to: Windows PowerShell Desired State Configuration a Certified for Windows Network Switches.

    V případě technologie Certified for Windows Network Switches byla přidána řada rutin prostředí Windows PowerShell, které jsou zodpovědné za správu síťových přepínačů certifikovaných pro Windows. To znamená, že existuje 19 nových rutin, které můžete najít spuštěním příkazu „Get-Command *-NetworkSwitch*“ v PowerShellu. Vzhledem k tomu, že technologie je poměrně vážná a zaslouží si zvláštní pozornost, omezím se v tomto článku pouze na krátký popis a nebudu se touto technologií podrobněji zabývat.

    U druhé technologie bychom se ale měli pozastavit podrobněji. Pokud si nainstalujete Windows Management Framework 5 nebo operační systém Windows 10, můžete použít nástroj, který výrazně usnadní hledání a instalaci softwaru do vašich počítačů. OneGet je takový nástroj. OneGet je agregátor pro správu balíčků, tedy modul, který využívá speciální úložiště k poskytování jednotného rozhraní pro zjišťování, instalaci a inventarizaci softwaru. Jinými slovy, tato technologie na jedné straně poskytuje sadu rutin, které umožňují koncovému uživateli spravovat instalační balíčky (o kterých si povíme trochu níže), a na druhé straně poskytuje rozhraní pro psaní vendor balíčky.

    Než začneme rozumět samotnému modulu, měli byste věnovat pozornost několika definicím, které úzce souvisejí s touto technologií, a to:

    • Igelitová taška. Stručně řečeno, balíček je program, který je zkompilován a nainstalován z konkrétního zdroje pomocí jakéhokoli dostupného systému správy balíčků. Balíček obvykle poskytuje zkompilovaný kód s dalšími metainformacemi, které mohou zahrnovat popis balíčku, jeho verzi nebo „závislosti“. Systém správy balíčků, například pro automatickou aktualizaci softwarového produktu na novou verzi, aby se zajistilo, že jsou nainstalovány všechny závislosti balíčků, musí zpracovat takové metainformace a v případě potřeby musí automaticky nainstalovat všechny chybějící balíčky;
    • Úložiště. Podle Wikipedie jsou úložiště místa, kde se ukládají a uchovávají data. Nejčastěji jsou data v úložišti uložena ve formě souborů, které jsou k dispozici pro další distribuci po síti. Repozitáře byly původně používány linuxovými systémy, aby umožňovaly instalaci balíčků potřebných ke spuštění systému z jiných míst. Většina úložišť je zdarma, ale některé společnosti poskytují přístup ke svým vlastním úložištím za placené předplatné. O úložištích OneGet si povíme trochu níže;
    • Správce balíčků. Jedná se o sadu softwarových nástrojů odpovědných za automatizaci procesu instalace, aktualizace, konfigurace a odinstalace softwarových balíků. Balíčky obvykle obsahují databázi, která specifikuje softwarové předpoklady a závislosti, a také informace o verzi produktu, aby se zabránilo použití poškozeného softwaru. Mezi správce balíčků patří Linux apt-get nebo NuGet, které se později objevily na systémech Windows. OnetGet je zase logickým rozšířením NuGet, fungující jako agregátor pro všechny dostupné správce balíčků, nazývané poskytovatelé.

    Společnost Microsoft zpočátku omezuje použití většiny dostupných poskytovatelů poskytnutím základní sady, která vám umožní vyhledat a nainstalovat další poskytovatele pro správu softwaru. Mezi základní dodavatele patří:

    • Bootstrap– dodavatel, který vám umožní objevit další dodavatele;
    • MSI– poskytovatel určený ke zpracování souborů MSI;
    • M.S.U.– dodavatel odpovědný za zpracování aktualizačních souborů společnosti Microsoft;
    • ARP(Přidat/Odebrat programy) – dodavatel odpovědný za inventární data o jakémkoli softwarovém produktu, který je registrován v komponentě systému „Odebrat nebo změnit program“;
    • PowerShellGet– Poskytovatel, který vám umožňuje spravovat různé moduly PowerShellu.

    Kompletní seznam poskytovatelů OneGet s jejich stručným popisem naleznete na následujícím odkazu.

    Samotný modul OneGet obsahuje 10 rutin prostředí Windows PowerShell, z nichž většina bude probrána v další části tohoto článku. Tyto rutiny zahrnují:

    • Find-Package – vyhledávání balíčků;
    • Get-Package – vrátí seznam všech balíčků nainstalovaných v počítači;
    • Get-PackageProvider – vrátí seznam poskytovatelů, kteří jsou připojeni k OneGet na tomto počítači;
    • Get-PackageSource – vrací seznam zdrojů balíčků, které jsou registrovány pro konkrétního poskytovatele balíčků;
    • Install-Package – umožňuje nainstalovat jeden nebo více softwarových produktů;
    • Register-PackageSource – přidání zdroje balíčku pro zadaného poskytovatele balíčku;
    • Save-Package – umožňuje uložit balíček na váš lokální počítač bez následné instalace;
    • Set-PackageSource – změna zdroje balíčku pro zadaného poskytovatele balíčku;
    • Uninstall-Package – odstranění jednoho nebo více softwarových balíčků;
    • Unregister-PackageSource – odstraní registrovaný zdroj balíčku.
      • Instalace softwaru pomocí OneGet

        Nyní nastal čas pro samotný proces instalace softwaru. Dále uvidíte, jak můžete nainstalovat poskytovatele balíčků, najít požadovaný software, nainstalovat jej a také jak odstranit nepotřebnou aplikaci a stáhnout instalační balíček softwarového produktu do svého počítače. Začněme popořadě.

        Instalace poskytovatele balíčku Chocolatey

    1. Otevřete Windows PowerShell a spusťte příkaz k zobrazení seznamu zdrojů balíčků, které jsou registrovány u OneGet na vašem místním počítači. Get-PackageSource. Všimněte si, že pokud v příkazu zadáte konkrétního dodavatele balíčku, rutina Get-PackageSource vám zobrazí pouze zdroje, které jsou přidruženy k zadanému dodavateli. V opačném případě příkaz vrátí všechny zdroje balíčků, které jsou registrovány u OneGet. Vzhledem k tomu, že potřebujeme zobrazit zdroje balíčků pro všechny poskytovatele, bude příkaz proveden bez dalších parametrů. Nezapomeňte, že v této fázi máte dalšího poskytovatele balíčků, který bude použit k instalaci softwarových produktů, které ještě nebyly nainstalovány. Výstup příkazu můžete vidět na následujícím obrázku:

    2. Jak můžete vidět na předchozím obrázku, poskytovatel Chocolatey není nainstalován na našem místním počítači. Proto je potřeba toto napravit. Všimněte si, že pro přidání poskytovatele balíčku musí být ExecutionPolicy PowerShellu nastavena na Neomezený. V opačném případě nebudete moci přidat dodavatele. Dovolte mi připomenout, že cmdlet Get-ExecutionPolicy Umožňuje zobrazit zásady provádění pro aktuální relaci. Zásady provádění jsou součástí zásad zabezpečení prostředí Windows PowerShell, které určují, zda lze načítat konfigurační soubory a spouštět skripty a které skripty vyžadují ke spuštění digitální podpis. Výchozí hodnota je " Omezený"(nenačte konfigurační soubory a nespouští skripty), takže pokud jste nezměnili hodnotu zásady provádění, spusťte příkaz Set-Executionpolicy Unrestricted. Protože výchozí rozsah zásad provádění je LocalMachine, takže nastavení zásad platí pouze pro aktuálního uživatele, můžete také přidat parametr do příkazu, který použijete -Rozsah se smyslem Současný uživatel. Výstup těchto dvou příkazů je vidět na následujícím obrázku:

    3. V tomto okamžiku můžeme vidět seznam dodavatelů, kteří jsou registrováni u OneGet na aktuálním počítači. K tomu můžete použít rutinu Get-PackageProvider. Tato rutina, jak jsem zmínil výše, vrací seznam poskytovatelů balíčků, kteří jsou již připojeni k OneGet. Volitelně můžete filtrovat výsledky na základě celého nebo části jednoho z názvů dodavatelů. Chcete-li například zjistit, kteří poskytovatelé jsou aktuálně připojeni, spusťte rutinu Get-PackageProvider bez dalších parametrů. Jak můžete vidět na následujícím obrázku, zpočátku jsem měl k počítači připojené 4 z těchto poskytovatelů, o kterých jsem vám již dnes řekl. Nyní k instalaci poskytovatele Chocolatey na váš počítač musíte spustit příkaz Get-PackageProvider –Name Chocolatey –ForceBootstrap, kde parametr –ForceBootstrap je zodpovědný za automatickou instalaci poskytovatele. Všimněte si, že obvykle, když nainstalujete poskytovatele Chocolatey, musí být nainstalován také poskytovatel NuGet. Jak můžete vidět na následujícím obrázku, po opětovném použití rutiny Get-PackageProvider, dodavatel, kterého nainstalujeme, by se již měl objevit v seznamu:

    Nyní můžeme vygenerovat úplný seznam všech balíčků dostupných u poskytovatelů a přenést jej do rutiny Export-CliXML vytvořit XML reprezentaci objektů a uložit je do XML souboru. Vezměte prosím na vědomí, že seznam, který exportujete, se bude neustále měnit a postupem času bude do repozitářů, které používáte, přibývat další a další balíčky. V souladu s tím nezapomeňte čas od času nahradit soubor, který exportujete. Chcete-li exportovat seznam balíčků a uložit tento seznam do složky C:\TestPosh, musíte spustit následující příkaz: Najít balíček | Export-CliXML C:\TestPosh\Test.xml

    Vezměte prosím na vědomí, že postup exportu vám určitě nějakou dobu zabere. Po dokončení provádění příkazu a vytvoření souboru XML na vašem počítači jej importujte a pro snazší zobrazení použijte kanál a příkaz GridView, který je zodpovědný za zobrazení výsledků provádění příkazů v okně ve formě interaktivní tabulky, můžete vidět, které balíčky budou k dispozici pro instalaci. Tento seznam balíků můžete samozřejmě otevřít pomocí jakékoli aplikace, která je schopna zpracovávat soubory XML, například pomocí aplikace Excel. Tento příkaz, jak můžete vidět na následujícím obrázku, vypadá takto: Import-CliXML C:\TestPosh\Test.xml | Out-GridView

    Protože je poskytovatel již nainstalován, můžete přejít k další části tohoto postupu, a to

    Instalace softwaru pomocí PowerShellu

    Před instalací softwarových produktů bychom se měli podívat na to, co je již v počítači nainstalováno. K provedení tohoto úkolu můžete použít rutinu Get-Package, která vrátí seznam všech softwarových balíčků nainstalovaných na místním počítači, buď prostřednictvím OneGet nebo jiných nástrojů pro instalaci aplikací. Volitelně můžete také spustit rutinu Get-Package a na vzdálených počítačích spuštěním jako součást příkazu Invoke-Command, příkazu Enter-PSSession nebo skriptu.

    Pokud chcete získat informace o konkrétním softwaru, například o nainstalovaných produktech Microsoft Office 2013, můžete spolu s touto rutinou použít parametr –Name s příslušnou hodnotou, např. Get-Package - Name "office 2013". Výstup této rutiny je viditelný níže:

    Před instalací softwaru se pokusme rozhodnout, co potřebujeme nainstalovat. Protože je na stroji nainstalován pouze Office 2013 a několik dalších aplikací, ukážu vám, jak můžete nainstalovat softwarové produkty, jako je Adobe Creative Cloud, Adobe Reader, Notepad++, stejně jako Process Explorer, Process Monitor a WinRar.

    Vzhledem k tomu, že před procesem instalace potřebujeme lokalizovat samotné balíčky, měli bychom využít možností rutiny Najít balíček. Jak jste si již všimli o něco dříve, tato rutina vám umožňuje vyhledávat instalační balíčky ve zdrojích balíčků dostupných na místním počítači. Pokud v této rutině nepoužijete žádné parametry, příkaz zobrazí úplný seznam všech aplikací, jak bylo uvedeno dříve.

    Nejprve se například pokusíme najít aplikace Adobe, které jsou k dispozici pro instalaci od námi přidaného poskytovatele Chocolatey. K tomu stačí kromě samotné rutiny zadat parametr -Název a zadejte požadovaný softwarový produkt jako jeho hodnotu. Protože instalační balíčky mohou mít za slovem Adobe název produktu, měli byste název produktu zadat následovně: Adobe*, jak je znázorněno na následujícím obrázku. Jak vidíte, modul OneGet detekoval v úložišti následující instalační balíček: adobe-creative-cloud verze 1.0. V zásadě se jedná o jeden z produktů, které hledáte, což znamená, že by měl být nainstalován. Chcete-li to provést, jak je také vidět na následujícím obrázku, musíte použít schopnosti rutiny Instalační balíček. Chcete-li nainstalovat Creative Cloud, spusťte následující příkaz Install-Package -Name adobe-creative-cloud -Force, kde parametr Force, jak je běžné v PowerShellu, přepíše omezení, která brání spuštění příkazu, dokud změny nezačnou porušovat požadavky na zabezpečení. Výstup těchto příkazů je vidět na následujícím obrázku:

    Nyní, po instalaci prvního softwarového produktu, zkusme vyhledat konkrétní verzi Adobe Reader. K tomu navíc již známý příkaz Najít balíček – pojmenujte AdobeReader parametr by měl být přidán – Všechny verze který vrátí všechny dostupné verze balíčku nebo všechny verze balíčku, které jsou v rozsahu zadaném v parametrech Minimální verze A Maximální verze. Upozorňujeme, že tento parametr je volitelný, protože vyhledávání zpočátku zobrazuje nejnovější verzi softwarového produktu. Nyní bychom ze všech dostupných verzí měli vybrat tu, která by měla být nainstalována v počítači, například ať je to verze 2015.007.20033 . pro instalaci této konkrétní verze čtečky postupujte podle příkazu Instalační balíček - Název AdobeReader přidat parametr – Požadovaná verze se smyslem 2015.007.20033 , který určuje přesnou verzi balíčku, který chcete nainstalovat. Přidáním parametru můžete také nainstalovat maximální dostupnou verzi produktu Maximální verze s odpovídajícím významem. Výstup těchto příkazů je vidět na následujícím obrázku:

    Pokud potřebujete nainstalovat nejnovější verzi softwarového produktu a zároveň nechcete v PowerShellu zadávat více příkazů, můžete hledání balíčků a instalaci zobecnit pomocí kanálu. Pokud například instalujete nejnovější verzi textového editoru Notepad++, můžete spustit následující příkaz: Najít balíček -Název NotepadPlusPlus | Instalační balíček – Force. Vyhledáte tedy balíček v úložišti a pokud najdete výsledek, okamžitě jej nainstalujete v tichém režimu. Proces instalace tohoto softwarového produktu je zobrazen níže:

    Nyní, protože podle výše uvedeného úkolu zbývá nainstalovat Process Explorer, Process Monitor a WinRar, zkusme nainstalovat několik softwarových balíčků najednou. K tomu je vhodné přesně vědět, jak se tyto balíčky v samotném úložišti nazývají. Jak jsem psal dříve, lze to zkontrolovat pomocí rutiny Najít balíček | Out-GridView. Jakmile jsou známy názvy balíčků, můžete pokračovat v samotné instalaci. Chcete-li to provést, můžete spustit následující příkaz: Najít balíček -Název procexp, procmon, winrar | Instalační balíček. V tomto příkladu, jak můžete vidět na následujícím obrázku, konkrétně neuvádím parametr Platnost abyste mohli věnovat pozornost celému procesu instalace více softwarových balíčků současně.

    Ukládání a mazání programů

    Poslední dvě rutiny, o kterých bude řeč v tomto článku, jsou zodpovědné za uložení instalačního balíčku a odstranění nainstalovaného programu. Začněme ukládáním.

    Pro uložení instalačního balíčku můžete použít další cmdlet modulu OneGet, a to modul Save-Package. Tato rutina vám umožňuje ukládat balíčky do místního počítače, aniž byste je instalovali později. Ve výchozím nastavení tato rutina ukládá nejnovější verzi softwarového produktu, ale pokud přidáte parametr do aktuální rutiny Všechny verze, všechny verze programu, který jste vybrali, budou uloženy na vašem počítači. Navíc, podobně jako parametry vyhledávacích a instalačních programů cmdletů, kromě uložení všech verzí pomocí parametrů - Maximální verze A – Minimální verze, můžete také vybrat rozsah verzí balíčků, které chcete zachovat. Chcete-li uložit balíček do počítače, kromě možnosti název a v případě potřeby parametr odpovědný za verzi produktu, musíte tento parametr zadat Cesta s budoucím umístěním vašeho instalačního technika.

    Jak můžete vidět na následujícím obrázku, příkaz Uložit-balíček –Název Procexp –Cesta C:\TestPosh uloží nejnovější verzi Process Explorer do složky C:\TestPosh:

    Pokud jste omylem nainstalovali nesprávný balíček, můžete jej vždy odebrat pomocí modulu OneGet. K tomu slouží cmdlet Uninstall-Package. Stejně jako u ostatních rutin v tomto modulu musíte k odebrání programu zadat parametr Name s odpovídajícím názvem aplikace a pro tiché odstranění můžete také použít parametr Force. Chcete-li například odebrat dříve nainstalovaný WinRAR z počítače, musíte spustit následující příkaz: Uninstall-Package – Name WinRAR – Force jak je uvedeno níže:

    Závěr

    Z tohoto článku jste se dozvěděli o jedné z funkcí nového operačního systému od společnosti Microsoft, konkrétně o instalaci softwarových produktů pomocí příkazového shellu Windows PowerShell. Řekl jsem vám o samotném modulu OneGet, o základní terminologii používané spolu s touto technologií a o tom, jaké předinstalované poskytovatele balíčků existují. Naučili jste se, jak můžete k OneGet připojit poskytovatele balíčků třetí strany a jak vám může pomoci najít, nainstalovat, uložit a odinstalovat software.

    Doufám, že pro vás byly tyto informace užitečné a dozvěděli jste se něco nového. Pokud máte nějaké dotazy k materiálu v tomto článku, zeptejte se jich v komentářích, rád vám poskytnu jakoukoli pomoc.

    VN:F

    Hodnocení: 9,9/ 10 (18 odevzdaných hlasů)

    Instalace programů pomocí PowerShellu ve Windows 10, 9,9 z 10 na základě 18 hodnocení

    Windows PowerShell je výkonný příkazový řádek a skriptovací jazyk určený pro správu systému. Windows PowerShell je vynikající nástroj pro správu a automatizaci správy operačního systému Windows i aplikací běžících pod Windows.

    Byl jsem vášnivým fanouškem skriptů vbs. Protože jsem si všiml, že pro úkoly, pro které jsem dříve používal Delphi, je skriptovací jazyk vbs docela vhodný. Koneckonců, je mnohem pohodlnější otevřít poznámkový blok, hodit tam pár řádků, uložit soubor s požadovanou příponou a spustit skript. K tomu není potřeba nic instalovat, jako například Delphi, které je také placené.

    Přestože vbs není špatný, jeho nástupce PowerShell má mnohem širší funkčnost.

    Mám vbs skript, který automaticky publikuje obrázky na jeden z blogů. Bylo potřeba zarovnat obrázek na šířku nebo na výšku v závislosti na rozlišení přidaného obrázku. A tak jsem nemohl získat rozlišení obrázků pomocí skriptu vbs, ale to se provádí velmi jednoduše pomocí PowerShellu.

    Li Počínaje Windows 7 je PowerShell dodáván se samotným Windows., pak ve Windows XP musíte stáhnout a nainstalovat - stáhněte si PowerShell V2 pro Windows XP SP3.

    Pátou verzi Powershell lze stáhnout z odkazu: microsoft.com, také popisuje, který soubor stáhnout pro požadovaný OS a jak jej nainstalovat.

    Jak povolit spouštění místních skriptů PowerShellu?

    Ve výchozím nastavení systém Windows z bezpečnostních důvodů neumožní spouštění skriptů PowerShellu. Musíte povolit spouštění lokálních skriptů. Spusťte příkaz v konzole (umožní spouštění lokálních skriptů a stažených skriptů podepsaných důvěryhodným certifikátem):

    powershell -Command Set-ExecutionPolicy RemoteSigned

    V opačném případě se při pokusu o spuštění skriptu zobrazí tento text:

    Soubor C:\ImageSize.ps1 nelze načíst, protože v tomto systému není povoleno skriptování. Další informace získáte zadáním „get-help about_signing“.
    + Informace o kategorii: Nespecifikováno: (:), ParentContainsErrorRecordException
    + FullyQualifiedErrorId: RuntimeException

    Chcete-li změnit tuto bezpečnostní politiku zpět, napište:

    powershell -Command Set-ExecutionPolicy Restricted

    Chcete-li povolit spouštění skriptů bez kontroly podpisu, napište:

    powershell -Command Set-ExecutionPolicy Unrestricted

    Pokud se při spuštění skriptu zobrazí následující zpráva:

    Upozornění zabezpečení Spouštějte pouze skripty, kterým důvěřujete. Zatímco skripty z internetu mohou být užitečné, tento skript může potenciálně poškodit váš počítač. Chcete spustit \server\scripts\my.ps1? [D] Nespouštět [R] Spustit jednou [S] Pozastavit [?] Nápověda (výchozí je "D"): d

    A pokud se toho chcete zbavit, tak při spouštění skriptu použijte parametr -ExecutionPolicy Bypass

    Powershell -ExecutionPolicy Bypass -soubor "\\server\scripts\my.ps1"

    Jak spustit skript PowerShell?

    Zadejte příkaz na příkazovém řádku

    Powershell - Soubor your-script-name.ps1

    Kde your-script-name.ps1 je název vašeho skriptu. Soubory skriptů PowerShell mají příponu *.ps1

    Nápověda nebo nápověda k prostředí Windows PowerShell

    PowerShell má různé rutiny pro získání konkrétní pomoci. Ale nejdůležitější z nich je: Get-Help

    Zadejte příkazy do konzole:

    powershell -příkaz Get-Help

    powershell -příkaz Get-Help -?

    A obdržíte dva různé popisy, které se vzájemně doplňují, jak nápovědu používat.

    Možnosti nápovědy jsou poměrně rozsáhlé, s příklady a podrobnými popisy v ruštině. Proto jej můžete zobrazit v různých formátech.

    Například:

    • powershell -command Get-Help Get-Help - obecná nápověda pro rutinu Get-Help
    • powershell -command get-help Get-Help -příklady - příklady použití rutiny get-help
    • powershell -command get-help Get-Help -detailed - podrobná nápověda pro rutinu get-help
    • powershell -command get-help Get-Help -full - nejúplnější nápověda pro rutinu get-help

    winintro.ru/windowspowershellhelp.ru/ - nápověda ve formě html knihy

    Poznámky k prostředí Windows Powershell:

    Porovnávací operátory

    • -eq - Equal - Equal
    • -ne - Nerovná se - Nerovná se
    • -ge - větší nebo rovno - Více nebo rovno
    • -gt - Větší než - Více
    • -L - Méně než - Méně
    • -le - Menší nebo rovno - Menší nebo rovno
    • -like - Porovnání zástupných znaků - Použití zástupných znaků ke shodě se vzorem
    • -notlike - Porovnání zástupných znaků - Použijte zástupné znaky ke shodě se vzorem
    • -match - Porovnání regulárních výrazů - Použijte regulární výrazy k porovnání vzoru
    • -notmatch - Porovnání regulárních výrazů - Použijte regulární výrazy k nalezení shody se vzorem
    • -replace - Nahradit operátor - Nahradí část nebo celou hodnotu nalevo od operátoru
    • -contains - Operátor kontejneru - Určuje, zda hodnota nalevo od operátoru obsahuje hodnotu napravo. Výsledkem je booleovská hodnota
    • -notcontains - Operátor omezení - Určuje, že hodnota nalevo od operátoru neobsahuje hodnotu napravo. Výsledkem je booleovská hodnota

    Ve výchozím nastavení operátory porovnání nerozlišují velká a malá písmena.
    Pro porovnání rozlišující malá a velká písmena má příkaz předponu "c". Například operátor -eq rozlišující velká a malá písmena se změní na "-ceq".
    Pro explicitní srovnání bez rozlišení velkých a malých písmen má příkaz předponu "i". Příklad: operátor -replace bez ohledu na velikost písmen by byl -ireplace

    • -is - Je typ
    • -isnot - Není typ
    • -as - Jako typ, žádná chyba, pokud se převod nezdaří

    Logické operátory PowerShellu:

    • - a - Aby byl výraz pravdivý, musí být splněny obě podmínky
    • -nebo - Aby byl výraz pravdivý, musí být splněna jedna nebo obě podmínky
    • -xor - Jedna podmínka musí být pravdivá a druhá musí být nepravda, aby byl výraz pravdivý
    • -not - Aby byl výraz pravdivý, musí být zadané podmínky vyhodnoceny jako nepravda
    • ! - Aby byl výraz pravdivý, musí být zadaná podmínka vyhodnocena jako nepravda

    $myVar -je "String" $myVar -eq 123 $myVar -ceq $myVar2 "abcdef" -jako "abc*" "abcdef" -nahradit "dEf","xyz" $myVar1 -je "String" -a $myVar2 -je "Int" (1 -ekv 1) -a -ne (2 -gt 2)

    Řetězcové operace

    #Rozdělte řetězec mezerami: $string = "Testovací řetězec" $string.split(" ") $string.IndexOf(" ") #Vyhledejte první mezeru v $string # Vrátí nulový index prvního výskytu of PS> "abcdeabcde". indexOf("cde") 2 # Vrátí pozici indexu počítanou od posledního výskytu zadaného znaku PS> "abcdeabcde".lastIndexOf("c") 7 # Vrátí podřetězec začínající od pozice 1 PS > "abcdefgh".Substring(1) bcdefgh # Vrátí podřetězec začínající na pozici 1 a 4 znaky dlouhý PS> "abcdefgh".Substring(1,4) bcde # Vložení podřetězce z pozice 0 PS> "abcdefgh".insert( 0,"X") Xabcdeabcde # Mazání z pozice 0 délka 2 PS> "abcdefgh".remove(0,2) cdeabcde # Vlastnost objektu - délka řetězce PS> "abcdefgh".length 8 # Vrací True, pokud řetězec obsahuje podřetězec "cde" PS> "abcdefgh" .Contains("cde") True # Vrátí hodnotu True, pokud řetězec začíná podřetězcem "abc" PS> "abcdefgh".startsWith("abc") True # Vrátí hodnotu True, pokud řetězec končí řetězcem podřetězec "fgh" PS> "abcdefgh".endsWith("fgh" ) True # Vrátí hodnotu True, pokud řetězec obsahuje podřetězec "cde" PS> $"abcdefgh" -jako "*cde*" True # Vrátí pole, kde " d" je oddělovač PS> "abcdefgh" -split "d" abc efgh # Vrátí řetězec zřetězený ze dvou ":" - oddělovač PS> "abcdefgh", "xyz"-join ";" abcdefgh;xyz # Vrátí řetězec, kde bude "abc" nahrazeno "XYZ" PS> "abcdefgh".replace("abc","XYZ") XYZdefgh # Vrátí řetězec, kde jsou znaky převedeny na VELKÁ PÍSMENA> "abcdefgh" .ToUpper() ABCDEFGH # Vrací řetězec, kde jsou znaky převedeny na malá písmena PS> "ABCDEFGH".ToLower() abcdefgh

    Předdefinované proměnné

    $domů– uživatelský adresář
    $NULL– prázdný
    $pravda- skutečný
    $false– lóže
    $DebugPreference– „Continue“ zobrazuje informace o ladění, „SilentlyContinue“ nezobrazuje informace o ladění. Viz příkaz Write-Debug

    Práce se soubory

    $string | Out-File $file -Append #Append $string s novým řádkem k souboru $file $string = get-content -Cesta $file #Získání obsahu souboru v $string $file $jokes = ::ReadAllText($ soubor) #přečíst celý soubor na jednom řádku Testovací cesta "C:\test.txt" #Zkontrolovat existenci souboru

    Najděte všechny soubory s konkrétní příponou v adresáři a podadresářích.
    Poté zkopírujte tyto soubory do jiného adresáře.

    $flist = get-childitem e:\doc\* -include *.pdf -recurse $flist | ForEach-Object($_.CopyTo("e:\doc\all_pdf\" + $_.PSChildName)) ls d:\ | ?($_.psiscontainer) | vybrat celé jméno #Zobrazit pouze adresáře ls d:\ | ?(!$_.psiscontainer) | vybrat celé jméno #Zobrazit pouze soubory $local = Get-Location #Aktuální adresář $local.Path # Pracovní adresář $local.Drive.Root # Kořen $local.Drive.Name # Písmeno disku $local.Drive.Used # Použitý disk $local .Drive.Free # Zdarma na disku

    Zobrazení úplných názvů souborů na disku D: které se změnily v období od 1. června 2014 do 20. září 2014:

    Ls d:\ -recurse | ?(!$_.psiscontainer) | vyberte celé jméno,Čas posledního zápisu | Where-Object ( $_.LastWriteTime -ge "01/06/2014" -a $_.LastWriteTime -le "09/20/2014")

    Zobrazení textu na obrazovce

    # text, kterému je třeba věnovat pozornost. Zvýrazněno žlutě. Write-Warning("Text, který vyžaduje pozornost") # Pouze zobrazí text Write-Host("Pouze text") #povoleno informace o ladění $DebugPreference = "Pokračovat" # zobrazené informace o ladění Write-Debug "Nelze otevřít soubor." # deaktivovaný výstup ladění $DebugPreference = "SilentlyContinue"

    Pauza na několik sekund

    Start-Sleep -s 15 # Pauza na 15 sekund

    Pozastavte konzolu, dokud nestisknete klávesu Enter

    Read-Host "Stiskněte Enter"

    Práce s procesy

    #Úkol: zabij všechny procesy s názvem Poznámkový blok # Metoda #1 get-process Notepad | Stop-Process # Metoda #2 (funguje pouze s jedním procesem) $plist = get-process Notepad $plist.Kill() # Metoda #3 (stejná jako 2, ale všechny procesy) $plist = get-process Notepad $ plist | ForEach-Object ($_.Kill()) #Získat procesy a jejich data zahájení: Get-Process| Formát-Název tabulky,StartTime-AutoSize

    Přírůstek

    $i++ - v době volání má i starou hodnotu, ale poté je zvýšena o 1++

    ++$i - v okamžiku volání se i zvýší o 1

    Pole

    $array = 17,15,160 #vytvořilo pole tří prvků $array -obsahuje $element #obsahuje pole prvek $file1 #0. prvek pole $file1.count #velikost pole #odstranění prvku "asdf" z pole $array = @ ("adsf","adf","erge") $array = $array |? ($_ -ne "adf") #získat pouze jedinečné prvky pole $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | select -uniq #index prvního výskytu prvku v poli $array.indexOf("cde")

    Pokud Elseif Else konstrukce

    if ($i -eq 0) ( Write-Host("i je nula") ) ElseIf ($i -eq 1) ( Write-Host("i je jedna") ) Else ( Write-Host("i není rovná nule nebo jedné")

    Pro každou smyčku

    $services = Get-Service ForEach ($service in $services) ( $service.Stop() ) 65 #převést ASCII kód ​​na znak "A" #převést znak na ASCII kód ​​"Ahoj" #převést řetězec na ASCII kódy

    Čekáme na stisknutí libovolné klávesy:

    $HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer() $host.ui.RawUI.WindowTitle = "elimS název okna" #задаем заголовок окна !}

    Datové typy v PowerShellu

    Nejběžnější typy:

    Řetězec znaků Unicode s pevnou délkou A 16bitový znak Unicode 8bitový znak bez znaménka 32bitové celé číslo se znaménkem 64bitové celé číslo se znaménkem Booleovská hodnota Pravda/nepravda 128bitová desítková hodnota 32bitové číslo s plovoucí desetinnou čárkou s jednoduchou přesností Dvojité -přesné 64bitové číslo s plovoucí desetinnou čárkou Datum a čas Objekt Xml Pole hodnot objektu Hashtable

    Existují také vestavěné konstanty: $true,$false, $null

    Unicode: Chcete-li zakódovat znak Unicode v řetězci PowerShell, přidejte před unicode předponu 0x a přeneste jej do System.Char:

    PS > 0x263a ☺

    Konverze datových typů

    Chcete-li vynutit převod na konkrétní datový typ, zadejte před hodnotu nebo proměnnou typ v hranatých závorkách, což se nazývá Operátor obsazení a vynutí zvolený datový typ:

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

    Testování datových typů

    PS C:\>32 -is
    Pravda PS C:\> $true -is
    Skutečný

    Funkce v Powershell

    funkce elimS ( #funkce s několika vstupními parametry param($string = "výchozí hodnota", $integer = 7) #input parametry write-host "string = " $string " | integer = " $integer ) elimS # volání funkce bez definice parametrů, parametry budou mít výchozí hodnotu $string = "testovací řetězec" $integer = 911 elimS $string $integer #takto správně voláme funkci - parametry oddělujeme mezerou elimS -integer $integer -string $string #toto je také správné $global:var1 = "test" je globální proměnná, takže můžete předávat hodnoty proměnných z funkcí.

    Více o tom, jak předat funkci více parametrů:

    Odpočinek

    get-host #zobrazit verzi powershell Clear-RecycleBin c: -Vynutit #vyprázdnění koše Komprimovat-Archiv -Cesta C:\test\* -Cesta C:\archive\test1.zip #archivovat složku Rozbalit-Archiv -Cesta C :\temp \test1.zip "C:\test\Nová složka\" #rozbalte archiv (Get-CimInstance Win32_operatingSystem).lastbootuptime #show system boot time write-host $sleep_array.GetType().FullName #zobrazit přepínač typu proměnné ($a) ( #case - multiple if 1 ($b = $b+10 ) 2 ($b = $b+20 ) 3 ($b = $b+30 ) 4 ($b = $b+40 ) výchozí ($b = $b+50) ) Get-Content -Cesta "C:\scripts\test.txt" -Počkejte #analogie ocasu v linuxu

    Rutiny Powershell

    Řadit-objekt- třídí objekty ve vzestupném nebo sestupném pořadí na základě hodnot vlastností objektů. Můžete nastavit jednu vlastnost nebo více vlastností (řazení podle více klíčů) a můžete si vybrat, zda chcete třídit podle velikosti písmen nebo bez ohledu na velikost písmen. Rutinu Sort-Object můžete také nastavit tak, aby zobrazovala pouze objekty s jedinečnými hodnotami pro danou vlastnost.

    Kopírovat položku- zkopíruje prvek z jednoho místa ve jmenném prostoru do jiného. Rutina Copy-Item neodstraní zkopírované položky. Typy prvků, které může rutina kopírovat, jsou určeny dostupností poskytovatelů prostředí Windows PowerShell. Když například použijete rutinu s poskytovatelem FileSystem, zkopírují se soubory a složky, a když použijete poskytovatele registru, zkopírují se klíče registru a položky.

    Přesunout položku- Přesune prvek, včetně jeho vlastností, obsahu a potomků, z jednoho místa na druhé. Obě daná umístění musí být podporována stejným poskytovatelem. Můžete například přesunout soubor nebo podadresář z jednoho adresáře do jiného nebo můžete přesunout podklíč registru z jednoho klíče do druhého. Když přesunete prvek, odstraní se na svém původním místě a vytvoří se na novém.

    Odebrat položku- odstraní jeden nebo více prvků. Tato rutina je podporována mnoha dodavateli, takže dokáže odstranit různé typy položek, včetně souborů, adresářů, klíčů registru, proměnných, aliasů a funkcí.

    Get-ChildItem- Přijímá prvky z daných míst. Pokud je prvkem kontejner, tato rutina načte prvky z kontejneru, které se nazývají podřízené prvky. Možnost Recurse můžete použít k načtení položek ze všech podřízených kontejnerů. Umístěním může být umístění systému souborů, jako je adresář, nebo umístění poskytnuté jiným poskytovatelem, jako je například podregistr nebo úložiště certifikátů.

    Možnosti rutiny Powershell

    -ErrorAction- parametr je přítomen ve všech rutinách; umožňuje určit akci, která se má provést, když dojde k chybě:

    • Pokračovat – zobrazí chybové hlášení a pokračuje v provádění
    • SilentlyContinue – ignorujte chybu a pokračujte
    • Stop - přeruší provádění při první chybě
    • Dotaz – pokud dojde k chybě, zobrazí se požadavek na další postup

    Příklad: Copy-Item "d:\test1\klbackup*" "d:\test2\" -ErrorAction stop

    -Co když- zobrazí zprávu, která popisuje výsledek příkazu, aniž by jej skutečně provedl. Přítomno ve všech rutinách.

    get-help about_CommonParameters- popis parametrů, které lze použít s libovolnou rutinou.

    SSH přes Powershell

    Příklad, jak můžete pracovat přes SSH:

    #nainstalujte modul SSH, jakmile Find-Module Posh-SSH | Install-Module #Vytvořit relaci SSH: Import-Module Posh-SSH $ComputerName = "1.2.3.4" $UserName = "ubuntu" $KeyFile = "C:\SSH\key.pem" $nopasswd = systém nového objektu. Zabezpečení .SecureString $Crendtial = New-Object System.Management.Automation.PSCredential ($UserName, $nopasswd) $SSHSession = New-SSHSession -ComputerName $ComputerName -Credential $Crendtial -KeyFile $KeyFile #SSH = Vytvořit shell: $ SSHSsession | New-SSHShellStream # odešle příkaz $SSH.WriteLine("ifconfig") # přečte odpověď $SSH.read() # uzavře relaci: $sshSession | Odebrat-SSHSession

    Týmy:

    • Get-SSHTrustedHost – zobrazení důvěryhodných hostitelů
    • Get-SSHSession – zobrazení seznamu otevřených relací
    • Remove-SSHSession - ukončení relace

    Poznámka. Tento modul můžete používat bez instalace WMF 5.0. Předběžná verze modulu pro PS 4.0 a 3.0 je k dispozici samostatně – březen 2016 a novější verze vyhledejte v centru pro stahování PackageManagement PowerShell Modules Preview.

    Instalace programů

    Tento příklad nainstaluje čtyři programy a úplnou sadu nástrojů Sysinternals z úložiště Chocolatey. První tři příkazy se provedou jednou a změna zásad musí být potvrzena. Čtvrtý příkaz tiše nainstaluje uvedené programy a pátý jednoduše šetří čas.

    #Povolit instalaci podepsaných balíčků z Internetu Set-ExecutionPolicy RemoteSigned #Instalovat poskytovatele Chocolatey Get-PackageProvider –Name Chocolatey -ForceBootstrap #Udělat Chocolatey jako důvěryhodné Set-PackageSource -Name Chocolatey -Trusted #Install programy, Install-Package,firefoxlPlus filezilla, sysinternals -Verbose -Force -ProviderName chocolatey #Přidat cestu ke spustitelným souborům (sysinternals) do PATH setx PATH "$env:path;C:\Chocolatey\bin" -m

    Dodavatel stáhne balíček do C:\Chocolatey\lib, který je založen na skriptu chocolateyInstall.ps1. Stáhne instalační program programu z oficiálního webu do složky %temp%\Chocolatey a spustí jej v režimu tiché instalace. Nejjednodušším příkladem je Notepad++.

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

    Vyhledat programy

    V repozitářích je mnoho programů, určitě tam jsou všechny ty nejoblíbenější.

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

    Typy instalačních programů a klíčů tiché instalace

  • Stránka pro automatickou instalaci systému Windows a fórum pro automatickou instalaci programu
  • Instalace aktualizací systému Windows přes Powershell

    • Stáhněte si modul Windows Update PowerShell z webu společnosti Microsoft.
    • Rozbalte archiv do složky %WINDIR%\System32\WindowsPowerShell\v1.0\Modules
    • Pokud jste ještě nepovolili spouštění místních skriptů, udělejme to: „Set-ExecutionPolicy RemoteSigned“.
      • Můžete to zkontrolovat pomocí příkazu "Get-ExecutionPolicy": mělo by to být "RemoteSigned" místo "Restricted"
    • Stažený modul importujeme příkazem: "Import-Module PSWindowsUpdate"
    • Připraveno. Nyní můžete použít příkazy:
      • Zobrazit seznam dostupných aktualizací: Get-WUInstall -ListOnly
      • Nainstalujte všechny aktualizace bez žádosti o potvrzení: Get-WUInstall -AcceptAll
      • Nainstalujte všechny aktualizace bez žádosti o potvrzení a odložte restart: Get-WUInstall -AcceptAll -IgnoreReboot
      • Nainstalujte konkrétní aktualizace s vědomím jejich počtu:"Get-WUInstall -KBArticleID KB3066441, KB3078676 -AcceptAll -IgnoreReboot" - nyní nemusíte chodit na web společnosti Microsoft a stahovat je ručně
      • Podrobná nápověda k modulu: get-help Get-WUInstall -detailed
      • Zobrazit seznam dostupných aktualizací s výjimkou kategorie „Jazykové balíčky“, titulů „Skype“ a aktualizace KB3012973: Get-WUInstall –NotCategory „Language Packs“ –NotTitle Skype –NotKBArticleID KB3012973 –ListOnly
      • Nainstalujte aktualizace s výjimkou kategorie „Language Packs“, záhlaví „Skype“ a aktualizace KB3012973: Get-WUInstall –NotCategory „Language Pack“ –NotTitle Skype –NotKBArticleID KB3012973 –AcceptAll –IgnoreReboot

    Ahoj. =)
    Další ohavný článek o administraci Windows Serveru je věnován prvotní přípravě OS k použití. Rozmazlený tím, že v základní verzi Windows Serveru s GUI (Graphical user interface), stejně jako ve Windows Server 2012 Core a vyšších je Powershell již nainstalován, byl jsem velmi zmaten tím, že ve Windows Server 2008R2 Core není z toho cítit. Protože Nastavení nebylo příliš zřejmé a musel jsem procházet Google a technet, rozhodl jsem se napsat krátkou poznámku do budoucna.

    Nejprve tedy dostaneme k dispozici alespoň PowerShell 2.0 (ve skutečnosti můžete tento krok přeskočit tak, že vše popsané níže provedete v cmd, ale začal jsem tímto). To lze provést dvěma způsoby: spuštěním nástroje sconfig.cmd na příkazovém řádku nebo pomocí DISM ( Obsluha a správa obrazu nasazení) na stejném místě. První nám nabízí pseudografické rozhraní, kde pod bodem 4 najdeme možnost nainstalovat PS 2.0.

    To se provádí pomocí DISM následovně:
    dism.exe /online /enable-feature:MicrosoftWindowsPowerShell

    Po instalaci PS, restartu a obdržení trochu adekvátnějšího nástroje, který máme k dispozici, se jej pokusíme aktualizovat na aktuální verzi. V době psaní tohoto článku je to verze 4.0 nebo preview verze 5.0. Pro mě je minimální použitelná verze verze 3.0, která již obsahuje mnoho cmdletů pro správu rolí serveru a prostředků, které ve verzi 2 chybí. Windows PowerShell 3.0 vyžaduje v systému rozhraní .Net Framework 4.0 nebo vyšší.
    Pokud se nyní pokusíme nainstalovat .Net 4.0, zjistíme, že k tomu potřebujeme již nainstalovaný .Net 2.0, který v edici Server Core z nějakého důvodu chybí. Je to legrační, ale ze zvyku po stažení instalačního programu a jeho spuštění obdržíme odmítnutí instalace a upozornění na nutnost použít dism.exe. >_< OK, dism, так dism. Уставливается по аналогии с PS:
    dism.exe /online /enable-feature:NetFx2-ServerCore
    dism.exe /online /enable-feature:NetFx2-ServerCore-WOW64

    Dalším krokem je aktualizace .Net Frameworku na nejnovější verzi. Pokud chcete používat Powershell 3.0, nainstalujte si .Net 4.0, ale pokud chcete nejnovější verzi, budete potřebovat .Net 4.5.1 a vyšší. Volba je na vás, instalace je velmi jednoduchá. Jediný problém mohl být v příjmu instalačního balíčku - k serveru jsem připojil síťový disk, na který jsem nahrál všechny instalační soubory; můžete použít jakékoli paměťové médium, které vám vyhovuje.

    Připravili jsme tedy základ pro instalaci PS verze 3.0 a vyšší. Dalším krokem je stažení instalačního programu Windows Management Framework a jeho instalace. Stáhněte si a spusťte KB2819745 architektury, kterou potřebujeme:

    Tradičně po instalaci budeme potřebovat restart, po jeho dokončení budeme mít k dispozici PowerShell 4.0.

    Mimochodem, abyste mohli používat rutinu Add-WindowsFeature (v systému Windows Server 2012 přejmenovanou Install-WindowsFeature) ke konfiguraci rolí serveru, budete muset nainstalovat součásti Správce serveru prostřednictvím stejného souboru DISM.EXE. Vypadá to takto:
    dism.exe /online /enable-feature:ServerManager-PSH-Cmdlet s
    Obecně jsem velmi rozmazlený nejnovějšími verzemi PS, protože... Začal jsem na tom pracovat po vydání třetí verze, ale jak se ukázalo, k instalaci rolí můžete použít pouze dism.exe. A pokud neznáte název funkce, kterou potřebujete, můžete se vždy podívat na všechny dostupné možnosti a jejich stav pomocí parametru /get-features. Ale podle mého názoru je Get-WindowsFeature mnohem informativnější. =)
    dism.exe /online /get-features vs. Get-WindowsFeature