Действительно необходимы заголовки комментария и нижние колонтитулы в Вашем коде? [закрытый]

Ошибка возникает из-за того, что пользователь не указал действительное значение Identity или, возможно, даже из-за того, что он не указал действительное значение MemberOf.

Согласно документам , оба параметра хотят, чтобы с ними работали DistinguishedName, ObjectGUID, a SID или SamAccountName. По умолчанию этот командлет не генерирует никаких выходных данных, если вы не используете параметр -PassThru.

В вашем случае, я думаю, вы пытаетесь использовать SamAccountName, и это должно работать просто отлично. Однако проблема здесь заключается в том, что вы используете файл CSV.

При сохранении Excel в виде CSV-файла можно ожидать, что результатом будет файл с разделенными запятыми значениями, разделенными запятыми , как следует из названия CSV.
К сожалению, Excel использует текущую системную локаль для определения используемого разделителя. Например, на моем голландском компьютере в качестве разделителя будет использоваться точка с запятой ;.

Если вы не проверите это, командлет Import-Csv без параметра -Delimiter примет запятую . Итак, после экспорта из Excel откройте файл csv с помощью Блокнота или любого другого текстового редактора, чтобы увидеть, что создано и какой символ-разделитель фактически используется. Вы также можете преодолеть эту проблему с помощью переключателя -UseCulture в командлете Import-Csv, но это будет иметь смысл только в том случае, если вы экспортируете из Excel и импортируете в PowerShell на том же компьютере (или, по крайней мере, тот, который использует ту же культуру )

То, что вы ДОЛЖНЫ иметь, это действительный файл CSV, что-то вроде этого:

"UserName","Group"
"user1","group1"
"user2","group1"
"user3","group1"

Так как созданный вами вручную CSV имеет пустые значения для столбца UserName, вас это не удивляет получаю ошибку.

Затем, с еще несколькими изменениями в вашем коде, это должно сработать:

Import-Module ActiveDirectory

# assuming the CSV uses commas as delimiter character. Otherwise, specify -Delimiter parameter
$list = Import-csv "\\ca23fs1\IT\Scripts\Active Directory\New-Hire\Account Setup\Users-Groups.csv"
foreach ($item in $list) {
    # if you are not sure the CSV actually contains valid data to work with, check it here first:
    if ([string]::IsNullOrWhiteSpace($item.UserName) -or [string]::IsNullOrWhiteSpace($item.Group)) {
        Write-Warning "Empty entry found in the CSV file"
    }
    else {
        Add-ADPrincipalGroupMembership -Identity $item.UserName -MemberOf $item.Group -Whatif
        # The DriveLetter must be a single, uppercase letter and the colon is required.
        Set-ADUser -Identity $item.UserName -HomeDirectory "Path" -HomeDrive 'H:' -WhatIf
    }
}

Надежда, которая помогает

23
задан casperOne 29 August 2012 в 16:00
поделиться

10 ответов

Во-первых, история изменений бессмысленна, используйте свой SCM для этого.

Оператор авторского права строго не требуется (авторское право является автоматическим), 1, но если Вы опубликуете источник затем, вероятно, включая его, то как, будут чувствовать, будет safer2. Полное положение лицензии, вероятно, было бы лучше в отдельном файле и затем ссылаемое (это - то, что Повышение делает).

1 Википедия имеет разумную сводку, но действительно необходимо послушать собственный юридический совет.

2 Особенно адвокатами, избегающими рискованных действий.

20
ответ дан 29 November 2019 в 01:43
поделиться

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

9
ответ дан 29 November 2019 в 01:43
поделиться

Я работаю в очень крупной корпорации программного обеспечения со многими много странных стандартов.

Это не один из них. Мы не обязаны добавлять любые заголовки или нижние колонтитулы к нашему исходному коду. Авторское право не должно быть указано на каждом файле класса. не говоря уже о пересмотре, которые обрабатываются любой доступной системой управления управления исходным кодом.

4
ответ дан 29 November 2019 в 01:43
поделиться

В компании, где я проходил стажировку, мы использовали эти стандартные заголовки комментариев во всех исходных файлах - парень, они меня раздражали. Каждый раз, когда мне приходилось читать новый файл исходного кода, мне приходилось прокручивать на 1 или 2 длины экрана вниз из-за всей истории изменений каждого файла. За те 6 месяцев, что я провел там, я никогда не использовал историю изменений и никогда не видел никого, кто это делал.

