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-Location
i 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 Persist
New-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 uruchamiaszNew-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 zakresudo 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
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
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
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
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
$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 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
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
Nazwa dysku musi być literą, taką jak D
lub E
. Wartość parametru root musi być ścieżką UNC innego komputera. Wartość parametru
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 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:
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
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ń.