Скрипт входа в систему с использованием сети * / delete / yes

5683
Francis Batalla

Я пытаюсь избавиться от всех подключенных вручную сетевых дисков на всех рабочих станциях в моем домене. Я хочу, чтобы сопоставленные диски нашего конечного пользователя отображались исключительно через GPO (GPO уже есть).

Я пытаюсь написать скрипт, который будет:

  1. Разархивируйте все сетевые диски при входе пользователя
  2. Запуск gpupdate /fдля повторного сопоставления дисков на основе примененного объекта групповой политики

Я планирую применить эту политику сценариев входа в систему только на несколько недель, пока не смогу проверить, что все подключенные вручную диски исчезли.

Вот содержимое моего пакетного скрипта:

REM Delete all mapped drives net use * /del /y  REM force a group policy update to map all drives according to GPO's. gpupdate /force   REM create a directory to verify the script is actually running. mkdir %USERPROFILE%\test 

Я поместил этот скрипт в каталог NETLOGON на контроллере домена. Сценарий запускается, как предполагалось, если запускать его вручную из этого каталога Однако при применении в качестве сценария входа эта net use /delete /yesкоманда, похоже, не работает. Я проверил, что скрипт действительно работает во время входа в систему с mkdir %USERPROFILE%\test.

Я даже пытался перенаправить вывод первой команды net use * /del /y > result.txtи вывод получился как

«В списке нет записей»

Есть ли какая-то причина, по которой мой скрипт работает, когда я запускаю его вручную, а не как скрипт входа?

Сервер: Windows 2012R2
Хост: Windows 10

1
Это может быть слишком рано. Попробуйте поставить задержку в сценарии на несколько минут. [ping] (http://www.robvanderwoude.com/wait.php#PING) показывает, как добавить задержку с помощью ping. DavidPostill 8 лет назад 0
Это не отвечает на ваш вопрос, но вы можете запустить сценарий отмены сопоставления как сценарий выхода из системы. Таким образом, вы не конкурируете с GPO, сопоставляющим диски, и диски должны быть сопоставлены при выходе из системы (это означает, что они существуют, и вы можете отключить их отображение). Patrick Seymour 8 лет назад 2
@DavidPostill Я только что попытался добавить сон 300 перед командой unmap, а другой сон 100 перед gpupdate / f. В выводе по-прежнему говорится: «В списке нет записей». Francis Batalla 8 лет назад 0
@PatrickS. Я переключил скрипт для запуска при выходе из системы. Кроме того, я сократил сценарий, чтобы он содержал ТОЛЬКО команду unmapping drives и проверку запуска сценария (отправка вывода в текстовый файл). Мои диски все еще остаются подключенными. Любые другие предложения? Francis Batalla 8 лет назад 0
Мой комментарий не был задуман как ответ, просто предложение о том, когда запускать скрипт. На самом деле, я попробовал то, что ты делаешь, и это сработало для меня на компьютере с Windows 10. Patrick Seymour 8 лет назад 0
Возможно, вы получаете разные пользовательские контексты, когда запускаете его вручную, а не в сценарии входа. (Например, «UAC» или «Запуск от имени администратора».) В одном контексте могут не отображаться диски, подключенные к другому. Ответ, перечисленный Knuckle-Dragger, может быть полезен здесь: http://superuser.com/questions/695035/windows-8-net-use-no-longer-works Josh 8 лет назад 0
Используете ли вы групповые политики для сопоставления дисков? Zalmy 8 лет назад 0
У меня была довольно похожая проблема с одним из моих сценариев входа. проверьте мой ответ здесь: http://serverfault.com/questions/768028/why-is-my-logon-script-not-mapping-any-drives - это сопоставление диска, а не удаление дисков, но вы можете попробовать похожий подход. SimonS 8 лет назад 0

2 ответа на вопрос

0
user759438

У меня только что возникла проблема с использованием net use g: / delete / yes в Windows 2012R2, это вызывало конфликты при отображении. Мое сопоставление дисков G сопоставлялось с другими серверами, и иногда появлялись дополнительные диски с сопоставлением z, которые были призраками. Это не было в пакетном скрипте

Если вы должны удалить сетевые диски до фактических сопоставлений с помощью общих ресурсов на сервере 2012R2, используйте net use g: / del (ТОЛЬКО) ... это будет работать на сервере 2012R2

MJ

Таким образом, вы говорите, что сначала запустите `NET USE G: / DELETE` и явно удалите все возможные сопоставленные буквы дисков, вместо использования звездочки для ввода всех букв дисков независимо от назначенной буквы диска, верно? Pimp Juice IT 7 лет назад 0
0
Daniel B

Если рассматриваемый пользователь является администратором, (не) сопоставление дисков с использованием сценариев не будет работать.

С UAC у вас есть два токена и сеансы входа в систему: один со всеми разрешениями («повышенные») и один только с ограниченными разрешениями. Сценарии, запускаемые объектами групповой политики, запускаются с полными разрешениями.

Сопоставленные диски отслеживаются за сеанс. Когда вы пытаетесь отобразить или удалить карты из сценариев входа / выхода, они будут доступны только для программ, работающих с повышенными правами. Explorer никогда не запускается с повышенными правами по умолчанию.

Вот больше информации непосредственно от Microsoft .

Чтобы обойти это, используйте следующий .regскрипт. После этого изменения в сопоставленных акциях повлияют как на полный, так и на ограниченный токен.

Windows Registry Editor Version 5.00  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "EnableLinkedConnections"=dword:00000001 

Это также исправляет ошибки при попытке запустить настройки (или другие вещи, которые работают с повышенными правами) с подключенных дисков.