본문 바로가기
Windows Script Host

WshNetwork 개체

2023. 8. 17.

WshNetwork 개체

컴퓨터가 연결된 네트워크의 공유 리소스에 대한 액세스를 제공합니다.

주의

네트워크 공유와 네트워크 프린터에 연결할 때, 네트워크 공유와 네트워크 프린터에서 연결을 끊을 때, 네트워크 공유를 매핑하거나 제거할 때 또는 네트워크의 사용자에 대한 정보에 액세스할 때 WshNetwork 개체를 만듭니다.

다음 코드는 WshNetwork 개체를 사용하여 도메인 이름, 컴퓨터 이름 및 현재 컴퓨터 시스템의 사용자 이름을 표시합니다.

Sub DisplayUserInfo()
    Dim domainName As String
    Dim computerName As String
    Dim userName As String
    
    GetUserInfo domainName, computerName, userName
    
    MsgBox "도메인 이름: " & domainName & vbCrLf & _
           "컴퓨터 이름: " & computerName & vbCrLf & _
           "사용자 이름: " & userName
End Sub

Sub GetUserInfo(ByRef domainName As String, ByRef computerName As String, ByRef userName As String)
    Dim objNetwork As Object
    Set objNetwork = CreateObject("WScript.Network")
    
    domainName = objNetwork.UserDomain
    computerName = objNetwork.ComputerName
    userName = objNetwork.UserName
End Sub

속성

ComputerName Property

컴퓨터 시스템의 이름을 반환합니다.

Syntax

object.ComputerName

object : WshNetwork 개체입니다.

비고

ComputerName 속성에는 컴퓨터 시스템의 이름을 나타내는 문자열 값이 들어 있습니다.

다음 코드는 ComputerName 속성의 사용을 보여줍니다.

Sub GetComputerName()
    Dim objNetwork As Object
    Set objNetwork = CreateObject("WScript.Network")
    
    Dim computerName As String
    computerName = objNetwork.computerName
    
    MsgBox "컴퓨터 이름: " & computerName
End Sub

UserDomain Property

사용자 도메인 이름을 반환합니다.

Syntax

object.UserDomain

object : WshNetwork 개체입니다.

다음 코드는 UserDomain 속성의 사용을 보여줍니다.

Sub GetUserDomain()
    Dim objNetwork As Object
    Set objNetwork = CreateObject("WScript.Network")
    
    Dim userDomain As String
    userDomain = objNetwork.UserDomain
    
    MsgBox "사용자 도메인: " & userDomain
End Sub

userName Property

사용자의 이름을 반환합니다.

Syntax

object.UserName

object : WshNetwork 개체입니다.

다음 코드는 UserName 속성의 사용을 보여줍니다.

Sub GetUserName()
    Dim objNetwork As Object
    Set objNetwork = CreateObject("WScript.Network")
    
    Dim userName As String
    userName = objNetwork.userName
    
    MsgBox "현재 사용자 이름: " & userName
End Sub

메서드

AddPrinterConnection Method

원격 MS-DOS 기반 프린터 연결을 컴퓨터 시스템에 추가합니다.

Syntax

object.AddPrinterConnection(strLocalName, strRemoteName[,bUpdateProfile][,strUser][,strPassword])

object : WshNetwork 개체입니다.

strLocalName : 연결된 프린터에 지정할 로컬 이름을 나타내는 문자열 값입니다.

strRemoteName : 원격 프린터의 이름을 나타내는 문자열 값입니다.

bUpdateProfile : 선택적인 요소. 프린터 매핑이 현재 사용자의 프로필에 저장되어 있는지 여부를 나타내는 부울 값입니다. bUpdateProfile이 제공되고 그 값이 true이면 매핑은 사용자 프로필에 저장됩니다. 기본값은 false입니다.

strUser : 선택적인 요소. 사용자 이름을 나타내는 문자열 값입니다. 현재 사용자 외의 다른 사람의 프로필을 사용하여 원격 프린터를 매핑하는 경우 strUserstrPassword를 지정할 수 있습니다.

strPassword : 선택적인 요소. 사용자 암호를 나타내는 문자열 값입니다. 현재 사용자 외의 다른 사람의 프로필을 사용하여 원격 프린터를 매핑하는 경우 strUserstrPassword를 지정할 수 있습니다.

주의

AddPrinterConnection 메서드는 네트워크 프린터를 LPT1과 같은 MS-DOS 프린터 포트에 추가합니다. 이 메서드를 사용하여 원격 Windows 기반 프린터 연결을 추가할 수 없습니다. 원격 Windows 기반 프린터 연결을 추가하려면 AddWindowsPrinterConnection 메서드를 사용하십시오.

