Niektórzy użytkownicy nie mieli wpisanych parametrów
określających nazwę katalogu domowego, inni nie mieli przypisanego
profilu mandatoryjnego na swoje konta. Dlatego napisałem ten skrypcik
który poprawił błędy:
$strRoot = "LDAP://OU=studenci,dc=pjwstk,dc=edu,dc=pl"
$logname = "blo";
$logname += get-date -format "yyyyMMdd_hhmmss";
$logname +=".log";
$Root = New-Object DirectoryServices.DirectoryEntry $strROOT
$Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $root
#zla sciezka i home
$searcher.Filter = "(&(";
$searcher.Filter+= "(&(objectClass=User)(name=s*)(!(name=sT*))(!(homedrive=*))(!(objectClass=Computer)))";
$searcher.Filter+= "(&(objectClass=User)(name=s*)(!(name=sT*))(!(homedirectory=*))(!(objectClass=Computer)))";
$searcher.Filter+= "))";
$usersDir = $searcher.findAll();
$usersDir | out-file $logname
foreach ($user in $usersDir)
{
$de = New-Object DirectoryServices.DirectoryEntry $user.Path
$de.homedrive="z:"
$homename="\\zet\"+$user.Properties.name;
$de.homedirectory=$homename
$de.CommitChanges()
}
#Szukamy osoby bez profilu i wpisujemy profil mandatoryjny
$searcher.Filter = "(&(";
$searcher.Filter+= "(&(objectClass=User)(name=s*)(!(name=sT*))(!(profilePath=*))(!(objectClass=Computer)))";
$searcher.Filter+= "))";
$usersPro = $searcher.findAll();
$usersPro | sort-object -property Properties.name
$usersPro | out-file $logname
foreach ($user in $usersPro)
{
$de = New-Object DirectoryServices.DirectoryEntry $user.Path
$de.profilepath="c:\documents and settings\mandatory"
$de.CommitChanges()
}