Weboldal keresés

Hogyan lehet a PowerShell Scriptet alapértelmezés szerint rendszergazdaként futtatni?


A PowerShell egy hihetetlenül hatékony eszköz a feladatok kezeléséhez és automatizálásához Windows környezetben. Ez egy gyakori rendszergazda buktatója - elfelejti futtatni a PowerShell-szkriptet a „Futtatás rendszergazdaként” opcióval. Ennek elmulasztása sok *furcsa* problémához vezethet a PowerShell-szkriptek futtatása közben. Például a SharePointban a „A helyi farm nem érhető el. A FeatureDependencyId-vel rendelkező parancsmagok nincsenek regisztrálva.” hiba.

A PowerShell-szkriptet rendszergazdaként kell futtatni, ha olyan parancsfájlokat hajt végre, amelyek magasabb szintű jogosultságokat igényelnek a rendszerbeállítások módosításához, a szoftverek telepítéséhez vagy az erőforrások kezeléséhez. Ez a cikk végigvezeti Önt a PowerShell-szkript rendszergazdaként való futtatásán.

Futtassa a PowerShellt rendszergazdaként

A szoftver telepítéséhez, a rendszerleíró kulcsok módosításához vagy a rendszerbeállítások kezeléséhez rendszergazdaként kell futtatnia a PowerShellt. Adminisztrátori jogosultságok nélkül előfordulhat, hogy a PowerShell nem tud végrehajtani bizonyos parancsokat, és Ön hibákat kaphat, vagy megtagadva hozzáférést kaphat.

Szóval, hogyan kell a PowerShellt rendszergazdaként futtatni? A megoldás egyszerű! A Windows PowerShell rendszergazdaként való megnyitásához írja be a „PowerShell” kifejezést a start menübe >> Válassza a „Futtatás rendszergazdaként” lehetőséget. A keresési eredmények között jobb gombbal kattintson a „Windows PowerShell” elemre, és válassza a „Futtatás rendszergazdaként” lehetőséget. Feltételezem, hogy rendszergazdai jogosultságokkal rendelkezik a Windows 10 vagy 7 rendszerű számítógépeken, BTW!

Használja a Ctrl+Shift+Enter billentyűkombinációt a billentyűzeten a PowerShell (vagy bármely program) elindításához a „Futtatás rendszergazdaként” opcióval!

Beépülő modul esetén kattintson a jobb gombbal a SharePoint 2013 PowerShell beépülő modulra, és válassza a „Futtatás rendszergazdaként” lehetőséget.

Ha a PowerShell-konzol rendszergazdai módban van, elkezdheti beírni a parancsmagokat, hogy rendszergazdai módban hajtsa végre azokat.

Váltson normál felhasználóról rendszergazdára a PowerShellben

Amikor megnyitja a PowerShell-konzolt, az alapértelmezés szerint normál felhasználói módban indul el. A rendszergazdai módba való váltáshoz használja a következőket:


start-process PowerShell -verb runas

Ez a parancs egy emelt szintű Windows PowerShellt indít rendszergazdaként.

Hogyan lehet ps1 fájlt futtatni a PowerShellben rendszergazdaként?

A PowerShell-szkriptek rendszergazdaként való futtatásához tegye a következőket:

  1. Indítsa el a PowerShell-konzolt vagy a PowerShell ISE-t rendszergazdaként a fenti „Futtatás rendszergazdaként” módszerrel.
  2. Navigáljon a szkript helyére a „CD” parancsmag segítségével. Pl. „CD C:\Scripts”
  3. Futtassa a PowerShell-szkriptet úgy, hogy beírja a nevét, majd a „.ps1” kiterjesztést. Pl. „.\SkriptNeve.ps1”

Alapértelmezés szerint engedélyezze a „Futtatás rendszergazdaként” emelt szintű jogosultságot a PowerShell számára