* 지금은 사용되지 않을것이므로 예제는 따로 만들지 않았습니다.

AddWindoPrinterConnection Method

Windows 기반 프린터 연결을 컴퓨터 시스템에 추가합니다.

Syntax

Windows NT/2000:
object.AddWindowsPrinterConnection(
strPrinterPath
)

Windows 9x/Me:
object.AddWindowsPrinterConnection(
strPrinterPath,
strDriverName[,strPort]
)

object : WshNetwork 개체입니다.

strPrinterPath : 프린터 연결의 경로를 나타내는 문자열 값입니다.

strDriverName : 드라이버 이름을 나타내는 문자열 값입니다. Windows NT/Windows 2000에서 사용하면 무시됩니다.

strPort : 선택적인 요소. 프린터를 연결할 프린터 포트를 지정하는 문자열 값입니다. Windows NT/Windows 2000에서 사용하면 무시됩니다.

비고

이 메서드를 사용하는 것은 제어판에 있는 프린터 옵션을 사용하여 프린터 연결을 추가하는 것과 비슷합니다. AddPrinterConnection 메서드와 달리 이 메서드를 사용하면 LPT1과 같은 특정 포트를 지정하지 않고도 프린터를 연결할 수 있습니다. 연결되지 않으면 오류가 발생합니다. Windows 9x/Me에서 AddWindowsPrinterConnection 메서드를 실행하려면 프린터 드라이버가 시스템에 미리 설치되어 있어야 합니다. 드라이버가 설치되어 있지 않으면 Windows는 오류 메시지를 반환합니다.

다음은 AddWindowsPrinterConnection 사용법을 보여줍니다.

Sub AddPrinterConnectionExample()
    Dim WshNetwork As Object
    Set WshNetwork = CreateObject("WScript.Network")
    
    ' \\서버이름\프린터이름 형식으로 프린터 연결
    WshNetwork.AddWindowsPrinterConnection "\\PrintServer\PrinterName"
    
    MsgBox "프린터가 추가되었습니다."
End Sub

EnumNetworkDrives Method

현재 네트워크 드라이브 매핑 정보를 반환합니다.

syntax

objDrives = object.EnumNetworkDrives

object : WshNetwork 개체입니다.

objDrives : 네트워크 드라이브 매핑 정보를 보유하는 변수입니다.

주의

EnumNetworkDrives 메서드는 컬렉션을 반환합니다. 이 컬렉션은 네트워크 드라이브 로컬 이름 및 이러한 로컬 이름과 연관된 UNC 이름과 같은 항목 쌍을 연결하는 배열입니다. 컬렉션에서 짝수로 번호가 매겨진 항목은 논리 드라이브의 로컬 이름을 나타냅니다. 홀수로 번호가 매겨진 항목은 연관된 UNC 공유 이름을 나타냅니다. 컬렉션에 있는 첫 번째 항목은 인덱스 0에 있습니다.

예제

아래 예제에서는 EnumNetworkDrives를 사용하여 네트워크 드라이브 목록을 생성하고 매핑 정보를 보여줍니다.

Sub NetworkInfo()
    Dim oDrives As IWshRuntimeLibrary.WshCollection
    Dim oPrinters As IWshRuntimeLibrary.WshCollection
    
    Set oDrives = EnumItems("EnumNetworkDrives")
    Set oPrinters = EnumItems("EnumPrinterConnections")
    
    Debug.Print "Network drive mappings:"
    PrintCollection oDrives
    
    Debug.Print
    Debug.Print "Network printer mappings:"
    PrintCollection oPrinters
End Sub

Function EnumItems(methodName As String) As IWshRuntimeLibrary.WshCollection
    Dim WshNetwork As IWshRuntimeLibrary.WshNetwork
    Set WshNetwork = New IWshRuntimeLibrary.WshNetwork
    Select Case methodName
        Case "EnumNetworkDrives"
            Set EnumItems = WshNetwork.EnumNetworkDrives
        Case "EnumPrinterConnections"
            Set EnumItems = WshNetwork.EnumPrinterConnections
    End Select
End Function

Sub PrintCollection(coll As IWshRuntimeLibrary.WshCollection)
    Dim i As Integer
    For i = 0 To coll.Count - 1 Step 2
        Debug.Print "Item " & coll.Item(i) & " = " & coll.Item(i + 1)
    Next i
End Sub

EnumPrinterConnections Method

