运行运行批处理文件的PowerShell文件的批处理文件...作为管理员

时间:2017-05-31 16:45:50

标签: windows powershell batch-file cmd

这听起来很荒谬,但是我有一个批处理文件可以启动PowerShell文件(只需右键单击批处理文件和“以管理员身份运行”),这取决于PowerShell文件中的一些参数,可以运行执行某些操作的不同批处理文件。

.bat - > .ps1 - > .BAT

这是必要的,因为除了我之外的其他人编写和管理这个其他批处理文件。我无法将它正在做的事情纳入我自己的脚本中。

按原样,运行我的批处理文件以管理员身份运行我的PowerShell脚本。它是否会继续作为管理员继续运行嵌套批处理文件?它有多深?你有没有“失去”管理员?

1 个答案:

答案 0 :(得分:2)

是的,它会继续下去,在大多数情况下,这取决于你的流程在做什么,但答案通常是,不 - 它不会失去管理员权限。这里的关键区别在于您的脚本是否保持在本地。

如果是本地,那么是,管理员上下文将保留为从最初提升的进程中生成的进程。

如果你的抄写员通过网络接触,那取决于。已提升的帐户是否也是远程计算机上的管理员?然后是的,它将继续作为管理员运行。如果本地用户在远程计算机上没有管理权限,则可能与远程主机交互但不执行管理任务(取决于本地管理员是否具有"用户"权限遥控盒)。

如果您有本地主机(A)和远程主机(B和C)以及来自主机A的脚本(具有管理员提升),则尝试在主机B上执行一系列命令。如果这些命令中的任何一个从主机伸出B到任何其他远程主机(例如主机C),然后由于其他原因这将失败。出现此问题的原因是Windows如何执行NTLM / Kerberos身份验证并将这些凭据存储为单点登录。

假设在主机A上成功进行初始本地身份验证,则会在内存中创建一个安全令牌,该令牌将被存储和维护,以便任何需要身份验证的内容都可以重新使用该令牌,而无需重新提示用户输入凭据。进入这个过程的深度超出了这个问题的范围,但只是理解当主机A具有该令牌并且可以将其呈现给远程资源以进行身份​​验证时,远程主机不会获得它的副本。意思是,主机A可以让主机B信任它(假设赋予权利),但是主机B没有机制向任何其他主机(例如主机C)提供相同的认证令牌 - 为了更详细的解释,这称为"双跳"问题。 https://blogs.technet.microsoft.com/askds/2008/06/13/understanding-kerberos-double-hop/