1. fejezet – Első lépések a PowerShell-ben
Gyakran fordul elő, hogy a konferenciákon és a felhasználói csoportok értekezletein már fut a PowerShell, amikor elindítják a belépési szintű bemutatókat. Ez a könyv azoknak a kérdéseknek a megválaszolása után kezdődik, akiket korábban még nem használtak a PowerShellben az adott munkamenetekben.
Ez a fejezet kifejezetten a PowerShell keresésére és elindítására, valamint az új felhasználók PowerShell-sel kapcsolatos kezdeti problémák megoldásával foglalkozik. Kövesse az ebben a fejezetben bemutatott példákat a laborkörnyezet Windows 10 kövesse.
Mire van szükségem a PowerShell első lépésekhez?
Az operációs rendszerek minden modern Windows telepítve van a PowerShell használatával. Ha 5.1-esnél régebbi verziót futtat, telepítse a legújabb verziót.
- A Windows PowerShell 5.1-es verzióra való frissítéshez tekintse meg a meglévő Windows PowerShell
- A PowerShell legújabb verziójának telepítéséhez lásd: A PowerShell telepítése
Hol találom a PowerShellt?
A PowerShellt úgy találhatja meg a Windows 10, ha begépeli a PowerShellt a keresősávba az 1–1. ábrán látható módon.

Figyelje meg, hogy a PowerShell négy különböző parancsikonja látható az 1–1. ábrán. A jelen könyvben bemutatási célokra használt számítógép az Windows 10 64 bites verzióját futtatja, így a PowerShell-konzol és a PowerShell ISE (integrált parancsfájl-környezet) 64 bites verziója és 32 bites verziója van mindegyiknek a parancsikonokon található (x86) utótagja által megjegyzett módon. Ha a Windows 10 32 bites verzióját futtatja. Ezek az elemek nem az (x86) utótaggal, hanem 32 bites verziók. 64 bites operációs rendszer esetén azt javasoljuk, hogy futtassa a PowerShell 64 bites verzióját, kivéve, ha konkrét oka van a 32 bites verzió futtatására.
A PowerShell a powershell más verzióival való Windows lásd: Starting Windows PowerShell.
Hogyan PowerShellt?
Az általom támogatott éles vállalati környezetekben három különböző felhasználói Active Directory használok. Ezeket a fiókokat a könyvben használt laborkörnyezetben tükröztem. Tartományi felhasználóként jelentkezem Windows 10 számítógépre, aki nem tartományi vagy helyi rendszergazda.
A PowerShell-konzolt az 1–1. ábrán látható "Windows PowerShell" billentyűparancsra kattintva indították el.

Figyelje meg, hogy a PowerShell-konzol címsorában az "Windows PowerShell" jelenik meg, ahogyan az 1–4. ábrán látható. Egyes parancsok jól futnak, de a PowerShell nem vehet részt a felhasználói Access Control (UAC). Ez azt jelenti, hogy nem tud jogosultságszint-emelést kérni olyan feladatokhoz, amelyekhez rendszergazdai jóváhagyás szükséges. A következő hibaüzenet jön létre:
Get-Service -Name W32Time | Stop-Service
Stop-Service : Service 'Windows Time (W32Time)' cannot be stopped due to the following
error: Cannot open W32Time service on computer '.'.
At line:1 char:29
+ Get-Service -Name W32Time | Stop-Service
+
+ CategoryInfo : CloseError: (System.ServiceProcess.ServiceController:ServiceController)
[Stop-Service], ServiceCommandException
+ FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Commands.StopServiceCommand
A probléma megoldásához futtassa a PowerShellt tartományi felhasználóként, aki helyi rendszergazda. Így van konfigurálva a második tartományi felhasználói fiókom. A legkisebb jogosultság elvének alkalmazásával ez a fiók NEM lehet tartományi rendszergazda, és nem lehet emelt szintű jogosultság a tartományban.
Zárja be a PowerShellt. A PowerShell-konzol újraindítása, de ezúttal kattintson a jobb gombbal a Windows PowerShell parancsikonra, és válassza a Futtatás rendszergazdaként lehetőséget az 1–5. ábrán látható módon.

