рдЕрдиреБрднрд╡реА рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ -5, рдпрд╛ "рд╕рдореВрд╣ рдЦреБрд╢рд┐рдпрд╛рдБ!"

рдЫрд╡рд┐ "рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЫреЛрдЯреА рдЪреАрдЬрд╝реЛрдВ" рдХреА рдирд┐рд░рдВрддрд░рддрд╛ред рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ: рдПрдХ , рджреЛ , рддреАрди , рдЪрд╛рд░ ред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдо рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдореВрд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд╛рдиреАрдп рд╕рдореВрд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ - рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рднреА рд╡рд┐рд╡рд░рдг рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдореВрд╣реЛрдВ рдХреА рдЖрдо рддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрдирдХреА рдорджрдж рд╕реЗ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ "рдЙрдкрд╣рд╛рд░" рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рд╕рдореВрд╣ рдореЗрдВ рд╣реИ, рдЙрдирдХреЗ рдмреАрдЪ RDP_ рдЙрдкрд╕рд░реНрдЧ рд╡рд╛рд▓реЗ рд╕рдореВрд╣ рдвреВрдВрдврддрд╛ рд╣реИ, рдФрд░ рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ RDP рд╢реЙрд░реНрдЯрдХрдЯ рдмрдирд╛рддрд╛ рд╣реИ:
рдирддреАрдЬрддрди, рдХрд┐рд╕реА рдХреЛ 1 рд╕реА рд╕рд░реНрд╡рд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЙрд╕реЗ рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЙрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдлрд┐рд░ рд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рджреВрд░рд╕реНрде рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдФрд░ RDP_GroupName рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд▓реЗрдЦрд╛рдВрдХрди рдЯрд░реНрдорд┐рдирд▓ рд╕рд░реНрд╡рд░ рддрдХ рджреВрд░рд╕реНрде рдкрд╣реБрдБрдЪ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

' RDP- , .
' - RDP_ Description , RDP-
' AD- RDP_1C- Server1.domain.local Desription
' - , .
' RDP- .
On Error Resume Next
Set wshShell = WScript.CreateObject("WScript.Shell")
Set m_FSO = CreateObject("Scripting.FileSystemObject")

' AD
Set objSysInfo = CreateObject("ADSystemInfo")
ADSPath = "LDAP://" & objSysInfo.UserName
Set objUser = GetObject(ADSPath)
ShortUserName = objUser.SamAccountName
DomainName = objSysInfo.DomainShortName

'
DesktopPath = wshShell.SpecialFolders("Desktop")
LevelCount = 0
MaxLevelCount = 4
Status = CheckGroups(ADSPath)

