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-Location
polecenia 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żywaszNew-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.
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 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?.
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 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ń.
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 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 .
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 , katalog lokalny, taki jak \\Server01\Public
C:\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.
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, 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.
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 po uruchomieniu polecenia cmdlet. 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 potokować obiektów do tego polecenia cmdlet
Dane wyjściowe
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ń.