Script de PowerShell que no hace nada
tito
-
zucrezel Mensajes publicados 30 Estado Miembro -
zucrezel Mensajes publicados 30 Estado Miembro -
Hola a todos y a todas
Tengo un pequeño problema, ¿o realmente es uno?
He seguido un tutorial en la red para la importación de un archivo csv en PowerShell con el fin de crear las cuentas de las personas. No veo ningún mensaje de error, pero aún así las cuentas no se están creando. ¿Tienen alguna idea de dónde podría venir esto, por favor?
Gracias de antemano a quien pueda iluminarme... :s
Import-Module ActiveDirectory
{
$Users = Import-Csv -Delimiter ";" -Path "C:\Users\adm-tito\Desktop\test.csv"
foreach($temp in $Users) { }
$upn = $temp.SamAccountName + "Nougatine.global"
$name = $temp.firstname + " " + $temp.Lastname
$fName = $temp.Firstname
$SAM = $temp.SAMAccountName
$password = $temp.Password
$description = $temp.Description
$ou = $temp.OU
try{
New-ADUser -Name $name -SamAccountName $SAM -UserPrincipalName $upn -DisplayName $name -GivenName $fName -SurName $temp.Lastname -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PasswordNeverExpires $true -Description $description -Path $ou
echo "Usuario añadido: $name"
} catch {
echo "Usuario no añadido: $name"
}
}
Configuración: Windows / Chrome 59.0.3071.115
Tengo un pequeño problema, ¿o realmente es uno?
He seguido un tutorial en la red para la importación de un archivo csv en PowerShell con el fin de crear las cuentas de las personas. No veo ningún mensaje de error, pero aún así las cuentas no se están creando. ¿Tienen alguna idea de dónde podría venir esto, por favor?
Gracias de antemano a quien pueda iluminarme... :s
Import-Module ActiveDirectory
{
$Users = Import-Csv -Delimiter ";" -Path "C:\Users\adm-tito\Desktop\test.csv"
foreach($temp in $Users) { }
$upn = $temp.SamAccountName + "Nougatine.global"
$name = $temp.firstname + " " + $temp.Lastname
$fName = $temp.Firstname
$SAM = $temp.SAMAccountName
$password = $temp.Password
$description = $temp.Description
$ou = $temp.OU
try{
New-ADUser -Name $name -SamAccountName $SAM -UserPrincipalName $upn -DisplayName $name -GivenName $fName -SurName $temp.Lastname -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PasswordNeverExpires $true -Description $description -Path $ou
echo "Usuario añadido: $name"
} catch {
echo "Usuario no añadido: $name"
}
}
Configuración: Windows / Chrome 59.0.3071.115
Enlaces relacionados:
- Ejecutar scripts de PowerShell a través de HTML - AYUDA
- PowerShell: Abrir el explorador de archivos para seleccionar un archivo
- Script para abrir una conexión SFTP en Filezilla
- Iniciar PowerShell desde un .bat
- Caracteres acentuados cambiados en un script llamado en é
- Modificar las GPO utilizando un script de PowerShell
8 respuestas
Hola,
Ya:
... Has colocado mal tu llave de cierre...
--
Atentamente,
Jordane
Ya:
foreach($temp in $Users) { } ... Has colocado mal tu llave de cierre...
--
Atentamente,
Jordane
Hola Jordan, Gracias por tomarte el tiempo para ocuparte de mi problema, bueno, cuando lo quito para ponerlo al final me dice que me falta una llave en el lugar donde lo quito... "Me sale Cuerpo de la instrucción faltante en el bucle foreach".
Entonces no creo que sea eso. ¿Ves algo más?
Entonces no creo que sea eso. ¿Ves algo más?
También tienes una llave de apertura de más al principio de tu script, creo....
prueba esto:
NB: En PowerShell .. usamos Write-Host y no echo.
prueba esto:
Import-Module ActiveDirectory $Users = Import-Csv -Delimiter ";" -Path "C:\Users\adm-tito\Desktop\test.csv" foreach($temp in $Users) { $upn = $temp.SamAccountName + "Nougatine.global" $name = $temp.firstname + " " + $temp.Lastname $fName = $temp.Firstname $SAM = $temp.SAMAccountName $password = $temp.Password $description = $temp.Description $ou = $temp.OU try{ New-ADUser -Name $name -SamAccountName $SAM -UserPrincipalName $upn -DisplayName $name -GivenName $fName -SurName $temp.Lastname -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PasswordNeverExpires $true -Description $description -Path $ou Write-Host "Usuario agregado: $name" } catch { Write-Host "Usuario no agregado: $name" } } NB: En PowerShell .. usamos Write-Host y no echo.
Hola, intenté lo que me dijiste y ahora tengo la siguiente línea roja:
"El término << "Write-Host" "Usuario no agregado: $name" >> no se reconoce como nombre de un cmdlet, función, archivo de script o programa ejecutable. Verifique la ortografía del nombre, o si existe una ruta de acceso, verifique que la ruta de acceso en la línea: 13 Carácter: 48
+ Write Host "Usuario no agregado: $name" <<<<
+ CategoryInfo: ObjectNotFound: <Write-Host"Util... agregado: $name"String> [], CommandNotFoundException
+ FullyQualifiedErrorId: CommandNotFoundException
¿Alguna idea?
"El término << "Write-Host" "Usuario no agregado: $name" >> no se reconoce como nombre de un cmdlet, función, archivo de script o programa ejecutable. Verifique la ortografía del nombre, o si existe una ruta de acceso, verifique que la ruta de acceso en la línea: 13 Carácter: 48
+ Write Host "Usuario no agregado: $name" <<<<
+ CategoryInfo: ObjectNotFound: <Write-Host"Util... agregado: $name"String> [], CommandNotFoundException
+ FullyQualifiedErrorId: CommandNotFoundException
¿Alguna idea?
Hola,
Dada la mensaje de error "Command NotFoundException", olvidaste el espacio en la línea 21 entre el nombre de la CmdLet (Write-Host) y su parámetro (lo escribiste bien en la línea 19).
Sin el separador de espacio, toda la línea 21 se considera como una CmdLet que no es reconocida por PowerShell.
línea 21 antes de la corrección:
después de la corrección:
Dada la mensaje de error "Command NotFoundException", olvidaste el espacio en la línea 21 entre el nombre de la CmdLet (Write-Host) y su parámetro (lo escribiste bien en la línea 19).
Sin el separador de espacio, toda la línea 21 se considera como una CmdLet que no es reconocida por PowerShell.
línea 21 antes de la corrección:
Write-Host"Usuario no agregado: $name"
después de la corrección:
Write-Host "Usuario no agregado: $name"
Hola zucrezel,
Te agradezco por prestar atención a mi caso. Solo hice un copiar y pegar de lo que me dieron. Gracias por la corrección :) Funciona digamos en parte porque ya no tengo el error, pero mis usuarios todavía no se crean y no veo por qué me ocurre esto. El script se ejecuta, pero al final tengo 12 "Usuario no añadido", que es el número de usuarios que intento añadir. ¿Podrías ver qué está mal, por favor?
De verdad, muchas gracias de nuevo por tu ayuda.
Te agradezco por prestar atención a mi caso. Solo hice un copiar y pegar de lo que me dieron. Gracias por la corrección :) Funciona digamos en parte porque ya no tengo el error, pero mis usuarios todavía no se crean y no veo por qué me ocurre esto. El script se ejecuta, pero al final tengo 12 "Usuario no añadido", que es el número de usuarios que intento añadir. ¿Podrías ver qué está mal, por favor?
De verdad, muchas gracias de nuevo por tu ayuda.