Мое личное мнение заключается в том, что вы не должны размещать вещи, которые вам редко понадобятся в таком месте. Вы должны иметь историю изменений и тому подобное где-то, конечно, но это должно быть где-то, что вы могли бы посмотреть, если вам это действительно нужно. Может быть, в нижнем колонтитуле, если вы настаиваете на встраивании его в исходные файлы?

Стандартные комментарии заголовка - это боль, и они должны быть ОЧЕНЬ минималистичными или даже лучше отсутствовать. Бросьте этот огромный ASCII-арт в нижний колонтитул или в файл readme, мне все равно, но, пожалуйста, оставьте мой заголовок в покое :))

Вы думаете, что Google был бы успешным, если первые 800 пикселей вашего результата поиска был заполнен огромным логотипом Google и заявлениями об авторских правах? : P

4
ответ дан 29 November 2019 в 01:43
поделиться

Интересный видеть, что Google требует уведомления об авторском праве на их источнике C++. Это всегда казалось лишним мне, особенно учитывая файлы будет (надо надеяться!) быть сохраненным и также находятся в Управлении исходным кодом, в случае, если сражение авторского права следует. Я также не уверен в брендинге источника с именем автора: другие люди должны попросить разрешение редактировать/использовать файл?!

Управление исходным кодом определенно избавляет от необходимости нижний колонтитул истории изменений и странной практики, которую я засвидетельствовал людей, комментирующих старый код и оставляющих его там! Хорошее программное обеспечение SCM позволит Вам просмотреть версии файла и обеспечить сравнение версии так или иначе. Хороший вопрос :)

4
ответ дан 29 November 2019 в 01:43
поделиться

Требование к истории изменений в заголовке может быть перенесено до того, как будет создана система истории изменений. Я работал с системами, где комментарии делались вручную и создавали ложные изменения в системе контроля версий!

Там, где я сейчас работаю, авторские права и история изменений не требуются в верхних или нижних колонтитулах файлов кода.

2
ответ дан 29 November 2019 в 01:43
поделиться

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

История изменений может быть полезна, но очень ограничена. При попытке сделать запись каждой точки с запятой или оператора, Вы изменяетесь, это собирается становиться старым очень скоро. Кроме того, история изменений не дает Вам, много детализирует на том, что точно изменил конкретный автор. Это скорее, кто был здесь и сделал что-то.

1
ответ дан 29 November 2019 в 01:43
поделиться

Нет необходимости претендовать на авторское право (зависит от юрисдикции). У вас обычно есть авторские права на вашу работу автоматически.

Для кода в рамках сотрудничества всегда приятно знать, как и что было сделано в исходном файле.

Я никогда не видел внутренний код без какой-либо комбинации заголовка / нижнего колонтитула.

1
ответ дан 29 November 2019 в 01:43
поделиться

Если это приходит к корпоративным стандартам, у нас нет его вообще. Но несмотря на это мы добавляем оператор авторского права и контактные данные в начале каждого файла, когда этот файл, как предполагается, распределяется или, как предполагают, используется другими средствами. Это помогает в сборе обратной связи.

1
ответ дан 29 November 2019 в 01:43
поделиться

Многие из этих вещей - историческое похмелье. Но это не значит, что это бесполезно.

Комментировать изменения в файле довольно бессмысленно, файл перестал быть единицей организации кода много лет назад. Я помещаю заголовки в свои функции, но это объясняет назначение функции / метода (плюс это облегчает сканирование кода). Я также поместил краткие истории изменений в эти заголовки функций ... не потому, что история изменений в коде необходима, а потому, что системы SCM не совершенны, и я видел, как базы данных SCM были потеряны раньше. Это как резервные копии - катастрофа должна случиться с вами только один раз, прежде чем вы начнете беспокоиться об этом ежедневно.

Мои приятели на работе сводят меня с ума, потому что они неукоснительно полагаются на СКМ, чтобы отслеживать свои изменения, но также не помещают надлежащие комментарии в СКМ , . Поэтому, когда происходит неизбежный пост-проблемный анализ ошибок управления, им приходится часами сидеть, пытаясь выяснить , почему они внесли данное изменение три года назад.

1
ответ дан 29 November 2019 в 01:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: