Я медленно, но верно совершенствую новый пользовательский скрипт. Как бы то ни было, мой скрипт сделает все, чтобы добавить нового пользователя в наш домен, кроме одного. У нас есть собственная программа, интерфейс веб-страницы, который подключается к базе данных SQL. Обычно я перехожу на веб-страницу и открываю для справки текущего пользователя, затем добавляю нового пользователя с теми же критериями (кроме имени, электронной почты и имени пользователя), что и текущий пользователь. Я подумал, что было бы неплохо добавить это в сценарий, чтобы все было в одном месте. И я подумал, что было бы проще добавить нового пользователя через бэкэнд, чем через интерфейс веб-страницы (в любом случае с помощью PowerShell). На самом деле у меня нет большого опыта работы с SQL, но я подумал, что сейчас хорошее время для изучения некоторых основных команд во время изучения PowerShell.
Подводя итог, я бы хотел, чтобы сценарий перешел на SQL-сервер, поискал пользователя, о котором я ему говорю (у меня уже есть переменная для текущего пользователя для чего-то еще), создал нового пользователя, такого же, как этот пользователь, за исключением его / ее имя / адрес электронной почты / логин. Есть несколько полей, которые будут одинаковыми; отдел, группы и др.
Спасибо за любые указатели, которые вы можете дать!
Вы можете использовать стандартные объекты доступа к данным .Net для выполнения SQL или хранимых процедур в вашей базе данных. Я не знаю деталей вашей проблемы, но ваш скрипт, вероятно, начнется примерно так (с парой изменений, если вы используете базу данных сторонних разработчиков):
$connStringBuilder = new-object System.Data.SqlClient.SqlConnectionStringBuilder
$connStringBuilder["Data Source"] = "SOME_SERVER"
$connStringBuilder["Initial Catalog"] = "YourDatabase"
$connStringBuilder["User ID"] = "user"
$connStringBuilder["Password"] = "password"
$conn = new-object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = $connStringBuilder.ConnectionString
$comm = new-object System.Data.SqlClient.SqlCommand
$comm.CommandText = "INSERT INTO FOOBAR VALUES... "
$comm.CommandType = $CommandType
$comm.Connection = $conn
$rowsAffectedCount = $comm.ExecuteNonQuery()
Хорошо, это не совсем реалистичный пример. Вы, вероятно, в конечном итоге напишете пару функций и, возможно, будете использовать менее грубые подходы, чем простой INSERT. В любом случае - с этого вы должны начать.
Предполагая, что вы также можете создавать хранимые процедуры, тогда этот может быть хорошей ссылкой на то, как решить проблему INSERT или UPDATE
Для подробностей - вы, вероятно, захотите покопаться в документация на MSDN.