Публикуйте полезные команды, которые вы используете в своем сценарий входа в систему.
Вот некоторые из них:
подключите сетевой диск:
чистое использование v: \ fileserver \ apps
подключите сетевой принтер:
ЗапуститеDll32.EXE printui.dll, PrintUIEntry / in / n "\\ printserver \ Xerox DC1100 PCL"
удалить сетевой принтер:
ЗапуститеDll32.EXE printui.dll, PrintUIEntry / dn / q / n "\\ printserver \ HP LaserJet 2300"
отключить брандмауэр Windows:
брандмауэр netsh установить режим отключения
установить новую программу:
если не существует "C: \ Program Files \ Antivirus \" "V: \ Antivirus \ install.msi"
создать ярлык на рабочем столе пользователя:
скопируйте "V: \ shortcuts \ dictionary.lnk" "% USERPROFILE% \ Desktop"
Я мог бы проголосовать за это, но пусть будет так. Я всегда считал сценарии входа в систему чем-то вроде взлома и стараюсь использовать их только в крайнем случае. В наши дни существует так много способов управления системами и пользователями с помощью таких вещей, как групповая политика, настройки групповой политики и SCCM / SMS. Я имею в виду, всегда будут случаи, когда просто не найти лучшего способа сделать что-то. Но многие из приведенных до сих пор примеров можно легко выполнить без сценария входа в систему, такого как установка программного обеспечения и подключение сетевых дисков.
Вот один из моих любимых. У нас более 700 пользователей и различные подразделения и подгруппы, которым требуются собственные диски. В настоящее время мы отображаем на основе имени пользователя:
если% username% == [username] net use / delete Z: \
если% username% == [username] net use Z: \ servername \ share
другой - отображение домашних приводов:
чистое использование H: \ homeserver \% username% / persistent: да
Для сопоставления дисков мы фактически используем vbscript (фактически мы используем .vbs вместо файлов .bat независимо от сценариев входа в систему):
Установите WshNetwork = CreateObject ("WScript.Network") WshNetwork.MapNetworkDrive "H:", "\ fwmnas \ qip"
У меня также есть часть, необходимая для определения того, является ли ОС x86 или x64:
'Сначала определите, является ли ОС 32-битной или 64-битной
Установите WshShell = WScript.CreateObject ("WScript.Shell") X = WshShell.RegRead ("HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment \ PROCESSOR_ARCHITECTURE") Если X = "x86" Тогда
Это очень просто, но в основном у вас есть часть IF THEN ELSE, которая говорит, что если он 32-битный, сделайте это, иначе сделайте это ... Я просто пропустил остальную часть кода. Если вас интересует больше, дайте мне знать.
Я уже задокументировал свой сценарий входа в систему kix, который выполняет примерно то же самое, что и вам здесь: http://thisishelpful.com/kix-login-script-map-printers-network-drives-setting.html.
Взгляните на него и дайте мне знать, если у вас есть другие требования. Я лично обнаружил, что KIX действительно легко понять, и для системного администратора, который никогда раньше не видел языка сценариев KIX, вы обнаружите, что это очень легко и прямо, когда вы просматриваете команды.
В IFMEMBER.EXE Утилита старая, но работает со всеми версиями Windows до 7 и чрезвычайно полезна для условных сценариев на основе членства в группах AD.
IFMEMBER Marketing | net use m: \\\server\marketingshare
или
IFMEMBER TestUsers | cmd /c t:\scripts\runsomescript.cmd
ссылка на сайт: http://www.microsoft.com/download/en/details.aspx?id=7895
Возможно, сейчас есть лучший способ сделать это, но у меня есть политика, применяемая только к моей серверной OU, которая запускает bginfo.exe с параметрами:% logonserver% \ netlogon \ bginfo \ server.bgi / timer: 0
В качестве фона добавляется несколько вариантов выбора, чтобы упростить идентификацию удаленных сеансов.
Это было сделано очень давно, но если вы не используете DFS или что-то подобное, вы можете найти для этого какое-то применение (если у вас есть идентичные сценарии, запущенные в разных местах, чтобы файлы запускались или копировались с правильных локальных серверов):
Dim WSHShell,strRegKey, DFS, DCName
Set WSHShell = WScript.CreateObject("WScript.Shell")
strRegKey="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\DCName"
DCName = lcase(WSHShell.RegRead(strRegKey))
If DCName = "\\NADC01.domain.com" or DCName = "\\NADC02.domain.com" then
DFS = "NAsite"
ElseIf DCName = "\\UKDC01.domain.com" or DCName = "\\UKDC02.domain.com" then
DFS = "UKsite"
Else
DFS = "anotherSite"
End If
WshShell.Run("\\domain\" & DFS & "\DfsRoot\share\script.cmd")