2017-05-31 133 views
1

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

蝙蝠 - >的.ps1 - >蝙蝠

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

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

+1

1.当“运行”并提升进程时,该进程将保持提升状态直至其终止。 2.为什么你需要前两个脚本?只需运行第三个提升。 –

+0

第三个脚本不总是运行。 PowerShell脚本查看事物(在SQL服务器上)并确定最终的批处理文件是否必需。 – jdope

+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/

+0

对于这个脚本,一切都保持在本地,感谢上帝。虽然很高兴知道。谢谢! – jdope