Запрашивать учетные данные администратора домена перед запуском скрипта Powershell - PullRequest
0 голосов
/ 08 мая 2019

Я хотел бы запустить некоторые формы с учетными данными администратора домена, и мне нужно все это в самом скрипте.

Я нашел несколько хитростей в Интернете, но ничего очень удобного или ожидаемого.Я не хочу использовать .bat файл или что-то подобное.К вашему сведению, у меня есть все сценарии с Powershell Studio.

У кого-нибудь из вас есть решение собрать учетные данные администратора домена, проверить их и, наконец, запустить скрипт с использованием этих кредитов?

1 Ответ

0 голосов
/ 08 мая 2019

Вы можете проверить учетные данные домена, используя LDAP:

# Load the required assembly
Add-Type -AssemblyName 'System.DirectoryServices.Protocols'

# Specify credential details
$domain = 'example.com'
$userName = 'Username'
$password = 'Password'

try {
    # Create a credential object
    $netCred = New-Object -TypeName System.Net.NetworkCredential -ArgumentList $userName, $password

    # Create an LdapConnection object
    $connection = New-Object -TypeName  System.DirectoryServices.Protocols.LdapConnection -Argumentlist $domain
    $connection.Credential = $netCred

    # Attempt to connect
    # Will raise an exception if credentials are wrong, DC is unavailable, etc
    $connection.Bind()

    # Do something with the valid credentials
    Write-Output -InputObject "Credentials are good!"
}
catch [System.DirectoryServices.Protocols.LdapException] {
    # Failed to connect, so give the user a friendly error message
    Write-Output -InputObject "Error connecting to the '$domain' as '$userName': $($_.Exception.Message)"
}
finally {
    # Dispose of the connection
    $connection.Dispose()
}
...