Windows Server - příkazový řádek - nastavení sdílení
Protože jsem mateřské mléko pil od Novellu, bojuju se správou Windows serveru a zatím je to víc škody než užitku
Pomůže mi někdo prosím vrátit sdílení jednotlivým uživatelům?
Předpokládám, že to zvládne nějaký řádkový příkaz (protože odklikávat to 224x fakt nebudu).
Situace: Ve složce data jsou podsložky - uživatelské adresáře - stejné názvy jako jméno uživatele. Potřebuji všem těmto podsložkám přidat sdílení právo čtení a zápisu pro stejnojmenného uživatele.
Poradíte mi někdo prosím správnou syntaxi toho příkazu?
Něco jako třeba: SETSHARE jmeno_uzivatele jmeno_slozky read write
Dávkový soubor, kde ho zavolám pro každou složku zvlášť už zvládnu...
Edit: možná nezvládnu, koukám, že PowerShell je komplikovanější...
Takže prosím poraďte, jak všem uživatelům přidělit hromadně práva číst a zapisovat do jejich složek?
No nic, snad jsem to našel správně...
cacls jmeno_slozky/G jmeno_uzivatele:f
Chjo, proč je to ve windowsech tak komplikovaný...
Jen tak pro úplnost, jak k tomu došlo - chtěl jsem přidat právo jednomu uživateli ke všem těmto složkám. V klikacím okně jsem to tedy nastavil na tu složku data a když to po mně chtělo aplikovat na podsložky, tak jsem to povolil - no a ono to ze všech podsložek odstranilo ty lokální sdílení jednotlivým uživatelům...
Tak mám opět problém. Asi tomu stále nerozumím.
Když chci přidat dalšího uživatele, aby měl přístup do nějaké složky, příkaz cacls mi bohužel to předchozí nastavení smaže a dá tam jen toho nového uživatele.
Poradí nekdo prosím, jak to mám udělat?
Pro ilustraci:
d:\data\
\jarda
\pepa
\honza
pomocí příkazů
cacls jarda /G jarda:f
cacls pepa /G pepa:f
cacls honza /G honza:f
nastavím, aby uživatelé mohli do svých složek
pak potřebuji přidat, aby k jardovi a pepovi mohl ještě patrik, tak spouštím:
cacls jarda /G patrik:f
cacls pepa /G patrik:f
což mi bohužel odstraní sdílení uživatelům jarda a pepa
Evidentně to dělám špatně, poradí někdo, jak to mám udělat správně?
Standardně se práva přepisují, pokud je chceš editovat, použij ještě přepínač /E
Přepínač /E zabral děkuji...
Sdílení se nastavuje pomocí NET SHARE
CACLS nastavuje lokální souborová práva (to samozřejmě není na škodu). Pokud k tomu mají uživatelé přistupovat zvenku buď bude nasdílená celá složka data nebo jim můžeš nasdílet jen ty adresáře např. v Logon skriptu namapované jako disk. Pokud máš AD, pak se to jmenuje "domovská složka"
Bohužel ten server nám instalovala externí firma a já tomu zatím moc nerozumím, jen se to snažím udržovat. Externí firma už nespravuje, byla drahá.
Složku data mají nasdílenou všichni členové zvlášť vytvořené skupiny pro čtení (tomu taky moc nerozumím) ale když jsem to zkoušel zrušit, přestaly se jim automaticky mapovat disky po přihlášení (ty se jim mapují rootem do té jejich stejnojmenné složky). Domovskou složku v AD nastavenou nemají. Až najdu chvíli, pokusím se to nastudovat, momentálně vařím z vody, takže děkuji za každou pomoc.
Domovska slozka se vytvari automaticky s vytvorenim uctu. Ma nastaven lokalni pristup pouze pro toho uzivatele a je mapovana jako jeden z jeho disku.
Ty vlastne delas to same, ale rucne.
Postupujes spravne - musis nastavit lokalni prava - CACLS
Pak budes moct namapovat uzivatelum slozky jako disky
Powershellem :)
Tohle mám z hlavy, nepouštěl jsem to ale mohlo by to rovnou fungovat ...
$strGrant = "/grant"
$strRemove = "/remove"
$strIcaclsPrms1 = ":(OI)(CI)(F)"
$strIcaclsPrms2 = ":(OI)(CI)(IO)(F)"
$strIcaclsPrms3 = ":(OI)(CI)(RX)"
$strIcaclsPrms4 = ":(RX)"
$strIcaclsPrms5 = ":(OI)(CI)(M)"
$strIcaclsPrms6 = ":(OI)(CI)(RX,W)"
$strIcaclsPrms7 = ":(OI)(CI)(RX,W,DC)"
$folders = get-childitem d:\data |?{$_.psiscontainer} |select name,fullname
foreach {$folder in $folders}
{
$KOMU = $folder.name
$Cesta = $folder.fullname
Invoke-Expression -Command ('icacls $Cesta $strGrant "${KOMU}${strIcaclsPrms1}"')
}
edit: $komu možná bude třeba modifikovat na domena\komu (icacls asi nevyhleda username bez urceni domeny, resp. bude to hledat v local users na serveru a tam to asi nemáš)