以管理员身份安装模块
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
【讨论】:
以上是关于以管理员身份安装模块的主要内容,如果未能解决你的问题,请参考以下文章