2017-05-31 132 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