New-PSDrive

Tworzy tymczasowe i trwałe dyski skojarzone z lokalizacją w magazynie danych elementów.

Składnia

New-PSDrive
   [-Name] <String>
   [-PSProvider] <String>
   [-Root] <String>
   [-Description <String>]
   [-Scope <String>]
   [-Persist]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Opis

Polecenie New-PSDrive cmdlet tworzy tymczasowe i trwałe dyski, które są mapowane na lub skojarzone z lokalizacją w magazynie danych, takim jak dysk sieciowy, katalog na komputerze lokalnym lub klucz rejestru oraz trwałe dyski sieciowe mapowane z systemem Windows, które są skojarzone z lokalizacją systemu plików na komputerze zdalnym.

Dyski tymczasowe istnieją tylko w bieżącej sesji programu PowerShell i w sesjach utworzonych w bieżącej sesji. Mogą mieć dowolną nazwę prawidłową w programie PowerShell i mogą być mapowane na dowolny zasób lokalny lub zdalny. Możesz użyć tymczasowych dysków programu PowerShell, aby uzyskać dostęp do danych w skojarzonym magazynie danych, podobnie jak w przypadku dowolnego zamapowanego dysku sieciowego. Lokalizacje można zmienić na dysk przy użyciu polecenia i uzyskać dostęp do zawartości dysku za pomocą Set-Locationpolecenia Get-Item lub Get-ChildItem.

Ponieważ dyski tymczasowe są znane tylko programowi PowerShell, nie można uzyskać do nich dostępu przy użyciu Eksplorator plików, instrumentacji zarządzania Windows (WMI), modelu obiektów składników (COM), programu Microsoft .NET Framework lub narzędzi takich jak net use.

W programie PowerShell 3.0 dodano New-PSDrive następujące funkcje:

  • Zamapowane dyski sieciowe. Możesz użyć parametru Persist polecenia New-PSDrive , aby utworzyć zamapowane dyski sieciowe systemu Windows. W przeciwieństwie do tymczasowych dysków programu PowerShell, zamapowane dyski sieciowe systemu Windows nie są specyficzne dla sesji. Są one zapisywane w systemie Windows i mogą być zarządzane przy użyciu standardowych narzędzi systemu Windows, takich jak Eksplorator plików i korzystanie z sieci. Zamapowane dyski sieciowe muszą mieć nazwę litery dysku i być podłączone do zdalnej lokalizacji systemu plików. Jeśli zakres polecenia jest określony lokalnie, bez określania źródła kropki, parametr Persist nie utrwala tworzenia usługi PSDrive poza zakresem, w którym jest uruchomione polecenie. Jeśli używasz New-PSDrive skryptu i chcesz, aby dysk był trwały w nieskończoność, musisz umieścić skrypt dot-source. Aby uzyskać najlepsze wyniki, aby wymusić utrwalanie nowego dysku na czas nieokreślony, dodaj parametr Scope do polecenia i ustaw jego wartość na Global. Aby uzyskać więcej informacji na temat określania źródła kropki, zobacz about_Scripts.
  • Dyski zewnętrzne. Gdy dysk zewnętrzny jest połączony z komputerem, program PowerShell automatycznie dodaje usługę PSDrive do systemu plików reprezentującego nowy dysk. Nie trzeba ponownie uruchamiać programu PowerShell. Podobnie, gdy dysk zewnętrzny zostanie odłączony od komputera, program PowerShell automatycznie usunie dysk PSDrive reprezentujący usunięty dysk.
  • Poświadczenia ścieżek universal naming Convention (UNC).

Gdy wartość parametru głównego jest ścieżką UNC, taką jak \\Server\Share, poświadczenie określone w wartości parametru Credential jest używane do utworzenia usługi PSDrive. W przeciwnym razie poświadczenie nie jest skuteczne podczas tworzenia nowych dysków systemu plików.

Niektóre przykłady kodu używają fragmentowania, aby zmniejszyć długość wiersza i zwiększyć czytelność. Aby uzyskać więcej informacji, zobacz about_Splatting.

Uwaga

