New-Item
Tworzy nowy element.
Składnia
New-Item
[-Path] <String[]>
[-ItemType <String>]
[-Value <Object>]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-Item
[[-Path] <String[]>]
-Name <String>
[-ItemType <String>]
[-Value <Object>]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-Item
[-Path] <string[]>
-ConnectionURI <uri>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-OptionSet <hashtable>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <string>]
[-SessionOption <SessionOption>]
[-Port <int>]
[<CommonParameters>]
New-Item
[[-Path] <string[]>]
-Name <string>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-OptionSet <hashtable>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <string>]
[-SessionOption <SessionOption>]
[-ApplicationName <string>]
[-Port <int>]
[-UseSSL]
[<CommonParameters>]
New-Item
[-Path] <string[]>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-Options <ScopedItemOptions>]
[<CommonParameters>]
New-Item
[[-Path] <string[]>]
-Name <string>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-Options <ScopedItemOptions>]
[<CommonParameters>]
Opis
Polecenie New-Item
cmdlet tworzy nowy element i ustawia jego wartość. Typy elementów, które można utworzyć, zależą od lokalizacji elementu. Na przykład w systemie New-Item
plików tworzy pliki i foldery. W rejestrze New-Item
tworzy klucze rejestru i wpisy.
New-Item
program może również ustawić wartość tworzonych elementów. Na przykład podczas tworzenia nowego pliku New-Item
można dodać początkową zawartość do pliku.
Przykłady
Przykład 1. Tworzenie pliku w bieżącym katalogu
To polecenie tworzy plik tekstowy o nazwie "testfile1.txt" w bieżącym katalogu. Kropka ('.') w wartości parametru Path wskazuje bieżący katalog. Tekst cytowany, który jest zgodny z parametrem Value , jest dodawany do pliku jako zawartość.
New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."
Przykład 2. Tworzenie katalogu
To polecenie tworzy katalog o nazwie "Logfiles" na C:
dysku. Parametr ItemType określa, że nowy element jest katalogiem, a nie plikiem ani innym obiektem systemu plików.
New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"
Przykład 3. Tworzenie profilu
To polecenie tworzy profil programu PowerShell w ścieżce określonej przez zmienną $profile
.
Profile umożliwiają dostosowywanie programu PowerShell. $profile
to zmienna automatyczna (wbudowana), która przechowuje ścieżkę i nazwę pliku profilu "CurrentUser/CurrentHost". Domyślnie profil nie istnieje, mimo że program PowerShell przechowuje dla niego ścieżkę i nazwę pliku.
W tym poleceniu zmienna $profile
reprezentuje ścieżkę pliku. Parametr ItemType określa, że polecenie tworzy plik. Parametr Force umożliwia utworzenie pliku w ścieżce profilu, nawet jeśli katalogi w ścieżce nie istnieją.
Po utworzeniu profilu możesz wprowadzić aliasy, funkcje i skrypty w profilu, aby dostosować powłokę.
Aby uzyskać więcej informacji, zobacz about_Automatic_Variables i about_Profiles.
New-Item -Path $profile -ItemType "file" -Force
Przykład 4. Tworzenie katalogu w innym katalogu
W tym przykładzie zostanie utworzony nowy katalog Scripts w katalogu "C:\PS-Test".
Nazwa nowego elementu katalogu "Skrypty" jest uwzględniona w wartości parametru Path , a nie jest określona w wartości Name. Jak wskazuje składnia, formularz polecenia jest prawidłowy.
New-Item -ItemType "directory" -Path "c:\ps-test\scripts"
Przykład 5. Tworzenie wielu plików
W tym przykładzie są tworzone pliki w dwóch różnych katalogach. Ponieważ ścieżka przyjmuje wiele ciągów, można jej użyć do utworzenia wielu elementów.
New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"
Przykład 6. Używanie symboli wieloznacznych do tworzenia plików w wielu katalogach
Polecenie New-Item
cmdlet obsługuje symbole wieloznaczne w parametrze Path . Następujące polecenie tworzy temp.txt
plik we wszystkich katalogach określonych przez symbole wieloznaczne w parametrze Path .
Get-ChildItem -Path C:\Temp\
Directory: C:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/15/2019 6:45 AM 1 One
d----- 5/15/2019 6:45 AM 1 Two
d----- 5/15/2019 6:45 AM 1 Three
New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName
FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt
Polecenie Get-ChildItem
cmdlet wyświetla trzy katalogi w C:\Temp
katalogu. Za pomocą symboli wieloznacznych New-Item
polecenie cmdlet tworzy temp.txt
plik we wszystkich katalogach w bieżącym katalogu. Polecenie New-Item
cmdlet zwraca utworzone elementy, które są przesyłane potokowo w celu Select-Object
zweryfikowania ścieżek nowo utworzonych plików.
Przykład 7. Tworzenie linku symbolicznego do pliku lub folderu
W tym przykładzie zostanie utworzony link symboliczny do pliku Notice.txt w bieżącym folderze.
$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target
LinkType Target
-------- ------
SymbolicLink {.\Notice.txt}
W tym przykładzie target jest aliasem parametru Value . Elementem docelowym łącza symbolicznego może być ścieżka względna. Przed programem PowerShell w wersji 6.2 element docelowy musi być w pełni kwalifikowaną ścieżką.
Począwszy od programu PowerShell 7.1, można teraz utworzyć link symboliczny do folderu w systemie Windows przy użyciu ścieżki względnej.
Przykład 8. Użyj parametru -Force, aby spróbować odtworzyć foldery
W tym przykładzie tworzony jest folder z plikiem wewnątrz. Następnie próbuje utworzyć ten sam folder przy użyciu polecenia -Force
. Nie zastąpi on folderu, ale po prostu zwróci istniejący obiekt folderu z plikiem utworzonym bez zmian.
PS> New-Item -Path .\TestFolder -ItemType Directory
PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File
PS> New-Item -Path .\TestFolder -ItemType Directory -Force
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/1/2020 8:03 AM TestFolder
PS> Get-ChildItem .\TestFolder\
Directory: C:\TestFolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/1/2020 8:03 AM 0 TestFile.txt
Przykład 9. Użyj parametru -Force, aby zastąpić istniejące pliki
W tym przykładzie zostanie utworzony plik z wartością, a następnie ponownie utworzy plik przy użyciu polecenia -Force
. Spowoduje to zastąpienie istniejącego pliku, jak widać na podstawie właściwości length.
PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file'
Directory: C:\Source\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/1/2020 8:32 AM 24 TestFile.txt
New-Item ./TestFile.txt -ItemType File -Force
Directory: C:\Source\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/1/2020 8:32 AM 0 TestFile.txt
Uwaga
W przypadku korzystania z przełącznika New-Item
-Force
w celu utworzenia kluczy rejestru polecenie będzie zachowywać się tak samo jak podczas zastępowania pliku. Jeśli klucz rejestru już istnieje, klucz i wszystkie właściwości i wartości zostaną zastąpione pustym kluczem rejestru.
Parametry
-ApplicationName
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Określa nazwę aplikacji w połączeniu. Wartość domyślna parametru ApplicationName to WSMAN.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Authentication
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Określa mechanizm uwierzytelniania, który ma być używany na serwerze.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | AuthenticationMechanism |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CertificateThumbprint
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Określa cyfrowy certyfikat klucza publicznego (X509) konta użytkownika, które ma uprawnienia do wykonania tej akcji WSMan. Wprowadź odcisk palca certyfikatu.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-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 |
-ConnectionURI
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Określa punkt końcowy połączenia dla programu WSMan.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | Uri |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Uwaga
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj polecenia Invoke-Command
.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | Current user |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Force
Wymusza to polecenie cmdlet, aby utworzyć element, który zapisuje w istniejącym elemencie tylko do odczytu. Implementacja różni się od dostawcy do dostawcy. Nawet przy użyciu parametru Force polecenie cmdlet nie może zastąpić ograniczeń zabezpieczeń.
Począwszy od programu PowerShell 7.4, ten parametr umożliwia również zastąpienie istniejącego połączenia. Wcześniej ten błąd nie powiódł się z powodu błędu "nie można go usunąć, ponieważ nie jest pusty".
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ItemType
Określa typ określony przez dostawcę nowego elementu. Dostępne wartości tego parametru zależą od bieżącego dostawcy, którego używasz.
Jeśli lokalizacja znajduje się na FileSystem
dysku, dozwolone są następujące wartości:
File
Directory
SymbolicLink
Junction
HardLink
Uwaga
SymbolicLink
Utworzenie typu w systemie Windows wymaga podniesienia uprawnień administratora. Jednak system Windows 10 (kompilacja 14972 lub nowsza) z włączonym trybem dewelopera nie wymaga już podniesienia uprawnień tworzenia linków symbolicznych.
Certificate
Na dysku są to wartości, które można określić:
Certificate Provider
Certificate
Store
StoreLocation
Aby uzyskać więcej informacji, zobacz about_Providers.
Typ: | String |
Aliasy: | Type |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Name
Określa nazwę nowego elementu. Możesz określić nazwę nowego elementu w wartości parametru Nazwa lub Ścieżka, a następnie określić ścieżkę nowego elementu w polu Nazwa lub Ścieżka. Nazwy elementów przekazywanych przy użyciu parametru Name są tworzone względem wartości parametru Path .
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Options
Jest to parametr dynamiczny udostępniany przez dostawcę aliasu. Aby uzyskać więcej informacji, zobacz New-Alias (Nowy alias).
Określa wartość właściwości Options aliasu.
Prawidłowe wartości to:
None
: Alias nie ma ograniczeń (wartość domyślna)ReadOnly
: Alias można usunąć, ale nie można go zmienić bez użycia parametru ForceConstant
: nie można usunąć ani zmienić aliasuPrivate
: Alias jest dostępny tylko w bieżącym zakresieAllScope
: Alias jest kopiowany do wszystkich nowych utworzonych zakresówUnspecified
: Nie określono opcji
Typ: | ScopedItemOptions |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-OptionSet
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Przekazuje zestaw przełączników do usługi w celu zmodyfikowania lub uściślinia charakteru żądania.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | Hashtable |
Aliasy: | OS |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa ścieżkę lokalizacji nowego elementu. Wartość domyślna to bieżąca lokalizacja po pominięciu ścieżki . Możesz określić nazwę nowego elementu w polu Nazwa lub dołączyć go do ścieżki. Nazwy elementów przekazywanych przy użyciu parametru Name są tworzone względem wartości parametru Path .
W przypadku tego polecenia cmdlet parametr Path działa jak parametr LiteralPath innych poleceń cmdlet.
Symbole wieloznaczne nie są interpretowane. Wszystkie znaki są przekazywane do dostawcy lokalizacji. Dostawca może nie obsługiwać wszystkich znaków. Na przykład nie można utworzyć nazwy pliku zawierającego znak gwiazdki (*
).
Typ: | String[] |
Position: | 0 |
Domyślna wartość: | Current location |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Port
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Określa port, który ma być używany, gdy klient nawiązuje połączenie z usługą WinRM.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-SessionOption
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Definiuje zestaw opcji rozszerzonych dla sesji zarządzania usługami WS.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | SessionOption |
Aliasy: | SO |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-UseSSL
Jest to parametr dynamiczny udostępniany przez dostawcę WSMan . Dostawca WSMan i ten parametr są dostępne tylko w systemie Windows.
Określa, że protokół Secure Sockets Layer (SSL) powinien służyć do nawiązywania połączenia z komputerem zdalnym. Domyślnie protokół SSL nie jest używany.
Aby uzyskać więcej informacji, zobacz New-WSManInstance.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Value
Określa wartość nowego elementu. Możesz również przekazać wartość do New-Item
.
Typ: | Object |
Aliasy: | Target |
Position: | Named |
Domyślna wartość: | None |
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
Możesz przekazać wartość dla nowego elementu do tego polecenia cmdlet.
Dane wyjściowe
Polecenie cmdlet zwraca obiekt DictionaryEntry podczas tworzenia nowej zmiennej środowiskowej.
Polecenie cmdlet zwraca obiekt DirectoryInfo podczas tworzenia nowego katalogu w systemie plików.
Polecenie cmdlet zwraca obiekt FileInfo podczas tworzenia nowego pliku w systemie plików.
Polecenie cmdlet zwraca obiekt AliasInfo podczas tworzenia nowego aliasu.
Polecenie cmdlet zwraca obiekt FunctionInfo podczas tworzenia nowej funkcji.
Polecenie cmdlet zwraca obiekt PSVariable podczas tworzenia nowej zmiennej.
Uwagi
Program PowerShell zawiera następujące aliasy dla programu New-Item
:
- Wszystkie platformy:
ni
New-Item
jest przeznaczony do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PsProvider
. Aby uzyskać więcej informacji, zobacz about_Providers.