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!
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:
- Indítsa el a PowerShell-konzolt vagy a PowerShell ISE-t rendszergazdaként a fenti „Futtatás rendszergazdaként” módszerrel.
- Navigáljon a szkript helyére a „CD” parancsmag segítségével. Pl. „CD C:\Scripts”
- 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.
- Kattintson a jobb gombbal a „SharePoint 2013 Management Shell” parancsikonra (vagy a Windows PowerShellre), majd kattintson a Tulajdonságok parancsra.
- Kattintson a „Speciális” gombra a Parancsikon fül alatt
- 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,
- Nyissa meg a Feladatütemezőt, és hozzon létre egy új feladatot.
- 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.
- A Triggerek lapon adja meg, hogy a feladat mikor és milyen gyakran futjon.
- 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.
- 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:
- Kattintson a Windows Start ikonjára >> Írja be a „Cmd” parancsot a parancssor elindításához.
- A PowerShell-konzolba való belépéshez írja be: PowerShell
- 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 )
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.