Jeśli nie używasz parametru Zakres , usługi PSDrives są tworzone w zakresie, w którym New-PSDrive jest uruchamiane polecenie.

Przykłady

Przykład 1. Tworzenie dysku tymczasowego zamapowanego na udział sieciowy

W tym przykładzie tworzony jest tymczasowy dysk programu PowerShell zamapowany na udział sieciowy.

New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"

Name       Provider      Root
----       --------      ----
Public     FileSystem    \\Server01\Public

New-PSDrive używa parametru Name , aby określić dysk programu PowerShell o nazwie Public i parametr PSProvider w celu określenia dostawcy programu PowerShell FileSystem . Parametr główny określa ścieżkę UNC udziału sieciowego.

Aby wyświetlić zawartość sesji programu PowerShell: Get-ChildItem -Path Public:

Przykład 2. Tworzenie dysku tymczasowego mapowanego na katalog lokalny

W tym przykładzie tworzony jest tymczasowy dysk programu PowerShell, który zapewnia dostęp do katalogu na komputerze lokalnym.

$parameters = @{
    Name = "MyDocs"
    PSProvider = "FileSystem"
    Root = "C:\Users\User01\Documents"
    Description = "Maps to my My Documents folder."
}
New-PSDrive @parameters

Name        Provider      Root
----        --------      ----
MyDocs      FileSystem    C:\Users\User01\Documents

Funkcja Splatting tworzy klucze parametrów i wartości. Parametr Name określa nazwę dysku MyDocs. Parametr PSProvider określa dostawcę programu PowerShell FileSystem . Katalog główny określa katalog komputera lokalnego. Parametr Opis opisuje przeznaczenie dysku. New-PSDrive używa parametrów splatted do utworzenia MyDocs dysku.

Aby wyświetlić zawartość sesji programu PowerShell: Get-ChildItem -Path MyDocs:

Przykład 3. Tworzenie dysku tymczasowego dla klucza rejestru

W tym przykładzie tworzony jest tymczasowy dysk programu PowerShell, który zapewnia dostęp do klucza rejestru. Tworzy dysk o nazwie MyCompany mapowany na HKLM:\Software\MyCompany klucz rejestru.

New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"

Name           Provider      Root
----           --------      ----
MyCompany      Registry      HKLM:\Software\MyCompany

New-PSDrive używa parametru Name , aby określić dysk programu PowerShell o nazwie MyCompany i parametr PSProvider w celu określenia dostawcy programu PowerShell Registry . Parametr główny określa lokalizację rejestru.

Aby wyświetlić zawartość sesji programu PowerShell: Get-ChildItem -Path MyCompany:

Przykład 4. Tworzenie trwałego zamapowanego dysku sieciowego przy użyciu poświadczeń

W tym przykładzie mapowany jest dysk sieciowy uwierzytelniony przy użyciu poświadczeń konta usługi domeny. Aby uzyskać więcej informacji na temat obiektu PSCredential, który przechowuje poświadczenia i jak hasła są przechowywane jako SecureString, zobacz opis parametru Credential.

$cred = Get-Credential -Credential Contoso\ServiceAccount
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem" -Credential $cred
Net Use

Status       Local     Remote                    Network
---------------------------------------------------------
OK           S:        \\Server01\Scripts        Microsoft Windows Network

Uwaga

Pamiętaj, że jeśli używasz powyższego fragmentu kodu w skrypcie, ustaw wartość parametru Zakres na wartość "Global", aby upewnić się, że dysk będzie się utrzymywał poza bieżącym zakresem.

Zmienna $cred przechowuje obiekt PSCredential zawierający poświadczenia konta usługi. Get-Credential monituje o wprowadzenie hasła przechowywanego w usłudze SecureString.

New-PSDrive Tworzy zamapowany dysk sieciowy przy użyciu kilku parametrów. Nazwa określa literę dysku akceptowaną S przez system Windows. i Root definiuje \\Server01\Scripts jako lokalizację na komputerze zdalnym. Funkcja Persist tworzy zamapowany dysk sieciowy systemu Windows zapisany na komputerze lokalnym. Dostawca PSProvider określa dostawcę FileSystem . Poświadczenie używa zmiennej $cred w celu uzyskania poświadczeń konta usługi na potrzeby uwierzytelniania.

