Active-Directory
Powershell - 如何使用 ActiveDirectory 憑據開始工作
我的客戶使用 ActiveDirectory 控制對其數據庫的訪問。我想做以下事情:
$cred = Get-Credential Start-Job -Credential $cred { #do some stuff with the db }
這適用於任何本地使用者,但是在 vpn 上並輸入我的 ActiveDirectory 憑據時,無法進行身份驗證。
我知道
runas
只有在我提供/netonly
標誌時才能以 ActiveDirectory 使用者身份啟動程序(否則它不起作用)。我認為以下內容可能會有所幫助$cred = (Get-Credential).GetNetworkCredential()
但生成的對像不能轉換為
PsCredential
,這是-Credential
參數所採用的。與SO 上的這個問題有關,但似乎我可能一直在問錯誤的事情。
如果您嘗試執行集成安全 SQL 查詢,則可以使用模擬模組來完成。我沒有嘗試過 SQL,但是我的部落格上有一篇關於如何使用 PowerShell Impersonation Module 進行網路共享訪問的文章,我相信它與 SQL 伺服器所需的網路憑據相同(例如,與使用帶有 / 的 runas 相同)僅網路)。
如果您只是因為您認為它可以讓您更改網路訪問憑據而使用該工作,那麼只需擺脫它並使用 Push-ImpersonationContext 代替。如果您出於其他原因需要該作業,則必須在**作業中呼叫 Push-ImpersonationContext ,這意味著您必須將憑據放入作業中(可能通過序列化密碼並將其作為加密的安全字元串傳遞)。
我現在無法測試它(我沒有域,甚至沒有手邊的數據庫伺服器),所以,嗯……如果它不起作用,請告訴我;)