Ha rendszergazdaként gyakran futtat PowerShell-szkripteket, fárasztónak találhatja az „Igen” gombra kattintani minden alkalommal, amikor megjelenik az UAC (Felhasználói fiókok felügyelete) üzenet. Szerencsére van mód a felszólítás megkerülésére és a PowerShell automatikus megnyitására rendszergazdai módban.

Ha a PowerShell-szkriptet rendszergazdaként, felszólítás nélkül szeretné automatikusan futtatni, hozzon létre egy parancsikont a PowerShell-konzolhoz az asztalon.

  1. Kattintson a jobb gombbal a „SharePoint 2013 Management Shell” parancsikonra (vagy a Windows PowerShellre), majd kattintson a Tulajdonságok parancsra.
  2. Kattintson a „Speciális” gombra a Parancsikon fül alatt
  3. Engedélyezze a „Futtatás rendszergazdaként” lehetőséget, és kattintson az „OK” gombra.

Futtassa a PowerShellt rendszergazdaként az ütemezett feladatoknál:

A Feladatütemező lehetővé teszi a parancsfájlok meghatározott időpontokban vagy eseményekre történő futtatásának ütemezését, lehetővé téve azok futtatását rendszergazdai jogosultságokkal. Ha PowerShell-szkriptet ütemez, feltétlenül jelölje be a „Futtatás a legmagasabb jogosultságokkal” jelölőnégyzetet. Ellenkező esetben előfordulhat, hogy az ütemezett feladat felügyelet nélkül futhat, és UAC-kérést hívhat elő. Ezt csináld meg,

  1. Nyissa meg a Feladatütemezőt, és hozzon létre egy új feladatot.
  2. Az Általános lapon adjon nevet és leírást a feladatnak, majd válassza a „Futtatás a legmagasabb jogosultságokkal” lehetőséget.
  3. A Triggerek lapon adja meg, hogy a feladat mikor és milyen gyakran futjon.
  4. A Műveletek lapon válassza a „Program indítása” lehetőséget, és írja be a „powershell.exe” parancsot a Program/script mezőbe. Ezután adja hozzá a PowerShell-szkript elérési útját az Argumentumok hozzáadása (nem kötelező) mezőben.
  5. Végül kattintson az „OK” gombra a feladat mentéséhez.

A PowerShell-szkript futtatásához szükséges ütemezett feladat létrehozásáról itt olvashat bővebben: PowerShell-szkript futtatása a Windows Feladatütemezővel?

Futtatás rendszergazdaként kezelése a PowerShell-szkriptben:
Kezeljük a PowerShell-kódunkban, még akkor is, ha elfelejtette használni a „Futtatás rendszergazdaként” opciót!


Function Check-RunAsAdministrator()
{
  #Get current user context
  $CurrentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
 
  #Check user is running the script is member of Administrator Group
  if($CurrentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator))
  {
       Write-host "Script is running with Administrator privileges!"
  }
  else
    {
       #Create a new Elevated process to Start PowerShell
       $ElevatedProcess = New-Object System.Diagnostics.ProcessStartInfo "PowerShell";

       # Specify the current script path and name as a parameter
       $ElevatedProcess.Arguments = "& '" + $script:MyInvocation.MyCommand.Path + "'"

       #Set the Process to elevated
       $ElevatedProcess.Verb = "runas"

       #Start the new elevated process
       [System.Diagnostics.Process]::Start($ElevatedProcess)

       #Exit from the current, unelevated, process
       Exit

    }
}

#Check Script is running with Elevated Privileges
Check-RunAsAdministrator

#Place your script here.
write-host "Welcome"

Adja hozzá ezt a kódot a szkript elejéhez.

Futtasson más felhasználóként a PowerShell-szkriptekben:


$credential = New-Object System.Management.Automation.PsCredential("Domain\UserID", (ConvertTo-SecureString "Password" -AsPlainText -Force))
Start-Process powershell -Credential $credential -NoNewWindow

Hogyan futtatható a PowerShell rendszergazdaként a parancssorból?

