Искам да картографирам ясен изглед на мрежово устройство в услуга на Windows.
Опитах с команда net use
, но тя не работи правилно.
как да картографирате мрежово устройство за Clearcase View в услуга на Windows?
Отговори (2)
Трябва да можете да изпълните същия вид команда от тази използвана, когато пътищата са твърде дълги, което е subst
:
subst X: c:\path\to\my\View # for snapshot view
subst X: M:\myView # for dynamic view
за да картографирате изглед към буква на устройство.
Това трябва да работи от услуга, при условие че:
- използвате вашия акаунт в Windows (а не „локалния системен акаунт“)
- динамичният изглед вече е стартиран (и видим в устройството за
M:\
MVFS
точка на монтиране)
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
net share P: /DELETE
и след това направете новото си споделяне към View2. Това може да се направи от скриптове в $PATH и лесно да се извика от DOS сесия.
- person VonC; 24.02.2010
subst
, а не net share
. Редактирах отговора.
- person VonC; 13.12.2011
Иска ми се този подход да работи, но наистина не е от услуга; Борих се с този проблем доста интензивно без резултат. Проблемът е двоен:
- От услуга на Windows, за да можете да картографирате устройства, видими за други потребители, трябва да „Влезте“ като акаунт „Локална система“ (по подразбиране) с набор от свойства „Взаимодействие с работния плот“.
- За да можете да говорите с 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“), което предполагам, че и вие сте се надявали.