Udostępnij za pośrednictwem


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 cmdlet New-PSDrive 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 przez system Windows 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 Set-Locationi uzyskać dostęp do zawartości dysku przy użyciu Get-Item lub Get-ChildItem.

Ponieważ dyski tymczasowe są znane tylko programowi PowerShell, nie można uzyskać do nich dostępu przy użyciu Eksploratora 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.

Dodano następujące funkcje do New-PSDrive w programie PowerShell 3.0:

  • Zamapowane dyski sieciowe. Aby utworzyć zamapowane dyski sieciowe systemu Windows, można użyć parametru PersistNew-PSDrive. 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 net używać. Zamapowane dyski sieciowe muszą mieć nazwę litery dysku i być podłączone do zdalnej lokalizacji systemu plików. Gdy polecenie jest ograniczone lokalnie, bez określania źródła kropki, parametr Persist nie utrwala tworzenia psDrive poza zakresem, w którym jest uruchomione polecenie. Jeśli uruchamiasz New-PSDrive wewnątrz 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 zakresu do polecenia i ustaw jego wartość na wartość 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 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 PSDrive, który reprezentuje usunięty dysk.
  • Poświadczenia ścieżek universal naming Convention (UNC).

Gdy wartość parametru głównego to ścieżka UNC, taka jak , poświadczenie określone w wartości parametru credential służy do tworzenia PSDrive. W przeciwnym razie credential nie jest skuteczny 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.

Nuta

Jeśli nie używasz parametru zakresu , usługa PSDrives jest tworzona w zakresie, w którym 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

używa parametru nazwa , aby określić dysk programu PowerShell o nazwie i parametr PSProvider w celu określenia dostawcy programu PowerShell. Parametr root 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. Nazwa parametr określa nazwę dysku, MyDocs. Parametr PSProvider określa dostawcę FileSystem programu PowerShell. główny określa katalog komputera lokalnego. Parametr Description opisuje przeznaczenie dysku. New-PSDrive używa splatted parametrów do utworzenia dysku MyDocs.

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 zamapowany na klucz rejestru HKLM:\Software\MyCompany.

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

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

używa parametru nazwa , aby określić dysk programu PowerShell o nazwie i parametr PSProvider w celu określenia dostawcy programu PowerShell. Parametr root 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

Nuta

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 przechowuje obiekt PSCredential zawierający poświadczenia konta usługi. Get-Credential monituje o wprowadzenie hasła przechowywanego w SecureString.

New-PSDrive tworzy zamapowany dysk sieciowy przy użyciu kilku parametrów. Nazwa określa literę dysku S akceptowaną przez system Windows. i root definiuje \\Server01\Scripts jako lokalizację na komputerze zdalnym. Utrwalanie tworzy zamapowany dysk sieciowy systemu Windows zapisany na komputerze lokalnym. PSProvider określa dostawcę FileSystem. Credential 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, Eksploratorze plików i narzędziach, takich jak net używać. 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ę, tymczasowa PSDrive: nie jest dostępna, ale trwały dysk 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 jest uruchamiane polecenie New-PSDrive. 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 zakresu , aby utworzyć dysk w zakresie globalnej .

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Credential

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

Ponieważ program PowerShell 3.0, gdy wartość parametru root 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 polecenie cmdlet Get-Credential. 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.

Nuta

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

Typ:PSCredential
Position:Named
Domyślna wartość:Current user
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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 Eksploratorze plików i innych narzędziach.

W przypadku określania zakresu polecenia lokalnie bez określania wartości kropkowej parametr Persist nie utrwala tworzenia psDrive poza zakresem, w którym uruchamiasz polecenie. Jeśli uruchomisz New-PSDrive wewnątrz skryptu i chcesz, aby nowy dysk był trwały w nieskończoność, musisz umieścić skrypt dot-source. Aby uzyskać najlepsze wyniki, aby wymusić utrwalanie nowego dysku, określ globalne jako wartość parametru zakresu i dołącz Utrwalaj w poleceniu.

Nazwa dysku musi być literą, taką jak D lub E. Wartość parametru root musi być ścieżką UNC innego komputera. Wartość parametru PSProvider musi być .

Aby odłączyć zamapowany dysk sieciowy systemu Windows, użyj polecenia cmdlet Remove-PSDrive. 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ń.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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 jest FileSystem. Jeśli dysk jest skojarzony z kluczem rejestru, dostawca jest Registry.

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

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

Typ:String
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Root

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

Na przykład określ udział sieciowy, taki jak \\Server01\Public, katalog lokalny, taki jak C:\Program Fileslub 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.

Typ:String
Position:2
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Scope

Określa zakres dysku. Dopuszczalne wartości tego parametru to: globalny, locali Scriptlub liczbę 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.

Typ:String
Position:Named
Domyślna wartość:Local
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Polecenie cmdlet nie jest uruchamiane.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potoku wprowadzić danych wejściowych do tego polecenia cmdlet.

Dane wyjściowe

PSDriveInfo

Uwagi

New-PSDrive jest przeznaczona do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, użyj 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ń.