A PowerShell rendszergazdaként történő futtatásához a parancssorban:

  1. Kattintson a Windows Start ikonjára >> Írja be a „Cmd” parancsot a parancssor elindításához.
  2. A PowerShell-konzolba való belépéshez írja be: PowerShell
  3. Most írja be: Start-Process PowerShell - RunAs ige

BTW, több oka is lehet annak, hogy „A helyi farm nem megközelíthető. A FeatureDependencyId-vel rendelkező parancsmagok nincsenek regisztrálva”, például:

  • A .Net Framework verzió kompatibilitása (a SharePoint 2010 nem kompatibilis a .Net Framework 4.xx verzióval), a megoldáshoz fűzze hozzá a „-version 2” szót a parancssorhoz.
  • Előfordulhat, hogy a bejelentkezett rendszergazda nem tagja a „SharePoint_Shell_Access” szerepkörnek. (Futtassa az „Add-SPShellAdmin” parancsmagot a megoldáshoz - https://www.sharepointdiary.com/2014/07/the-local-farm-is-not-accessible-cmdlets-with-featuredependencyid-are-not-registered-powershell -error.html )
Egy másik megoldás a probléma megoldására: Az UAC letiltása! Így lehet - Hogyan lehet letiltani az UAC-t a Windows Server 2012/2008 rendszerben?

Következtetés

A PowerShell-szkript rendszergazdaként való futtatása gyakran szükséges emelt szintű jogosultságokat igénylő feladatok végrehajtásához. A cikkben ismertetett lépések követésével egyszerűen elindíthatja a PowerShellt rendszergazdai jogokkal, és futtathatja a szkriptet. Ez biztosítja, hogy rendelkezzen a szükséges engedélyekkel a speciális rendszermódosítások végrehajtásához, a szoftverek telepítéséhez vagy az erőforrások szükség szerinti kezeléséhez.

Gyakran Ismételt Kérdések:

Hogyan futtathatom a PowerShellt rendszergazdaként a Windows 10 rendszerben?

A Windows 10 Fájlkezelőből bármelyik PowerShell-fájlt (.ps1) kiválaszthat >> Kattintson a „Fájl” menüre >> Nyissa meg a Windows PowerShellt >> Nyissa meg a Windows PowerShellt rendszergazdaként.

Hogyan futtathatja a PowerShellt rendszergazdaként parancssorból?

A PowerShell rendszergazdaként való futtatásához a cmd-ből nyissa meg a parancssort, írja be a PowerShell parancsot, majd írja be a „Start-Process powershell -Verb RunAs” parancsot. Ezzel egy új PowerShell-ablakot nyit meg rendszergazdai jogosultságokkal.

Futtatható a PowerShell rendszergazdai jogok nélkül?

Igen, futtathatja a PowerShellt rendszergazdai jogok nélkül. Ehhez egyszerűen nyissa meg a Start menüt, írja be a „PowerShell” kifejezést a keresősávba, és kattintson a „Windows PowerShell” gombra. Azonban minden rendszerművelethez, például a rendszerbeállítások módosításához, a rendszerleíró adatbázis módosításaihoz vagy a szoftverek telepítéséhez stb. rendszergazdai jogosultságok szükségesek a PowerShellhez.

Hogyan állapíthatja meg, hogy a PowerShell rendszergazdaként fut-e?

Használja a „([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)”. Ha a PowerShell rendszergazdaként fut, ez „True” értéket ad vissza, és ha nem, „False” értéket ad vissza.

Hogyan futtatható a PowerShell rendszergazdaként kötegfájlból?

Használja: powershell -noprofile -command "&{ folyamat indítása powershell -ArgumentList ‘-noprofile -file C:\script\psfile.ps1' -verb RunAs}"

Hogyan futtathatom távolról a PowerShellt rendszergazdaként?

Amikor távolról hajt végre parancsokat, azok rendszergazdai jogosultságokkal futnak, mivel csak a rendszergazdák hajthatják végre őket távolról a PowerShellben.

Kapcsolódó cikkek