현재 네트워크 프린터 매핑 정보를 반환합니다.

objPrinters = object.EnumPrinterConnections

object : WshNetwork 개체입니다.

objPrinters : 네트워크 프린터 매핑 정보를 보유하는 변수입니다.

주의

EnumPrinterConnections 메서드는 컬렉션을 반환합니다. 이 컬렉션은 네트워크 프린터 로컬 이름 및 이러한 로컬 이름과 연관된 UNC 이름과 같은 항목 쌍을 연결하는 배열입니다. 컬렉션에서 짝수로 번호가 매겨진 항목은 프린터 포트를 나타냅니다. 홀수로 번호가 매겨진 항목은 네트워크 프린터 UNC 이름을 나타냅니다. 컬렉션에 있는 첫 번째 항목은 인덱스 0에 있습니다.

예제

아래 예제에서는 EnumPrinterConnections 메서드를 사용하여 네트워크 프린터 목록을 생성하고 매핑 정보를 보여줍니다.(이전 코드와 똑같습니다.)

Sub NetworkInfo()
    Dim oDrives As IWshRuntimeLibrary.WshCollection
    Dim oPrinters As IWshRuntimeLibrary.WshCollection
    
    Set oDrives = EnumItems("EnumNetworkDrives")
    Set oPrinters = EnumItems("EnumPrinterConnections")
    
    Debug.Print "Network drive mappings:"
    PrintCollection oDrives
    
    Debug.Print
    Debug.Print "Network printer mappings:"
    PrintCollection oPrinters
End Sub

Function EnumItems(methodName As String) As IWshRuntimeLibrary.WshCollection
    Dim WshNetwork As IWshRuntimeLibrary.WshNetwork
    Set WshNetwork = New IWshRuntimeLibrary.WshNetwork
    Select Case methodName
        Case "EnumNetworkDrives"
            Set EnumItems = WshNetwork.EnumNetworkDrives
        Case "EnumPrinterConnections"
            Set EnumItems = WshNetwork.EnumPrinterConnections
    End Select
End Function

Sub PrintCollection(coll As IWshRuntimeLibrary.WshCollection)
    Dim i As Integer
    For i = 0 To coll.Count - 1 Step 2
        Debug.Print "Item " & coll.Item(i) & " = " & coll.Item(i + 1)
    Next i
End Sub

MapNetworkDrive Method

컴퓨터 시스템에 공유 네트워크 드라이브를 추가합니다.

object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])

object : WshNetwork 개체입니다.

strLocalName : 매핑된 드라이브를 로컬로 알리는 이름을 나타내는 문자열 값입니다.

strRemoteName : 공유 UNC 이름을 나타내는 문자열 값입니다(\\xxx\yyy).

bUpdateProfile : 선택적인 요소. 매핑된 정보가 현재 사용자의 프로필에 저장되어 있는지 여부를 나타내는 부울 값입니다. bUpdateProfile이 제공되고 값이 true이면 매핑은 사용자 프로필에 저장됩니다. 기본값은 false입니다.

strUser 선택적인 요소. 사용자 이름을 나타내는 문자열 값입니다. 현재 사용자가 아닌 다른 사람의 자격 증명을 사용하여 네트워크 드라이브를 매핑하는 경우 이 인수를 제공해야 합니다.

strPassword 선택적인 요소. 사용자 암호를 나타내는 문자열 값입니다. 현재 사용자가 아닌 다른 사람의 자격 증명을 사용하여 네트워크 드라이브를 매핑하는 경우 이 인수를 제공해야 합니다.

주의

비공유 네트워크 드라이브 결과를 매핑하려고 하면 오류가 발생합니다.

예제

아래 코드는 UNC 이름이 "\\Server\Public"인 네트워크 공유에 "E" 논리 드라이브를 매핑합니다.

Sub MapNetworkDrive()
    Dim WshNetwork As Object
    Set WshNetwork = CreateObject("WScript.Network")
    WshNetwork.MapNetworkDrive "E:", "\\Server\Public"
End Sub

RemoveNetworkDrive Method

컴퓨터 시스템에서 공유 네트워크 드라이브를 제거합니다.

object.RemoveNetworkDrive(strName, [bForce], [bUpdateProfile])

object : WshNetwork 개체입니다.

strName : 제거하려는 매핑된 드라이브의 이름을 나타내는 문자열 값입니다. strName 매개 변수는 드라이브 매핑 방법에 따라 로컬 이름이나 원격 이름이 될 수 있습니다.

bForce : 선택적인 요소. 매핑된 드라이즈를 강제로 제거할 것인지 여부를 나타내는 부울 값입니다. bForce를 제공하고 그 값이 true이면 이 메서드는 리소스의 사용 여부에 관계없이 연결을 제거합니다.

bUpdateProfile : 선택적인 요소. 사용자 프로필에서 매핑을 제거하는지 여부를 나타내는 문자열 값입니다. bUpdateProfile이 제공되고 그 값이 true이면 사용자 프로필에서 이 매핑을 제거합니다. bUpdateProfile의 기본값은 false입니다.

주의

드라이브에 로컬 이름(드라이브 문자)과 원격 이름(UNC 이름) 간의 매핑이 있으면 strName은 로컬 이름으로 설정되어야 합니다. 네트워크 경로에 로컬 이름(드라이브 문자) 매핑이 없으면 strName은 원격 이름으로 설정되어야 합니다.

예제

아래 코드는 논리 드라이브 E를 제거합니다.

Sub RemoveNetworkDrive()
    Dim WshNetwork As Object
    Set WshNetwork = CreateObject("WScript.Network")
    
    WshNetwork.RemoveNetworkDrive "E:"
End Sub

RemovePrinterConnection Method

컴퓨터 시스템에서 공유 네트워크 프린터 연결을 제거합니다.

object.RemovePrinterConnection(strName, [bForce], [bUpdateProfile])

object : WshNetwork 개체입니다.

strName : 프린터를 식별하는 이름을 나타내는 문자열 값입니다. UNC 이름(\\xxx\yyy 형태) 또는 LPT1과 같은 로컬 이름이 될 수 있습니다.

bForce : 선택적인 요소. 매핑된 프린터를 강제로 제거할 것인지 여부를 나타내는 부울 값입니다. True로 설정하면 사용자 연결 여부에 관계없이 프린터 연결이 제거됩니다. 기본값은 false입니다.

bUpdateProfile : 선택적인 요소. 부울 값입니다. True로 설정하면 변경 내용은 사용자 프로필에 저장됩니다. 기본값은 false입니다.

주의

RemovePrinterConnection 메서드는 Windows 및 MS-DOS 기반 프린터 연결을 모두 제거합니다. AddPrinterConnection 메서드를 사용하여 프린터를 연결했으면 strName은 프린터의 로컬 이름이어야 합니다. AddWindowsPrinterConnection 메서드를 사용하여 프린터를 연결하거나 프린터 추가 마법사를 사용하여 수동으로 추가했으면 strName은 프린터의 UNC 이름이어야 합니다.

예제

아래 코드는 네트워크 프린터의 연결을 끊습니다.

Sub RemovePrinterConnection()
    Dim WshNetwork As Object
    Dim PrinterPath As String
    
    Set WshNetwork = CreateObject("WScript.Network")
    PrinterPath = "\\printserv\DefaultPrinter"
    
    WshNetwork.RemovePrinterConnection PrinterPath, True, True
End Sub

SetDefaultPrinter Method

원격 프린터에 기본 프린터 역할을 지정합니다.

object.SetDefaultPrinter(strPrinterName)

object : WshNetwork 개체입니다.

strPrinterName : 원격 프린터의 UNC 이름을 나타내는 문자열 값입니다.

주의

SetDefaultPrinter 메서드는 DOS 기반 프린터 연결을 사용할 때 실패합니다. SetDefaultPrinter 메서드를 사용하여 현재 기본 프린터의 이름을 확인할 수 없습니다.

예제

아래 코드는 AddWindowsPrinterConnection 메서드를 사용하여 네트워크 프린터를 연결하고 기본 프린터로 설정합니다.

Sub MapPrinterAndSetDefault()
    Dim WshNetwork As Object
    Dim PrinterPath As String
    
    Set WshNetwork = CreateObject("WScript.Network")
    PrinterPath = "\\research\library1"
    
    MapPrinterConnection WshNetwork, PrinterPath
    SetDefaultPrinter WshNetwork, PrinterPath
End Sub

Sub MapPrinterConnection(WshNetwork As Object, PrinterPath As String)
    WshNetwork.AddWindowsPrinterConnection PrinterPath
End Sub

Sub SetDefaultPrinter(WshNetwork As Object, PrinterPath As String)
    WshNetwork.SetDefaultPrinter PrinterPath
End Sub

'Windows Script Host' 카테고리의 다른 글

WshShortcut Object  (0) 2023.08.29
WshEnvironment 개체  (0) 2023.08.17
WshShell 개체  (0) 2023.08.15