'
'============ Function GetPrefixNameGroup ============
Function GetPrefixNameGroup(sString)
' Trim prefix of name group
Dim TempString
TempString = Left(sString, InStr(sString, "_"))
GetPrefixNameGroup = TempString
End Function
'=====================================================
'============ Function GetLinkNameGroup ============
Function GetLinkNameGroup(sString)
' Trim LinkName of name group
Dim TempString
TempString = Mid(sString, InStrRev(sString, "_")+1)
GetLinkNameGroup = TempString
End Function
'=====================================================
'============ Function Create RdpFile ============
Function CreateRDPFile(sString, sName)
spath = DesktopPath & "\" & sString & ".rdp"
' - - '
If m_FSO.FileExists(sPath) or m_FSO.FolderExists(sPath) Then
m_FSO.DeleteFile (sPath),1
End If
Set RDPFile = m_FSO.CreateTextFile (spath, True)
RDPFile.writeline ("screen mode id:i:2")
RDPFile.writeline ("use multimon:i:0")
RDPFile.writeline ("desktopwidth:i:1280")
RDPFile.writeline ("desktopheight:i:1024")
RDPFile.writeline ("session bpp:i:16")
RDPFile.writeline ("winposstr:s:0,1,0,0,800,600")
RDPFile.writeline ("compression:i:1")
RDPFile.writeline ("keyboardhook:i:2")
RDPFile.writeline ("audiocapturemode:i:0")
RDPFile.writeline ("videoplaybackmode:i:1")
RDPFile.writeline ("connection type:i:2")
RDPFile.writeline ("displayconnectionbar:i:1")
RDPFile.writeline ("disable wallpaper:i:1")
RDPFile.writeline ("disable full window drag:i:1")
RDPFile.writeline ("allow desktop composition:i:0")
RDPFile.writeline ("allow font smoothing:i:0")
RDPFile.writeline ("disable menu anims:i:1")
RDPFile.writeline ("disable themes:i:1")
RDPFile.writeline ("disable cursor setting:i:0")
RDPFile.writeline ("bitmapcachepersistenable:i:1")
' '
RDPFile.writeline ("full address:s:" & sName)
RDPFile.writeline ("audiomode:i:2")
RDPFile.writeline ("redirectprinters:i:0")
RDPFile.writeline ("redirectcomports:i:0")
RDPFile.writeline ("redirectsmartcards:i:0")
RDPFile.writeline ("redirectclipboard:i:1")
RDPFile.writeline ("redirectposdevices:i:0")
RDPFile.writeline ("redirectdirectx:i:1")
RDPFile.writeline ("autoreconnection enabled:i:1")
RDPFile.writeline ("authentication level:i:0")
RDPFile.writeline ("prompt for credentials:i:0")
RDPFile.writeline ("negotiate security layer:i:1")
RDPFile.writeline ("remoteapplicationmode:i:0")
RDPFile.writeline ("alternate shell:s:")
RDPFile.writeline ("shell working directory:s:")
RDPFile.writeline ("gatewayhostname:s:")
RDPFile.writeline ("gatewayusagemethod:i:4")
RDPFile.writeline ("gatewaycredentialssource:i:4")
RDPFile.writeline ("gatewayprofileusagemethod:i:0")
RDPFile.writeline ("promptcredentialonce:i:1")
' Domain\Username'
RDPFile.writeline ("username:s:" & DomainName& "\"& ShortUserName)
RDPFile.writeline ("drivestoredirect:s:")
RDPFile.close
End Function
'=====================================================
'============ Function CheckGroups ===================
Function CheckGroups(ADSPath)
Dim objUser, arrMemberOf
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
LevelCount = LevelCount + 1
if ( LevelCount >= MaxLevelCount) then
LevelCount = LevelCount - 1
return LevelCount
end If
Set objUser = GetObject (ADSPath)
On Error Resume Next
arrMemberOf = objUser.GetEx("memberOf")
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
LevelCount = LevelCount - 1
return LevelCount
Else
For Each Group in arrMemberOf
ADSGroup = "LDAP://" & Group
CheckGroups(ADSGroup)
WScript.Echo "Extra=" & LevelCount
Set objGroup = GetObject ( ADSGroup )
If(GetPrefixNameGroup(objGroup.CN) = "RDP_") Then
Set objGroup = GetObject ( "LDAP://" & Group)
LinkName = GetLinkNameGroup(objGroup.CN)
LinkServer = objGroup.description
LinkResult = CreateRDPFile (LinkName, LinkServer)
end If
Next
End If
LevelCount = LevelCount - 1
End Function
'=====================================================

рдФрд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реАрдЯ рджреНрд╡рд╛рд░рд╛ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ "рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдХреА рдзрд╛рд░реНрдорд┐рдХ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛" рдХреЛ рдЙрдХрд╕рд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ рджреЛ AD рд╕реЗ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реЛрдЧрд╛ред
рдЫрд╡рд┐
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП 1 рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯрд░реНрдорд┐рдирд▓ (рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ) рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд╣реА рдЪрд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрде рд╕реНрдерд╛рдиреАрдп рд╣реИрдВред рдЖрдзрд╛рд░ рдХреЗ рдЕрдиреНрдп рднрд╛рдЧ (рд╡реЗрддрди) рдХреЗ рд╕рд╛рде - рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЪрд▓рд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдорд╣рддреНрд╡рд╣реАрди рд╣реИ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ - рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ 1C7.7 рдФрд░ 1C8.X рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ, рдХреНрд░рдорд╢рдГ, рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рд╕реАрдзреЗ 1 рд╕реА рдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред

рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдП

рдкреАрдПрд╕ рдореБрдЭреЗ рдмрддрд╛рдУ Habr├й рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреЛрд╕реНрдЯ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In122200/


All Articles