我编写了一个Powershell模块,其中包含使用IIS的WebAdministration
Powershell模块的cmdlet。但是,此模块要求将其加载到管理员Powershell会话中,否则将引发异常。您可能知道或猜测,当Powershell首次作为管理员运行时,我的自定义模块无法加载。
这种行为是可以接受和预期的。我的问题是,当加载这个模块时,是否有办法提升shell的权限(并遵守UAC设置)?
示例:(假设在这种特殊情况下,我的powershell配置文件中找到了Import-Module WebAdministration
)
答案 0 :(得分:1)
我的问题是,在加载此模块时是否有提升shell权限的方法?
如果可以在没有提示的情况下静默提升,那将是一个安全漏洞。但是你可以使用这样的代码来确保模块在你没有运行高架时会抛出错误(而不是加载):
$Elevated = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if ( -not $Elevated ) {
throw "This module requires elevation."
}