Zamapowany dysk można wyświetlić na komputerze lokalnym w sesjach programu PowerShell, Eksplorator plików i za pomocą narzędzi, takich jak net use. Aby wyświetlić zawartość sesji programu PowerShell: Get-ChildItem -Path S:

Przykład 5. Tworzenie dysków trwałych i tymczasowych

W tym przykładzie pokazano różnicę między trwałym mapowanym dyskiem sieciowym a tymczasowym dyskiem programu PowerShell zamapowanym na ten sam udział sieciowy.

Jeśli zamkniesz sesję programu PowerShell, a następnie otworzysz nową sesję, PSDrive: tymczasowa nie jest dostępna, ale dysk trwały X: jest dostępny. Podczas podejmowania decyzji, która metoda ma być używana do mapowania dysków sieciowych, rozważ użycie dysku. Na przykład, czy musi być trwały, i czy dysk musi być widoczny dla innych funkcji systemu Windows.

# Create a temporary PowerShell drive called PSDrive:
# that's mapped to the \\Server01\Public network share.
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\\Server01\Public"

# Use the Persist parameter of New-PSDrive to create the X: mapped network drive,
# which is also mapped to the \\Server01\Public network share.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"

# Now, you can use the Get-PSDrive drive cmdlet to examine the two drives.
# The drives appear to be the same, although the network share name appears only
# in the root of the PSDrive: drive.
Get-PSDrive -Name "PSDrive", "X"

Name       Provider      Root
----       --------      ----

PsDrive    FileSystem    \\Server01\public
X          FileSystem    X:\

# Get-Member cmdlet shows that the drives have the same object type,
# System.Management.Automation.PSDriveInfo.
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()
...

# Net Use and Get-CimInstance for the Win32_LogicalDisk class,
# and Win32_NetworkConnection class find only the persistent X: drive.
# PowerShell temporary drives are known only to PowerShell.
Net Use
Get-CimInstance Win32_LogicalDisk | Format-Table -Property DeviceID
Get-CimInstance Win32_NetworkConnection

Status       Local     Remote                    Network
--------------------------------------------------------
OK           X:        \\contoso-pc\data         Microsoft Windows Network

deviceid
--------
C:
D:
X:

LocalName    RemoteName              ConnectionState          Status
---------    ----------              ---------------          ------
X:           \\products\public       Disconnected             Unavailable

Przykład 6. Tworzenie dysku trwałego w skrypcie

Usługa PSDrives jest tworzona w zakresie, w którym New-PSDrive jest uruchamiane polecenie. Po uruchomieniu polecenia w skrytecie mapowanie dysku jest lokalne dla skryptu. Po zakończeniu działania skryptu dysk nie jest już dostępny.

New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global

Aby upewnić się, że dysk jest dostępny poza skryptem, należy użyć parametru Zakres , aby utworzyć dysk w zakresie globalnym .

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to użytkownik bieżący.

Ponieważ program PowerShell 3.0, gdy wartość parametru głównego jest ścieżką UNC, można użyć poświadczeń do utworzenia dysków systemu plików.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential wygenerowany przez Get-Credential polecenie cmdlet. Jeśli wpiszesz nazwę użytkownika, zostanie wyświetlony monit o wprowadzenie hasła.

Poświadczenia są przechowywane w obiekcie PSCredential , a hasło jest przechowywane jako secureString.

Uwaga

Aby uzyskać więcej informacji na temat ochrony danych SecureString , zobacz Jak bezpieczny jest protokół SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Description

Określa krótki opis tekstowy dysku. Wpisz dowolny ciąg.

Aby wyświetlić opisy wszystkich dysków sesji, Get-PSDrive | Format-Table Name, Description.

Aby wyświetlić opis określonego dysku, wpisz (Get-PSDrive <DriveName>).Description.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Określa nazwę nowego dysku. W przypadku trwałych mapowanych dysków sieciowych użyj litery dysku. W przypadku tymczasowych dysków programu PowerShell nie można używać żadnych prawidłowych ciągów.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Persist

