小编bou*_*rne的帖子

批量脚本,Powershell,而不是在Windows中触发UAC

我正在寻找远程以高架模式运行批处理文件(runas管理员),以便它不会使UAC跳闸以提示用户交互.我们在登录脚本中进行了一些注册表编辑,这些编辑触发UAC提示每个运行的注册表.

我意识到这种方式违背了UAC的目的,但如果在启用了UAC的计算机上运行批处理文件有一些方法,那就太好了.

这些批处理文件需要能够在没有任何用户交互的情况下运行(它们主要是登录脚本和一些管理脚本).我们没有使用Active Directory域,所以希望没有AD域的解决方案.

到目前为止我找到的解决方案如下:

  1. 完全禁用UAC - 我们通常会这样做,但我们可能会遇到无法禁用它的情况.

  2. 创建我们希望在提升模式下运行的批处理文件的快捷方式.转到快捷方式>快捷方式选项卡>已添加>关闭"以管理员身份运行"的属性

    • 此解决方案似乎有效,但是快捷方式的初始运行会导致UAC提示出现.批处理文件中运行的所有命令都不会导致UAC提示.接近解决方案,但不提出任何提示会很好.

3.使用'runas'命令运行批处理文件.

  • 我试过这个,但它仍然没有达到提升以防止UAC提示.
  • 另外,使用echo'password'| runas .....方法提供的密码似乎不正常,所以我总是要输入密码.

我想的另一件事,但我还没有真正研究过,在启用UAC的环境中,powershell脚本是否运行/工作得更好?Windows是否"信任"经过认证的PowerShell脚本并允许它们在不触发UAC的情况下畅通无阻地运行?

从我所看到的,这些是围绕UAC的其他方法,然后禁用它.但我只是想看看是否有人能够对这一主题有所了解.

谢谢,

干杯

windows powershell scripting uac batch-file

4
推荐指数
1
解决办法
3万
查看次数

PowerShell:脚本模块变量在ISE之外不可用

我一直在努力更新我写的一些脚本.我还在学习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 …

powershell

4
推荐指数
1
解决办法
4073
查看次数

标签 统计

powershell ×2

batch-file ×1

scripting ×1

uac ×1

windows ×1