以管理员身份安装模块

Posted

技术标签:

【中文标题】以管理员身份安装模块【英文标题】:Install Modules as Admin 【发布时间】:2022-01-23 09:12:45 【问题描述】:

我想使用我的管理员帐户安装模块。当我使用 Windows 以不同用户身份运行时,我收到以下错误消息“您没有足够的权限安装,请使用管理员帐户登录”好吧,我使用 -Score CurrentUser 绕过了这个。所以如果我手动执行它就可以了...

我想自动化这个过程,所以我将我的 PS1 转换为 EXE 出于某种原因,当我输入我的管理员用户名时,它会提示我输入密码,但它没有做任何其他事情......它加载了大约 5 分钟,什么也没有......

有人可以帮帮我吗?

谢谢

$userID = Read-Host -Prompt "Enter your Admin Account"
Write-Host $AdminID
runas /user:ent\$AdminID PowerShell


Install-Module -Name PowerShellGet -Force -AllowClobber -Scope CurrentUser
Install-Module -Name MicrosoftTeams -Scope CurrentUser
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser


Import-Module ExchangeOnlineManagement
Import-Module MicrosoftTeams

【问题讨论】:

代码的Import-Module 部分不应存在,因为这将在管理会话中导入模块。至于将 PS1 转换为 EXE,我不建议这样做。 Start-Process -Verb RunAs -Credential ... 在这种情况下应该可以工作。 【参考方案1】:

试试这个,只要您提供有效的凭据,它应该可以工作。这将在提升之前提示一个 UAC 窗口。

如果您想了解有关此主题的更多信息,推荐的文档:

Start Process about_Powershell.exe

注意,只要您当前的用户具有管理员权限,凭据提示以及代码上的Credential = $cred 都可以删除,-Verb RunAs 将提升会话。如果您想在所有配置文件上安装模块,则应删除-Scope CurrentUser

$cred = $Host.UI.PromptForCredential(
    $null, 'Supply Admin Credentials', $null, $null
)

$commands = @'
Install-Module -Name PowerShellGet -Force -AllowClobber -Scope CurrentUser
Install-Module -Name MicrosoftTeams -Scope CurrentUser
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
'@

$arguments = @
    FilePath     = 'powershell.exe'
    Verb         = 'RunAs'
    Credential   = $cred
    ArgumentList = @(
        '-ExecutionPolicy ByPass',
        '-Command',
        $commands,
        '-NoExit',
        '-NoProfile'
    )


Start-Process @arguments

【讨论】:

以上是关于以管理员身份安装模块的主要内容,如果未能解决你的问题,请参考以下文章

ansys软件安装教程

如何在多台机器上集中控制和维护 python 安装和模块?

python3.8 pip安装matplotlib等模块的时候出错解决

win10 安装python模块

win7出现故障模块kernelbase.dll

uni-app 安装node_module模块