CIAO
Ho creato questo script:
ma ottengo questo errore:codice:# Creazione di un account sulla macchina locale. Clear-Host # Analizza i dati immessi da un utente. do { # Prede i dati da un utente. $UserName = Read-Host "Nome utente da creare" $FullName = Read-Host "Nome completo utente" $Password = Read-Host "Password utente" -AsSecureString $Password1 = Read-Host "Verifica password utente" -AsSecureString $GroupName = Read-Host "Inserire il gruppo di appartenenza dell'utente" # Converte in chiaro le due password criptate. $Password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password)) $Password1 = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password1)) # Verifica che tutti i dati immessi siano corretti. if ( # Verifica se il nome completo dell'utente e la sua password sono conformi. ($FullName -eq "") -or ($Password -eq "") -or ($Password -ne $Password1) -or # Controllo sull'esistenza del nome utente in una macchina locale. ((([adsi]"WinNT://$$env:computername,computer").children | ? {$_.psbase.schemaClassName -eq "User"} | Select -expand Name) -ccontains $UserName) -or # Controllo sulla validita' del nome utente. (($Username.length -lt 1) -or ($UserName -match '^\s|\s$|^(\.|\s)+$|.{21,}|[\\/"\[\]:\|<>\+=;,\?\*@]')) -or # Controllo sull'esistenza di un gruppo su una macchina locale. ((([adsi]"WinNT://$([Environment]::MachineName),computer").children | ? {$_.psbase.schemaClassName -eq "Group"} | Select -expand Name) -notcontains $GroupName) ) { Write-Host Write-Host "Immissione dati errata o nome utente '$UserName' gia' esistente o gruppo locale '$GroupName' non esistente. Prego, ripetere." Write-Host } } until ( # Verifica se il nome completo dell'utente e la sua password sono conformi. ($FullName -ne "") -and ($Password -ne "") -and ($Password -eq $Password1) -and # Controllo sull'esistenza del nome utente in una macchina locale. ((([adsi]"WinNT://$$env:computername,computer").children | ? {$_.psbase.schemaClassName -eq "User"} | Select -expand Name) -cnotcontains $UserName) -and # Controllo sulla validita' del nome utente. (($Username.length -ge 1) -and ($UserName -notmatch '^\s|\s$|^(\.|\s)+$|.{21,}|[\\/"\[\]:\|<>\+=;,\?\*@]')) -and # Controllo sull'esistenza di un gruppo su una macchina locale. ((([adsi]"WinNT://$([Environment]::MachineName),computer").children | ? {$_.psbase.schemaClassName -eq "Group"} | Select -expand Name) -contains $GroupName) ) # Impostazione della password di un account utente che sta per essere creato. ( ([adsi] "WinNT://$env:computername").Create("User", $UserName) ).SetPassword($password) # Impostazione del nome completo di un account utente che sta per essere creato. ( ([adsi] "WinNT://$env:computername").Create("User", $UserName) ).InvokeSet("FullName", $FullName) # Addiziona un account utente, che sta per essere creato, al gruppo desiderato. ( [adsi] "WinNT://$env:computername/$GroupName,group" ).Add( ( ([adsi] "WinNT://$env:computername").Create("User", $UserName) ).AdsPath ) # Creazione di un account e salvataggio delle informazioni relative al suo profilo. ( ([adsi] "WinNT://$env:computername").Create("User", $UserName) ).SetInfo()
Come mai?codice:Eccezione durante la chiamata di "Add" con "1" argomento/i: "Impossibile aggiun gere o rimuovere un nuovo membro dal gruppo locale perché il membro non esiste. " In D:\Users\xxx\Documents\Creazione_account_locali.ps1:60 car:60 + ( [adsi] "WinNT://$env:computername/$GroupName,group" ).Add <<<< ( ( ([adsi] "WinNT://$env:computername").Create("User", $UserName) ).AdsPath ) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI
GRAZIE
CIAO

Rispondi quotando