我有一個 Powershell 腳本,需要管理員權限才能設定 Azure 檔案共用等。最後的腳本命令用於New-PSDrive
將檔案共用映射到磁碟機號。我的期望是可以從 Windows 資源管理器存取新的磁碟機號。我知道New-PSDrive
從提升的上下文中使用只會映射該上下文中的驅動器,因此它不可用於我的用戶帳戶。
如何以目前使用者身分從提升的腳本執行 Powershell 腳本/進程?
答案1
如果不提供使用者憑證,您無法變更使用者上下文。您可以輕鬆獲得登入用戶,但您永遠不會獲得他們的密碼,除非他們輸入密碼。
Invoke-Command -FilePath "yourPath\yourScript.ps1" -ComputerName yourServer -Credential Get-Credential
其次,如果您遠端運行,用戶永遠不會看到它,因為它只能在您所在的原始上下文中運行。
PowerShell 本身不允許您執行此操作,因為它是 Windows 安全性邊界。如果您確實需要這樣做,請考慮使用 MS SysInternals PSExec。
或尋找在計劃任務中做一些事情。
答案2
我認為這一切都是錯誤的,因為我默認以管理員身份運行所有內容。我將該腳本拆分為兩個單獨的腳本,一個用於需要管理員權限的程式碼,另一個用於需要使用者權限的程式碼。我調用用戶權限腳本,該腳本在管理上下文中檢查並出錯。然後,我可以在自己的提升提示符號中從使用者腳本執行管理腳本,等待,然後我回到使用者上下文。