Wskazuje, że to polecenie cmdlet tworzy zamapowany dysk sieciowy systemu Windows. Parametr Persist jest dostępny tylko w systemie Windows.

Zamapowane dyski sieciowe są zapisywane w systemie Windows na komputerze lokalnym. Są one trwałe, a nie specyficzne dla sesji i mogą być wyświetlane i zarządzane w Eksplorator plików i innych narzędziach.

W przypadku określania zakresu polecenia lokalnie bez określania źródła kropkowego parametr Persist nie utrwala tworzenia usługi PSDrive poza zakresem, w którym uruchamiasz polecenie. Jeśli uruchamiasz New-PSDrive skrypt i chcesz, aby nowy dysk był utrwalany w nieskończoność, musisz umieścić skrypt dot-source. Aby uzyskać najlepsze wyniki, aby wymusić utrwalanie nowego dysku, określ wartość Global jako wartość parametru Zakres i uwzględnij wartość Persist w poleceniu.

Nazwa dysku musi być literą, taką jak D lub E. Wartość parametru głównego musi być ścieżką UNC innego komputera. Wartość parametru PSProvider musi mieć wartość FileSystem.

Aby rozłączyć zamapowany dysk sieciowy systemu Windows, użyj Remove-PSDrive polecenia cmdlet . Po odłączeniu zamapowanego dysku sieciowego systemu Windows mapowanie zostanie trwale usunięte z komputera, a nie tylko usunięte z bieżącej sesji.

Zamapowane dyski sieciowe są specyficzne dla konta użytkownika. Zamapowane dyski utworzone w sesjach z podwyższonym poziomem uprawnień lub sesjach przy użyciu poświadczeń innego użytkownika nie są widoczne w sesjach rozpoczętych przy użyciu różnych poświadczeń.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Określa dostawcę programu PowerShell, który obsługuje dyski tego rodzaju.

Jeśli na przykład dysk jest skojarzony z udziałem sieciowym lub katalogiem systemu plików, dostawca programu PowerShell to FileSystem. Jeśli dysk jest skojarzony z kluczem rejestru, dostawca to Registry.

Tymczasowe dyski programu PowerShell można skojarzyć z dowolnym dostawcą programu PowerShell. Zamapowane dyski sieciowe mogą być skojarzone tylko z dostawcą FileSystem .

Aby wyświetlić listę dostawców w sesji programu PowerShell, użyj Get-PSProvider polecenia cmdlet .

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Root

Określa lokalizację magazynu danych, do której jest mapowany dysk programu PowerShell.

Na przykład określ udział sieciowy, taki jak , katalog lokalny, taki jak \\Server01\PublicC:\Program Files, lub klucz rejestru, taki jak HKLM:\Software\Microsoft.

Tymczasowe dyski programu PowerShell można skojarzyć z lokalną lub zdalną lokalizacją na dowolnym obsługiwanym dysku dostawcy. Zamapowane dyski sieciowe można skojarzyć tylko z lokalizacją systemu plików na komputerze zdalnym.

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Scope

Określa zakres dysku. Dopuszczalne wartości tego parametru to: Globalny, Lokalny i Skrypt lub liczba względna względem bieżącego zakresu. Zakresy 0 przez liczbę zakresów. Bieżący numer zakresu to 0, a jego element nadrzędny to 1. Aby uzyskać więcej informacji, zobacz about_Scopes.

Type:String
Position:Named
Default value:Local
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie jest uruchamiane.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet

Dane wyjściowe

PSDriveInfo

To polecenie cmdlet zwraca obiekt PSDriveInfo reprezentujący utworzony dysk.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Get-PSDrive:

  • Wszystkie platformy:
    • ndr
  • Windows:
    • mount

New-PSDrive jest przeznaczony do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, użyj polecenia Get-PSProvider. Aby uzyskać więcej informacji na temat dostawców, zobacz about_Providers.

Zamapowane dyski sieciowe są specyficzne dla konta użytkownika. Zamapowane dyski utworzone w sesjach z podwyższonym poziomem uprawnień lub sesjach przy użyciu poświadczeń innego użytkownika nie są widoczne w sesjach rozpoczętych przy użyciu różnych poświadczeń.