当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何默认以管理员身份运行PowerShell脚本?

作者:精品下载站 日期:2024-12-14 21:00:27 浏览:14 分类:玩电脑

如何默认以管理员身份运行PowerShell脚本?


PowerShell 是一个非常强大的工具,用于在 Windows 环境中管理和自动化任务。这是管理员常见的陷阱 - 忘记使用“以管理员身份运行”选项运行 PowerShell 脚本。否则可能会在运行 PowerShell 脚本时导致许多*奇怪的*问题。例如,在 SharePoint 中,我们得到“本地场无法访问。具有 FeatureDependencyId 的 Cmdlet 未注册。”错误。

当执行需要提升权限来修改系统设置、安装软件或管理资源的脚本时,通常需要以管理员身份运行 PowerShell 脚本。本文将指导您以管理员身份运行 PowerShell 脚本。

[玩转系统] 如何默认以管理员身份运行PowerShell脚本?

以管理员身份运行 PowerShell

您需要以管理员身份运行 PowerShell 来安装软件、修改注册表项或管理系统设置。如果没有管理权限,PowerShell 可能无法执行某些命令,并且您可能会收到错误或访问被拒绝的消息。

那么,如何以管理员身份运行PowerShell?解决方案很简单!要以管理员身份打开 Windows PowerShell,请在开始菜单中键入“PowerShell”>> 选择“以管理员身份运行”。您还可以在搜索结果中右键单击“Windows PowerShell”,然后选择“以管理员身份运行”。顺便说一句,我假设您在 Windows 10 或 7 计算机上拥有管理权限!

使用键盘上的 Ctrl+Shift+Enter 快捷键组合,通过“以管理员身份运行”选项启动 PowerShell(或任何程序)!

[玩转系统] 如何默认以管理员身份运行PowerShell脚本?

对于管理单元,右键单击 SharePoint 2013 PowerShell 管理单元并选择“以管理员身份运行”。

[玩转系统] 如何默认以管理员身份运行PowerShell脚本?

PowerShell 控制台处于管理员模式后,您可以开始键入 cmdlet 以在管理员模式下执行它们。

在 PowerShell 中从普通用户切换到管理员

当您打开 PowerShell 控制台时,它默认以普通用户模式启动。要切换到管理员模式,请使用以下命令:


start-process PowerShell -verb runas

此命令将以管理员身份启动提升的 Windows PowerShell。

如何以管理员身份在 PowerShell 中运行 ps1 文件?

要以管理员身份运行 PowerShell 脚本,请执行以下操作:

  1. 使用上述“以管理员身份运行”方法以管理员身份启动 PowerShell 控制台或 PowerShell ISE。
  2. 使用“CD”cmdlet 导航到脚本位置。例如,“CD C:\Scripts”
  3. 通过键入其名称并后跟“.ps1”扩展名来运行 PowerShell 脚本。例如,“.\YourScriptName.ps1”

默认情况下启用 PowerShell 的“以管理员身份运行”提升权限

如果您经常以管理员身份运行 PowerShell 脚本,您可能会发现每次出现 UAC(用户帐户控制)提示时单击“是”很繁琐。幸运的是,有一种方法可以绕过提示并自动在管理员模式下打开 PowerShell。

要在没有提示的情况下以管理员身份自动运行 PowerShell 脚本,请在桌面上创建 PowerShell 控制台的快捷方式。

  1. 右键单击“SharePoint 2013 Management Shell”快捷方式(或 Windows PowerShell),然后单击“属性”。
  2. 单击快捷方式选项卡下的“高级”按钮
  3. 启用“以管理员身份运行”并单击“确定”按钮。

[玩转系统] 如何默认以管理员身份运行PowerShell脚本?

在计划任务中以管理员身份运行 PowerShell:

