我正在寻找远程以高架模式运行批处理文件(runas管理员),以便它不会使UAC跳闸以提示用户交互.我们在登录脚本中进行了一些注册表编辑,这些编辑触发UAC提示每个运行的注册表.
我意识到这种方式违背了UAC的目的,但如果在启用了UAC的计算机上运行批处理文件有一些方法,那就太好了.
这些批处理文件需要能够在没有任何用户交互的情况下运行(它们主要是登录脚本和一些管理脚本).我们没有使用Active Directory域,所以希望没有AD域的解决方案.
到目前为止我找到的解决方案如下:
完全禁用UAC - 我们通常会这样做,但我们可能会遇到无法禁用它的情况.
创建我们希望在提升模式下运行的批处理文件的快捷方式.转到快捷方式>快捷方式选项卡>已添加>关闭"以管理员身份运行"的属性
3.使用'runas'命令运行批处理文件.
我想的另一件事,但我还没有真正研究过,在启用UAC的环境中,powershell脚本是否运行/工作得更好?Windows是否"信任"经过认证的PowerShell脚本并允许它们在不触发UAC的情况下畅通无阻地运行?
从我所看到的,这些是围绕UAC的其他方法,然后禁用它.但我只是想看看是否有人能够对这一主题有所了解.
谢谢,
干杯
我一直在努力更新我写的一些脚本.我还在学习PowerShell,所以我想回到原来的那些,看看能否改进.
我偶然发现了模块,并且非常喜欢使用它们存储可以随时调用的不同操作的想法.
我写了一个简单的脚本来测试(或者我认为).我应该提到我将我的模块存储在服务器共享上.
Write-Host "Testing for available variables"
Write-Host "Loading Modules"
Import-Module <path to my module on server share>.psm1
Write-Host ""
Write-Host "Done"
Write-Host "Print loaded modules"
Get-Module
Write-Host ""
Write-Host "Done"
Write-Host "================="
Write-Host ""
Write-Host "Printing variables"
Write-Host ""
Write-Host "Variable: arch: " $arch
Write-Host "Variable: WowNode: " $WowNode
Write-Host ""
Write-Host "Done"
Run Code Online (Sandbox Code Playgroud)
我的模块包含
If ( "${env:ProgramFiles(x86)}" -ne "" )
{
$script:arch = 64
$script:WowNode = "\Wow6432Node\"
}
ELSE
{
$script:arch = 32
$script:WowNode = "\"
}
Run Code Online (Sandbox Code Playgroud)
当我使用Windows …