Я использовал бы групповую политику для добавления принтеров, если это возможно. Если необходимо использовать vbs, вот vbscript, который мы используем, чтобы сделать различные вещи определенным группам (добавьте принтеры, добавьте сетевые диски, и т.д.), мы устанавливаем этот сценарий для выполнения через групповую политику за всеми пользователями.
Dim strComputerName
Dim strUserName
Dim strDomainName
Dim wshShell
Dim bForce
Dim bUpdateProfile
Dim adsobj
bForce = true
bUpdateProfile = true
on error resume next
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Set wshShell = WScript.CreateObject("WScript.Shell" )
do while wshNetwork.username = ""
WScript.Sleep 250
loop
strComputerName = wshNetwork.computerName
strUserName = wshNetwork.userName
strDomainName = wshNetwork.userDomain
adspath = "WinNT://" & strDomainName & "/" & strUserName
set adsobj = getobject(adspath)
'========= MAKE CHANGES BELOW =========
cRemoveExistingDrives()
'=== Map company-wide drives and printers
cMapNetworkDrive "S:", "\\server\Shared$"
cAddNetworkPrinter "\\server\HP3050"
'=== Map Group Specific Drives and printers
for each prop in adsobj.groups
select case UCASE(prop.name)
case "ACCOUNTING USERS"
cAddNetworkPrinter "\\server\AcctngPrinter"
wshNetwork.SetDefaultPrinter "AcctngPrinter"
cMapNetworkDrive "X:", "\\server\accounting$"
case "HR USERS"
cAddNetworkPrinter "\\server\HRPrinter"
wshNetwork.SetDefaultPrinter "HRPrinter"
cMapNetworkDrive "Y:", "\\server\hr$"
end select
next
'========= NO CHANGES BELOW THIS LINE ===========
Sub cRemoveExistingDrives()
on error resume next
Dim colNetDrives
Set colNetDrives = wshNetwork.EnumNetworkDrives
If colNetDrives.Count = 0 then
'No drives
Else
For x = 0 to colNetDrives.count-1 Step 2
wshNetwork.RemoveNetworkDrive colNetDrives.Item(x), bForce, bUpdateProfile
Next
End If
End Sub
Sub cMapNetworkDrive(strDriveLetter, strPath)
on error resume next
wshNetwork.RemoveNetworkDrive strDriveLetter, bForce, bUpdateProfile
wshNetwork.MapNetworkDrive strDriveLetter, strPath
End Sub
Sub cAddNetworkPrinter(strPath)
on error resume next
wshNetwork.AddWindowsPrinterConnection strPath
End Sub
Использование липкого бита в каталоге позволяет пользователям создавать новые файлы в этом каталоге. Они также могут переименовывать и удалять свои файлы, но не файлы других пользователей. Это используется в / tmp
и нескольких других каталогах.
Использование chmod 1775 / path / to / directory
позволит пользователям в группе этого каталога создавать новые файлы в этот каталог, но они не могут удалять файлы друг друга.