Как вы импортируете файл CSV с пробелами в пути? - PullRequest
1 голос
/ 08 января 2020

Я довольно новичок в powershell, но я хочу импортировать CSV-файл, в котором есть столбец с именем «SamAccountName», и этот столбец содержит список учетных записей AD, которые необходимо переместить в подразделение отключенных пользователей. Основная проблема, с которой я сталкиваюсь, - это путь к файлу (очевидно, что в моем коде это не настоящий путь к файлу), он выдает ошибку из-за пробелов в пути к файлу. Как мне go исправить это без переименования файлов? Кроме того, если у вас есть какие-либо рекомендации для моего текущего кода, не стесняйтесь давать их мне, я всегда открыт для обратной связи.

Также есть бит "AD ACCOUNT NOT FOUND", потому что это автоматически сгенерированные csv и если у пользователя нет учетной записи, это то, что помещается в столбец.

#DECLARING VARIABLES
$csv = import-csv c:\example\file path\file.csv
$ou = "OU=Disabled Accounts,OU=Users,DC=MHC,DC=LOCAL"
$totalLines = 0
$notFound = 0
$found = 0

#SEARCHES CSV FOR THE SAMACCOUNTNAMES THEN MOVES THE ACCOUNTS
foreach ($c in $csv) {
  $totalLines++
    if ($c.SamAccountName -eq "AD ACCOUNT NOT FOUND!"){
        $notFound++
    } else {
        $c.SamAccountName
        write-host "Moving "$c.SamAccountName"..." -nonewline
        Get-ADUser $c.SamAccountName | Move-ADObject -TargetPath $ou | Set-ADObject $c.SamAccountName -replace @{msExchHideFromAddressLists=$true}
    write-host " Done" -foreground green
    $found++
    }
}

#JUST OUTPUTS EVERYTHING THAT IT DID
write-host
write-host "*************************************"
write-host "Process Complete"
write-host $found "Accounts moved" -foreground green
write-host $notFound "Accounts not found" -foreground red
write-host $totalLines "Lines processed" -foreground yellow

1 Ответ

4 голосов
/ 08 января 2020

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

$csv = import-csv "c:\example\file path\file.csv"
...