Ha normál felhasználóként van bejelentkezve Windows felhasználóként, a rendszer kérni fogja a hitelesítő adatait. Az 1–6. ábrán látható módon meg kell adnia a felhasználói fiókom hitelesítő adatait, aki tartományi felhasználó és helyi rendszergazda.

Miután rendszergazdaként újraindította a PowerShellt, a címsorban az "Administrator: Windows PowerShell" (Rendszergazda: Windows PowerShell) jelenik meg, ahogyan az 1–7. ábrán látható.

Most, hogy helyi rendszergazdaként rendszergazdaként futtatja a PowerShellt, az UAC már nem jelent problémát, ha olyan parancsot futtat a helyi számítógépen, amely általában jogosultságszint-emelési kérést igényel. Ne feledje azonban, hogy a PowerShell-konzol ezen emelt szintű példányából futtatott parancsok szintén emelt szintűen futnak.
A PowerShell egyszerűbb megkeresése és rendszergazdaként való elindítása érdekében azt javasoljuk, hogy a tálcán rögzítette, és minden futtatáskor automatikusan rendszergazdaként indítsa el.
Keresse meg újra a PowerShellt, de ezúttal kattintson rá a jobb gombbal, és válassza a Rögzítés a tálcán lehetőséget az 1-8. ábrán látható módon.

Kattintson a jobb gombbal a tálcán rögzített PowerShell-parancsikonra, és válassza ki a tulajdonságokat az 1–9. ábrán látható módon.

Kattintson a "Speciális" gombra az 1–10. ábrán az #1 által megjegyzett "Speciális" lehetőségre, majd jelölje be a "Futtatás rendszergazdaként" jelölőnégyzetet az 1–10. ábrán az #2 jelölés szerint, majd kattintson kétszer az OK gombra a módosítások elfogadásához és mindkét párbeszédpanelből való kilépéshez.

Soha nem kell aggódnia a PowerShell megkeresése miatt, vagy hogy újra rendszergazdaként fut-e.
A PowerShell rendszergazdai jogosultságszinten való futtatása az UAC-problémák elkerülése érdekében csak a helyi számítógépen futtatott parancsokat befolyásolja. Ez nincs hatással a távoli számítógépeket célzó parancsokra.
A PowerShell melyik verzióját futtatom?
A PowerShellben számos automatikus változó tárolja az állapotadatokat. Az alábbi változók egyike a , amely egy kivonattáblát tartalmaz, amellyel megjeleníthető $PSVersionTable a vonatkozó PowerShell-verzióinformáció:
$PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.1
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
A Windows PowerShell újabb verziói a Windows Management Framework (WMF) részeként vannak elosztva. A wmf.NET-keretrendszer verziójától függően a parancsnak egy adott verziójára van szükség. Az 5.1-es verzióra Windows PowerShell a meglévő verziófrissítésselWindows PowerShell.
Végrehajtási szabályzat
A közkedvelt nézetekkel ellentétben a PowerShell végrehajtási szabályzata nem biztonsági határ. Úgy tervezték, hogy megakadályozza, hogy a felhasználó tudatlanul futtason egy szkriptet. Egy meghatározott felhasználó könnyedén megkerülheti a végrehajtási szabályzatot a PowerShellben. Az 1–2. táblázat az aktuálisan használt operációs Windows alapértelmezett végrehajtási házirendet mutatja.
| Windows Operációs rendszer verziója | Alapértelmezett végrehajtási szabályzat |
|---|---|
| Server 2019 | Távoli aláírás |
| Server 2016 | Távoli aláírás |
| Windows 10 | Korlátozott hozzáférésű |
A végrehajtási szabályzat beállításától függetlenül bármely PowerShell-parancs interaktívan futtatható. A végrehajtási szabályzat csak a szkriptben futó parancsokat érinti. A parancsmag határozza meg, hogy mi az aktuális végrehajtási házirend-beállítás, és a parancsmag a végrehajtási Get-ExecutionPolicy Set-ExecutionPolicy házirendet módosítja. Azt javasoljuk, hogy használja a RemoteSigned szabályzatot, amelynek futtatásához egy megbízható közzétevőnek alá kell írnia a letöltött szkripteket.
Ellenőrizze az aktuális végrehajtási szabályzatot:
Get-ExecutionPolicy
Restricted
A PowerShell-szkriptek egyáltalán nem futtathatók, ha a végrehajtási szabályzat korlátozottra van állítva. Ez az alapértelmezett beállítás az összes Windows operációs rendszeren. A probléma szemléltető megoldásához mentse az alábbi kódot egy .ps1 nevű Stop-TimeService.ps1 fájlba.
Get-Service -Name W32Time | Stop-Service -PassThru
Ez a parancs interaktívan, hiba nélkül fut, ha a PowerShell rendszergazdaként van futtatva. Azonban amint parancsfájlként menti, és ön megpróbálja végrehajtani a szkriptet, az hibát jelez:
.\Stop-TimeService.ps1
.\Stop-TimeService.ps1 : File C:\demo\Stop-TimeService.ps1 cannot be loaded because
running scripts is disabled on this system. For more information, see
about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Stop-TimeService.ps1
+
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Figyelje meg, hogy az előző eredményhalmazban látható hibaüzenetből pontosan megtudhatja, mi a probléma (a szkriptek futtatása ebben a rendszerben le van tiltva). Amikor egy hibaüzenetet generáló parancsot futtat a PowerShellben, olvassa el a hibaüzenetet ahelyett, hogy egyszerűen újrafuttatja a parancsot, és bízna abban, hogy sikeresen lefut.
Módosítsa a PowerShell végrehajtási szabályzatát távoli aláírtra.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution
policy might expose you to the security risks described in the about_Execution_Policies help topic
at http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):y
Mindenképpen olvassa el a végrehajtási szabályzat módosításakor megjelenő figyelmeztetést. Azt is javasoljuk, hogy nézze meg a about_Execution_Policies súgótémakört, hogy biztosan megértse a végrehajtási szabályzat módosításának biztonsági következményeit.
Most, hogy a végrehajtási szabályzat RemoteSigned (Távoli aláírás) beállításra lett állítva, a Stop-TimeService.ps1 szkript ingyenes hibát futtat.
.\Stop-TimeService.ps1
Status Name DisplayName
------ ---- -----------
Stopped W32Time Windows Time
Mindenképpen indítsa el a Windows Time szolgáltatást a folytatás előtt, különben előre nem látható problémákba fog számítani.
Start-Service -Name w32time
Összefoglalás
Ebben a fejezetben megtanulta, hogyan találhatja meg és indíthatja el a PowerShellt, és hogyan hozhat létre olyan parancsikont, amely rendszergazdaként indítja el a PowerShellt. Emellett az alapértelmezett végrehajtási szabályzatot és a módosítási folyamatát is megtanulta.
Áttekintés
- Hogyan állapítható meg, hogy a számítógép milyen PowerShell-verziót futtat?
- Miért fontos rendszergazdaként rendszergazdaként elindítani a PowerShellt?
- Hogyan állapítható meg a PowerShell aktuális végrehajtási szabályzata?
- Mi akadályozza meg az ügyfélszámítógépek alapértelmezett PowerShell Windows végrehajtási szabályzatának bekövetkezését?
- Hogyan módosíthatja a PowerShell végrehajtási szabályzatát?
Ajánlott forrásanyag
Azoknak, akik többet szeretnék tudni az ebben a fejezetben szereplő témakörökről, javasoljuk, hogy olvassa el a következő PowerShell-súgótémakört.
A következő fejezetben megismerheti a parancsok felderíthetőségét a PowerShellben. Az egyik dolog, amelyről szó lesz, az a PowerShell frissítése, hogy azok a súgótémakörök közvetlenül a PowerShellből is megtekinthetők, ahelyett, hogy az interneten kellene őket megtekinteni.
Visszajelzés
Visszajelzés küldése és megtekintése a következőhöz: