Показать полную графическую версию : [решено] Доменная авторизация на запуск операции в сценарии
Коллеги, реально ли реализовать процедуру доменной авторизации в скрипте и что бы без модуля AD Powershell? Если да, то как?
PowerShell - Using ADSI with alternate Credentials - http://www.lazywinadmin.com/2013/10/powershell-using-adsi-with-alternate.html
На этом примере работает, но не понял как его адаптировать в свой скрипт... Можете помочь?
к примеру есть допотопное условие аля 1 пароль для всех:
$pass = "111"
$passReplay = Read-Host -assecurestring "Введите пароль"
$passReplay = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($passReplay))
if ($pass -eq $passReplay){"Доступ разрешен"}
else {"Отказано"}
Как вместо этого условия использовать доменную авторизацию (и было бы неплохо сразу привязаться к определенной группе безопасности)...
http://poshcode.org/1393 - Test-ADCredentials by Mike Pfeiffer
Function Test-ADCredentials {
Param($username, $password, $domain)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext($ct, $domain)
New-Object PSObject -Property @{
UserName = $username;
IsValid = $pc.ValidateCredentials($username, $password).ToString()
}
}
PS > Test-ADCredentials TestUser 'P@$$w0rd1' 'contoso.ru'
IsValid UserName
------- --------
True TestUser
Или опишите задачу подробней, т.к. не очень понятно, что требуется в конечном итоге.
Вот это интересная ф-ция, попробую ее адаптировать. Спасибо.
Нужно чтобы при запуске скрипта был запрос на доменную авторизацию, если авторизация проходит, то идет запуск дальнейших инструкций, если не проходит, тогда "до свидания".
Возник вопрос, как безопасно передать пароль из System.Security.SecureString в вышеприведенную ф-цию?
например
$domainName = [Environment]::UserDomainName
$userName = [Environment]::UserName
$cred = Get-Credential -Message "введите имя пользователя и пароль" -User $domainName\$userName
$cred.Password как System.Security.SecureString, а как ее правильно, и главное безопасно передать в ф-цию? > Аля... Test-ADCredentials $userName $cred.Password $domainName
$cred.GetNetworkCredential().Password
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.