任务计划程序允许您安排脚本在特定时间或事件运行,从而允许它们以管理权限运行。如果您要安排 PowerShell 脚本,请确保选中“以最高权限运行”复选框。否则,您的计划任务可能会在无人值守的情况下运行,从而调用 UAC 提示。去做这个,

  1. 打开任务计划程序并创建一个新任务。
  2. 在“常规”选项卡中,为任务指定名称和描述,然后选择“以最高权限运行”。
  3. 在“触发器”选项卡中,指定任务运行的时间和频率。
  4. 在“操作”选项卡中,选择“启动程序”,然后在“程序/脚本”字段中键入“powershell.exe”。然后,在“添加参数(可选)”字段中添加 PowerShell 脚本的路径。
  5. 最后,单击“确定”保存任务。

有关创建计划任务以运行 PowerShell 脚本的更多信息,请参阅:如何使用 Windows 任务计划程序运行 PowerShell 脚本?

在 PowerShell 脚本中处理以管理员身份运行:
让我们在 PowerShell 代码中处理它,即使您忘记使用“以管理员身份运行”选项!


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"

将此代码添加到脚本的开头。

在 PowerShell 脚本中以不同用户身份运行:


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

如何从命令提示符以管理员身份运行 PowerShell?

要在命令行中以管理员身份运行 PowerShell:

  1. 单击 Windows 开始图标 >> 输入“Cmd”以启动命令提示符。
  2. 输入:PowerShell 进入PowerShell控制台
  3. 现在,输入:Start-Process PowerShell -Verb RunAs

顺便说一句,“当地农场无法进入”可能还有更多原因。具有 FeatureDependencyId 的 Cmdlet 未注册”问题,例如:

  • .Net Framework 版本兼容性(SharePoint 2010 与 .Net Framework 4.xx 不兼容),请在命令行中附加“-version 2”来解决。
  • 登录的管理员可能不是“SharePoint_Shell_Access”角色的成员。 (运行“Add-SPShellAdmin”cmdlet 来解决 - https://www.sharepointdiary.com/2014/07/the-local-farm-is-not-accessible-cmdlets-with-featuredependencyid-are-not-registered-powershell -错误.html)
解决此问题的另一个解决方案:禁用 UAC!具体方法如下:如何在 Windows Server 2012/2008 中禁用 UAC?

结论

通常需要以管理员身份运行 PowerShell 脚本才能执行需要提升权限的任务。通过执行本文中概述的步骤,您可以使用管理权限轻松启动 PowerShell 并运行脚本。这可确保您拥有必要的权限来执行高级系统修改、安装软件或根据需要管理资源。

经常问的问题:

如何在 Windows 10 中以管理员身份运行 PowerShell?

在 Windows 10 文件资源管理器中,您可以选择任何 PowerShell 文件 (.ps1) >> 单击“文件”菜单 >> 打开 Windows PowerShell >> 以管理员身份打开 Windows PowerShell。

[玩转系统] 如何默认以管理员身份运行PowerShell脚本?

如何从命令行以管理员身份运行 PowerShell?

要从 cmd 以管理员身份运行 PowerShell,请打开命令提示符,键入 PowerShell,然后输入“Start-Process powershell -Verb RunAs”。这将打开一个具有管理员权限的新 PowerShell 窗口。

您可以在没有管理员权限的情况下运行 PowerShell 吗?

是的,您可以在没有管理员权限的情况下运行 PowerShell。为此,只需打开“开始”菜单,在搜索栏中键入“PowerShell”,然后单击“Windows PowerShell”。但是,任何系统操作,例如更改系统设置、编辑注册表或安装软件等,都需要具有管理员权限的 PowerShell。

如何检测 PowerShell 是否以管理员身份运行?

使用“([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)”。如果 PowerShell 以管理员身份运行,则返回“True”,否则返回“False”。

如何从批处理文件以管理员身份运行 PowerShell?

使用: powershell -noprofile -command “&{ start-process powershell -ArgumentList ‘-noprofile -file C:\script\psfile.ps1’ -verb RunAs}”

如何以管理员身份远程运行 PowerShell?

当您远程执行命令时,它们将以管理权限运行,因为只有管理员才能在 PowerShell 中远程执行它们。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