簡體   English   中英

Powershell - 本地憑證驗證

[英]Powershell - local credential verification

我使用Powershell檢查本地管理員憑據作為此代碼段的基礎並遇到問題。 (不想詐騙)

Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext('machine',$entry)
if($pc.ValidateCredentials("secretadmin", "secretpassword")){Write-host "good"}else{write-host "bad"}

它約占50%的時間。 剩下的時間,我明白了

使用“2”參數調用“ValidateCredentials”的異常:“不允許同一用戶使用多個用戶名與服務器或共享資源建立多個連接。斷開以前與服務器或共享資源的所有連接,再試一次。

這讓我想起了使用net use驗證憑據的批處理腳本,我們只需要刪除映射驅動器來解決問題。 因為沒有我知道的保存對象,我不確定如何清除此登錄。 我檢查登錄用戶,什么也沒看見

基本上,我們正在為醫院建立數百台服務器,並且需要確保遵守政策,檢查這些憑據只是其中的一部分,但這是我遇到問題的地方。

任何幫助將不勝感激。 在提出這些問題之前,請注意一下。 憑證是正確的,它們在腳本中是硬編碼的,我可以收到故障,並立即通過RDP和psexec使用相同的憑據登錄錯誤。 防火牆允許從我的主機到目的地。

PrincipalContext實現了IDisposable所以我建議這樣做:

Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$pc = New-Object DirectoryServices.AccountManagement.PrincipalContext('machine',$entry)

try {
    if($pc.ValidateCredentials("secretadmin", "secretpassword")) {
        Write-host "good"
    }
    else {
        Write-host "bad"
    }
}
finally {
    $pc.Dispose()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM