PowerShell 以不同使用者身份執行
PowerShell 是面向 Windows、Mac 和 Linux 使用者的基於命令列的自動化和指令碼解決方案。許多作業系統使用者可以使用 PowerShell。使用 PowerShell 的主要使用者之一是 Windows 使用者。
與 Linux 和類似 Linux 的系統不同,Windows 的指令碼功能有限。Windows PowerShell 是一種很好的解決方案,可以填補這一空白,併為 Windows 使用者在 CI/CD 系統管理、指令碼和自動化任務方面提供一定的靈活性。
有關 Windows 和其他版本的 PowerShell 的更多詳細資訊可以通過 https://learn.microsoft.com/en-us/powershell/ 找到,其中包括官方 PowerShell 文件。
在 Windows 系統中,不同的使用者可以通過其他憑據登入並使用相同的 Windows 系統。在 PowerShell 中,使用者可以作為不同的使用者(該使用者具有訪問許可權)登入並執行指令碼。
使用 Credential
命令以其他使用者身份執行 PowerShell 以執行指令碼
有多種方法可以使用 PowerShell 應用程式更改使用者帳戶。首先,你應該開啟 PowerShell 應用程式。然後,可以使用 credential
關鍵字開啟彈出視窗。然後你可以輸入所需的使用者憑據(使用者名稱和密碼)。
start powershell -credential ""
作為上述命令的結果,可以看到下圖中顯示的彈出視窗,你可以在其中輸入其他使用者憑據以切換到所需的使用者。開啟的彈出視窗是 Windows PowerShell 憑據請求。
但是,你可以使用其他方法來實現此目的,而不是僅包括 credential 命令。
但是,這裡要記住一件事。如果你將新開啟的 PowerShell 與鍵盤和其他輸入裝置一起使用,則必須先關閉父 PowerShell 應用程式視窗。
這是你用來以其他使用者身份開啟新 PowerShell 視窗的視窗。如果沒有,你將面臨以新使用者身份執行的命令。
在這裡,該過程是安全的,因為它不需要你在輸入中鍵入使用者名稱和密碼文字。但是,有一種不太安全的方法可以跳過上述彈出視窗。
該方法將提供 $username
和 $password
並提供 credential 關鍵字以及 new-object
以直接登入到使用 PowerShell 所需的不同使用者帳戶。由於使用者帳戶存在潛在的安全風險,不建議使用。
以不同使用者身份執行 PowerShell 以執行儲存指令碼的基於 UI 的解決方案
與其使用以一個使用者身份執行 PowerShell、提供命令並以新使用者身份登入的複雜過程,不如使用更易於訪問的基於 UI 的解決方案來實現這一點。
最推薦和最簡單的方法之一是首先將 PowerShell 應用程式固定到 Windows 機器的工作列。
然後你可以右鍵單擊 PowerShell 圖示,該圖示會顯示一個選項為 Windows PowerShell。將滑鼠懸停在該選項上,單擊 Shift 並一起右鍵單擊以開啟另一個選單。
你可以從新選單中選擇以不同使用者身份執行
。然後將開啟一個不同的彈出視窗,如下圖所示。在啟動應用程式之前,你可以輸入你要登入的使用者的使用者憑據(密碼和使用者名稱)。
因此,使用者可以作為新使用者登入到他們有權訪問的帳戶,並以該特定使用者的身份使用 PowerShell 應用程式來執行任何儲存的指令碼或任何相似的指令碼。
但是,除非你以管理員身份登入,否則你可能無法執行某些通過 PowerShell 可用的命令。例如,任何需要對 System32 檔案進行任何更改的命令在執行命令之前都需要完全的管理員許可權。你可以通過 https://blog.idera.com/database-tools/powershell/ask_the_experts/f/learn_powershell_from_don_jones-24/21279/which-commands-require-running-as-閱讀有關需要管理員許可權的提升 PowerShell 會話和命令的更多資訊管理員。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.