как да картографирате мрежово устройство за Clearcase View в услуга на Windows?

Искам да картографирам ясен изглед на мрежово устройство в услуга на Windows.
Опитах с команда net use, но тя не работи правилно.


person ankit    schedule 24.02.2010    source източник


Отговори (2)


Трябва да можете да изпълните същия вид команда от тази използвана, когато пътищата са твърде дълги, което е subst:

subst X: c:\path\to\my\View # for snapshot view
subst X: M:\myView # for dynamic view

за да картографирате изглед към буква на устройство.

Това трябва да работи от услуга, при условие че:

  • използвате вашия акаунт в Windows (а не „локалния системен акаунт“)
  • динамичният изглед вече е стартиран (и видим в устройството за M:\ MVFS точка на монтиране)
person VonC    schedule 24.02.2010
comment
Използването на вашия акаунт за картографиране на устройство работи ли все още под W7? Все още не ми се е налагало да го правя. - person Paul Nathan; 24.02.2010
comment
@Paul: не съм сигурен. В момента съм на работа, така че използвам Windows Xp. Освен това ClearCase все още не поддържа официално W7. - person VonC; 24.02.2010
comment
@VonC: Много вярно и добра гледна точка. Но мисля, че поддръжката на W7 излиза наистина скоро, така че е нещо, което трябва да се обмисли (освен ако, разбира се, кутията не може да бъде предназначена за XP за срока на живота на системата). - person Paul Nathan; 24.02.2010
comment
Здравей VonC, използвам услугата Windows в акаунта LocalSystem. картографирах прозрачен изглед на P: устройство на машина A. и искам да картографирам същия прозрачен изглед на машина B на P: устройство, но използвайки услугата Windows. как мога да направя това? Бях използвал командата „Net use“ и тя не проработи. - person ankit; 24.02.2010
comment
@ankit: това е моята гледна точка. Не трябва да използвате net use, а net share. Забележка: ако целта е да картографирате този път при всяка сесия на Windows, би било по-лесно да го капсулирате в скрипт и да копирате този скрипт в стартовата директория на вашия профил, за да правите споделянето всеки път, когато влезете. (C:\Document and Settings\MyLogin\Start Menu\Programs\Startup или C:\Users\MyLogin\Start Menu\Programs\Startup) - person VonC; 24.02.2010
comment
@Vonc: тук имам динамичен сценарий. това, което искам е, искам да картографирам различен изглед за приложението. Означава, че по някое време моето приложение ще има достъп до View1 и след като го завърши, може да поиска достъп до View2. И така, тук трябва да променя името на изгледа за същата потребителска сесия в услугата на Windows. - person ankit; 24.02.2010
comment
@ankit: бихте ли ми обяснили защо тук е необходима услуга за вдовици? Както и да е: за да премахнете съществуващо споделяне, просто направете net share P: /DELETE и след това направете новото си споделяне към View2. Това може да се направи от скриптове в $PATH и лесно да се извика от DOS сесия. - person VonC; 24.02.2010
comment
Сървърите за непрекъсната интеграция (CI) искат да работят като услуга на Windows е една от причините да са необходими. - person Garen; 13.12.2011
comment
Моделът „net share :“ е синтактично неправилен според Windows, някой наистина ли го е накарал да работи? - person Garen; 13.12.2011
comment
@Garen: добра точка, всъщност е subst, а не net share. Редактирах отговора. - person VonC; 13.12.2011

Иска ми се този подход да работи, но наистина не е от услуга; Борих се с този проблем доста интензивно без резултат. Проблемът е двоен:

  1. От услуга на Windows, за да можете да картографирате устройства, видими за други потребители, трябва да „Влезте“ като акаунт „Локална система“ (по подразбиране) с набор от свойства „Взаимодействие с работния плот“.
  2. За да можете да говорите с ClearCase, процесът на услугата на Windows трябва да „влезе“ като нормален потребител с достъп до ClearCase (напр. обикновено в групата atria).

Така че (1) и (2) са взаимно изключващи се, но трябва да направите и двете, но не можете. За (2), вероятно причината, поради която не можете да „Взаимодействате с работния плот“ и да картографирате устройства там, е, че ще ви трябва сесия за влизане/токен, който трябва да присъства, за да работят картографираните дискове --асоциирана сесия на потребител- -но услугите трябва да могат да се изпълняват без глава (никой не е влязъл в системата), където няма "сесия"/токен, който съществува.

Обърнете внимание, че начинът, по който Rational BuildForge решава това за ClearCase, е чрез създаване на изцяло нов дъщерен процес единствено, за да позволи на неговата услуга да говори с ClearCase:

Също така имайте предвид, че „сесията за влизане“ се идентифицира чрез уникален токен; това означава, че дори ако имате процес, работещ като желания от вас потребител (домейн\fred), който има достъп до ClearCase, ражда нов процес от там като същия потребител (домейн \fred) може да няма същия сесиен токен по подразбиране, в зависимост от това как е създаден (т.е. CreateProcess() срещу CreateProcessAsUser() срещу CreateProcessWithLogonW()), което прави още по-трудно да се справяте с инструменти, които не контролирате. За да демонстрирате това, опитайте да изпълните 'runas /user: "cmd /k \"net use\""' от команден ред и ще видите всичките си мрежови устройства, посочени като "Недостъпни"(!!).

Възможно е (въпреки че изрично не се препоръчва от Microsoft), с големи усилия, да накарате всичко това да работи, ако успеете по някакъв начин да имате винаги влязъл потребител, от който да получите токена на своята сесия, като описано тук:

стартиране на UAC процес с повишени права от неинтерактивна услуга (win32/.net/powershell)

В противен случай ще трябва да го емулирате, както прави BuildForge.

Вижте също:

За този вид проблем обикновено се сблъсквам с CI сървъри (CC.NET / Hudson / TeamCity), които работят като услуга на Windows. Това, което трябваше да направя, е да се уверя, че някъде преди да започне истинската ми „работа“, направих скрипт за картографиране на мрежови устройства чрез повторно картографиране по време на изпълнение или картографиране на M:\ към налична буква на устройство със subst (много досадно ), както VonC описва, което не е постоянно (дори ако използвате „net use /persistent:yes“), което предполагам, че и вие сте се надявали.

person Garen    schedule 12.12.2011