New-PSDrive
현재 세션에 Windows PowerShell 드라이브를 만듭니다.
구문
New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
설명
New-PSDrive cmdlet은 네트워크 드라이브, 로컬 컴퓨터의 디렉터리, 레지스트리 키 등의 데이터 저장소 위치에 "매핑"되거나 연결된 Windows PowerShell 드라이브를 만듭니다.
연관된 데이터 저장소의 데이터에 액세스하기 위해 만든 Windows PowerShell 드라이브를 매핑된 드라이브처럼 사용할 수 있습니다. 위치를 드라이브로 변경하고("Set-Location", "cd" 또는 "chdir") 드라이브 내용에 액세스할 수 있습니다("Get-Item", "Get-ChildItem" 또는 "dir").
그러나 Windows PowerShell 드라이브는 Windows PowerShell에서만 인식할 수 있고, Windows 탐색기, WMI(Windows Management Instrumentation), COM(구성 요소 개체 모델) 또는 Microsoft .NET Framework나 Net Use와 같은 도구를 통해서는 액세스할 수 없습니다.
Windows PowerShell 드라이브는 현재 Windows PowerShell 세션에만 있습니다. 드라이브를 영구적으로 만들려면 드라이브를 추가한 세션을 내보내거나 New-PSDrive 명령을 Windows PowerShell 프로필에 저장하면 됩니다.
New-PSDrive로 만든 드라이브를 삭제하려면 Remove-PSDrive cmdlet을 사용합니다.
매개 변수
-Credential <PSCredential>
이 작업을 수행할 수 있는 권한을 가진 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.
"User01" 또는 "Domain01\User01"과 같은 사용자 이름을 입력합니다. 또는 Get-Credential cmdlet에 의해 생성된 개체와 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하면 암호를 묻는 메시지가 표시됩니다.
이 매개 변수는 Windows PowerShell과 함께 설치된 어떤 공급자에서도 지원되지 않습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Description <string>
드라이브에 대한 간단한 텍스트 설명을 지정합니다. 문자열을 입력합니다.
시스템의 모든 Windows PowerShell 드라이브에 대한 설명을 보려면 "Get-PSDrive | format name, description"을 입력합니다. 특정 Windows PowerShell 드라이브에 대한 설명을 보려면 "(get-psdrive <DriveName>).description"을 입력합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Name <string>
새 드라이브의 이름을 지정합니다. 이름에 유효한 모든 문자열을 사용할 수 있습니다. 드라이브 문자만 사용할 수 있는 것은 아닙니다. Windows PowerShell 드라이브 이름은 대/소문자를 구분합니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-PSProvider <string>
이 유형의 드라이브를 지원하는 Windows PowerShell 공급자를 지정합니다.
예를 들어 Windows PowerShell 드라이브가 네트워크 공유나 파일 시스템 디렉터리에 연결되어 있으면 Windows PowerShell 공급자는 "FileSystem"입니다. Windows PowerShell 드라이브가 레지스트리 키에 연결되어 있으면 공급자는 "Registry"입니다.
Windows PowerShell 세션의 공급자 목록을 보려면 "Get-PSProvider"를 입력하십시오.
필수 여부 |
true |
위치 |
2 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Root <string>
Windows PowerShell 드라이브가 매핑된 데이터 저장소 위치를 지정합니다.
예를 들어 \\Server01\Public과 같은 네트워크 공유, C:\Program Files와 같은 로컬 디렉터리 또는 HKLM:\Software\Microsoft와 같은 레지스트리 키를 지정합니다.
필수 여부 |
true |
위치 |
3 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Scope <string>
드라이브의 범위를 지정합니다. 유효한 값은 "Global", "Local", "Script" 또는 현재 범위와 관련된 수(0부터 범위의 수까지, 여기서 0은 현재 범위이고 1은 그 상위 범위)입니다. "Local"이 기본값입니다. 자세한 내용은 about_Scopes를 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Confirm
명령을 실행하기 전에 확인 메시지를 표시합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-WhatIf
명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-UseTransaction
명령을 활성 트랜잭션에 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions를 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
System.Management.Automation.PSDriveInfo |
참고
New-PSDrive cmdlet은 모든 공급자가 제공하는 데이터에 사용할 수 있습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 "Get-PSProvider"를 입력합니다. 자세한 내용은 about_Providers를 참조하십시오.
예 1
C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public
Name Provider Root
---- -------- ----
P FileSystem \\Server01\Public
설명
-----------
이 명령은 Windows의 매핑된 네트워크 드라이브와 비슷한 기능을 하는 Windows PowerShell 드라이브를 만듭니다. 이 명령은 \\Server01\Public 네트워크 공유에 매핑된 P:라는 Windows PowerShell 드라이브를 만듭니다.
이 명령은 Name 매개 변수를 사용하여 드라이브의 이름을 지정하고 PSProvider 매개 변수를 사용하여 Windows PowerShell 파일 시스템 공급자를 지정하며 Root 매개 변수를 사용하여 네트워크 공유를 지정합니다.
명령이 완료되면 \\Server01\Public 공유의 내용이 P: 드라이브에 표시됩니다. 내용을 보려면 "dir p:"를 입력합니다.
예 2
C:\PS>new-psdrive -name MyDocs -psprovider FileSystem -root "C:\Documents and Settings\User01\My Documents" -Description "Maps to my My Documents folder."
Name Provider Root
---- -------- ----
MyDocs FileSystem C:\Documents and Settings\User01\My Documents
설명
-----------
이 명령은 로컬 디렉터리에 빠르게 액세스할 수 있는 Windows PowerShell 드라이브를 만듭니다. 이 명령은 로컬 컴퓨터의 "C:\Documents and Settings\User01\My Documents" 디렉터리에 매핑되는
MyDocs:라는 PsDrive를 만듭니다.
이 명령은 Name 매개 변수를 사용하여 드라이브의 이름을 지정하고 PSProvider 매개 변수를 사용하여 Windows PowerShell 파일 시스템 공급자를 지정하며 Root 매개 변수를 사용하여 My Documents 폴더의 경로를 지정하고 Description 매개 변수를 사용하여 드라이브에 대한 설명을 만듭니다.
명령이 완료되면 My Documents 폴더의 내용이 MyDocs: 드라이브에 표시됩니다. 내용을 보려면 "dir mydocs:"를 입력합니다.
예 3
C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany
Name Provider Root
---- -------- ----
MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo...
설명
-----------
이 명령은 자주 확인하는 레지스트리 키에 빠르게 액세스할 수 있는 Windows PowerShell 드라이브를 만들며, HKLM\Software\MyCompany 레지스트리 키에 매핑된 MyCompany라는 드라이브를 만듭니다.
이 명령은 Name 매개 변수를 사용하여 드라이브의 이름을 지정하고 PSProvider 매개 변수를 사용하여 Windows PowerShell 레지스트리 공급자를 지정하며 Root 매개 변수를 사용하여 레지스트리 키를 지정합니다.
명령이 완료되면 MyCompany 키의 내용이 MyCompany: 드라이브에 표시됩니다. 내용을 보려면 "dir MyCompany:"를 입력합니다.
예 4
C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Public
C:\PS> $drive = new-object -com wscript.network
C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public")
C PS:\> get-psdrive public, x
Name Provider Root
---- -------- ----
PsDrive FileSystem \\Server01\public
X FileSystem X:\
C:\PS>get-psdrive psdrive, x | get-member
TypeName: System.Management.Automation.PSDriveInfo
Name MemberType Definition
---- ---------- ----------
CompareTo Method System.Int32 CompareTo(PSDriveInfo drive),
Equals Method System.Boolean Equals(Object obj),
GetHashCode Method System.Int32 GetHashCode()
...
C:\PS> net use
Status Local Remote Network
---------------------------------------------------------------------------
X: \\server01\public Microsoft Windows Network
C:\PS> get-wmiobject win32_logicaldisk | ft deviceid
deviceid
--------
C:
D:
X:
C:\PS> get-wmiobject win32_networkconnection
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
X: \\products\public Disconnected Unavailable
설명
-----------
이 예에서는 동일한 네트워크 공유에 매핑된 Windows 드라이브와 같은 네트워크 공유에 매핑된 Windows PowerShell 드라이브의 차이점을 보여 줍니다.
첫 번째 명령은 New-PSDrive cmdlet을 사용하여 \\Server01\Public 네트워크 공유에 매핑된 PsDrive:라는 Windows PowerShell 드라이브를 만듭니다.
두 번째 명령 집합은 New-Object cmdlet을 사용하여 Wscript.Network COM 개체를 만든 다음 이 개체의 MapNetworkDrive 메서드를 사용하여 \\Server01\Public 네트워크 공유를 로컬 컴퓨터의 X: 드라이브에 매핑합니다.
이제 두 드라이브를 검토할 수 있습니다. Get-PSDrive 드라이브 명령을 사용하면 두 드라이브가 동일하게 표시됩니다. 단, 네트워크 공유 이름은 PsDrive: 드라이브의 루트에만 표시됩니다.
드라이브 개체를 Get-Member로 보내면 두 드라이브의 개체 유형이 System.Management.Automation.PSDriveInfo로 동일하다는 것이 표시됩니다.
그러나 "net use" 명령, Win32_LogicalDisk 클래스에 대한 Get-WmiObject 명령 및 Win32_NetworkConnection 클래스에 대한 Get-WmiObject 명령은 Wscript.Network 개체를 사용하여 만든 X: 드라이브만 찾습니다. 이는 Windows PowerShell 드라이브를 Windows PowerShell에서만 인식할 수 있기 때문입니다.
Windows PowerShell 세션을 닫은 다음 새 콘솔을 열면 PsDrive: 드라이브는 사라지고 X: 드라이브는 그대로 유지됩니다.
따라서 네트워크 드라이브 매핑 방법을 결정할 때는 드라이브 사용 방법, 드라이브를 지속적으로 나타낼지 여부, 드라이브를 다른 Windows 기능에 표시할지 여부 등을 고려해야 합니다.