Имя: Пароль:
1C
 
Как расшарить папку на 98 (программно) ? (называется - приехали)
0 smaharbA
 
20.02.06
23:22
Никогда незадумывался как ее расшарить, ну могу расшарить, но как задать доступ, если он доменный ?
Не делал программно никогда для 98(небыло надобности), для NT/2000/2003/XP без проблем, если кому надо могу и скрипт дать, а вот для 98, если доступ на уровне пользователей, проблемм нет, и при доменном расшарить можно, но вот как добавить усера или группу, дошол до ручки, решил уж применить Verb для папки, но это уж полный дурдом...
1 Diter
 
20.02.06
23:41
Я тебе больше скажу - для многих (для меня в том числе) половина того, что ты тут описАл тоже дурдом.... ;)
2 smaharbA
 
20.02.06
23:55
(1) Да, проблемма у меня с изложением худо, может и найдется, кто в моем сумбуре что и поймет...
3 insider
 
20.02.06
23:55
(0) это не поможет? (прямого ответа нет, но...)
http://www.microsoft.com/technet/archive/win98/reskit/part2/wrkc08.mspx
4 smaharbA
 
21.02.06
00:01
+(0) Немного ошибся
"если доступ на уровне пользователей, проблемм нет"
надо читать как -
"если доступ на уровне ресурсов, проблемм нет"
(3) Хорошая статейка, но вроде немного не то, я уже когдато "баловался" с политикой для 98 (poledit) даже написал свой шаблон чтобы расшаривать папки, но таже беда выходит что и в (0), нет возможности получить Security...
5 insider
 
21.02.06
00:04
(4) глубоко не рыл эту тему, т.е. однозначно согласился с тем, что ограничивать можно только в NT и под NTFS. если средствами политики нельзя настроить доступ - тогда наверное его вообще нельзя настроить в 98-й
6 smaharbA
 
21.02.06
00:37
(5) Руками то он настраивается, выдается список объектов(пользователей и групп) с сервера(домена) и пожалуйста применяй, а вот программно как, ума не приложу, как говорил для NT все ясно, вот к примеру дает общий доступ на диск С называет его Root, для админов домена, полный...
MAXIMUM_CONNECTIONS=10
PERM_FULL=2032127
Name="Администраторы домена"
Domain="avangard.karat-e.ru"
set Trustee=GetObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").Spawninstance_
set account=getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Group.Name='" & name & "',Domain='" & Domain &"'")
set accountSID=getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_SID.SID='" & account.SID &"'")
Trustee.Domain=Domain
Trustee.Name=Name
Trustee.Properties_.item("SID")=accountSID.BinaryRepresentation
Set Services=GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!\\.\ROOT\CIMV2")
Set SecDescClass=Services.Get("Win32_SecurityDescriptor")
Set SecDesc=SecDescClass.SpawnInstance_()
Set ACE=Services.Get("Win32_Ace").SpawnInstance_
ACE.Properties_.Item("AccessMask")=Perm
ACE.Properties_.Item("AceFlags")=3
ACE.Properties_.Item("AceType")=0
ACE.Properties_.Item("Trustee")=Trustee
SecDesc.Properties_.Item("DACL")=Array(ACE)
Set Share = Services.Get("Win32_Share")
Set param=Share.Methods_("Create").InParameters.SpawnInstance_()
param.Properties_.Item("Access")=SecDesc
param.Properties_.Item("Description")="Только для админов"
param.Properties_.Item("Name")="Root"
param.Properties_.Item("Path")="C:\"
param.Properties_.Item("MaximumAllowed")=MAXIMUM_CONNECTIONS
param.Properties_.Item("Type")=0
Call Share.ExecMethod_( "Create", param )
...
А как такоеже для 98 сделать...?
7 insider
 
21.02.06
00:43
(6) даже не знаю... вышенаписанное уже выше моих знаний :)
8 insider
 
21.02.06
00:48
(6) похоже ищешь вчерашний день, а 98-й этого нет:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_securitydescriptor.asp
9 insider
 
21.02.06
00:48
"а 98-й этого нет"="в 98-й этого нет"
10 smaharbA
 
21.02.06
00:57
Дак знаю что этого нет, но ведь какимто методом она это делает, спсок получает и к шаре применяет его...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший