Get-ItemProperty u PowerShellu: Kompletan vodič s primjerima

Posljednje ažuriranje: 14/08/2025
Autor: Isaac
  • Get-ItemProperty dohvaća svojstva u FileSystem-u, Registry-u i IIS-u s konzistentnom sintaksom.
  • Glavna putanja/Doslovna putanja, Naziv, Uključi/Isključi, Filter i Akreditiv za fino podešavanje upita.
  • Pravi slučajevi: verzija Windows, instalirani softver, IIS povezivanja i metapodaci datoteka.
  • Napredni scenariji: daljinski upravljač, aktivacija Windowsa, historija USB i rješavanje grešaka.

Komanda Get-ItemProperty u PowerShellu

Ako radite sa Windowsom i PowerShellSavladavanje cmdleta Get-ItemProperty otvara vrata čitanju svojstava datoteka, mapa, ključeva registra, pa čak i objekata koje otkrivaju drugi pružatelji usluga. To je jedan od takvih naredbe koji se svakodnevno koriste za reviziju sistema, dobijanje metapodataka ili pregled konfiguracija bez potrebe za otvaranjem bilo kakvog grafičkog interfejsa.

U ovom praktičnom vodiču pronaći ćete od njegovu sintaksu i parametre na stvarne primjere primijenjene na Registar, datotečni sistem i IIS, zajedno sa trikovi za udaljena okruženja i rješavanje uobičajenih grešaka. Sve s jasnim fokusom, na španskom jeziku i s naredbama spremnim za lijepljenje u vašu konzolu, tako da možete tečno raditi od prve minute.

Šta je Get-ItemProperty u PowerShellu?

Get-ItemProperty je cmdlet koji dohvaća svojstva jedne ili više stavki na određenoj lokaciji, poštujući osnovni PowerShell provajder (FileSystem, Registry, itd.). Na primjer, možete pročitati svojstvo LastAccessTime datoteke, dobiti vrijednosti iz ključa registra ili upitati svojstva IIS objekata putem njihovog dobavljača.

Velika prednost je njegova konzistentnost: ista ideja funkcioniše na različitim izvorima podataka, a također podržava i piping i džoker znakove u većini scenarija putem svojih parametara. Ako se krećete između datoteka, registra i imenskih prostora poput IIS-a, osjećat ćete se kao kod kuće s ovom cmdletom.

Tu je i alias gp, koji je vrlo praktičan za brzo pisanje u konzoli (gp je ekvivalentan Get-ItemProperty), i radi na bilo kojem provajderu izloženom u sesiji. Možete vidjeti dostupne provajdere sa Get-PSProvider.

Opšta upotreba Get-ItemProperty

Kako prikazati priručnike i pomoć za sintaksu komandi u PowerShellu
Povezani članak:
Kako pregledati pomoć i priručnike za naredbe u PowerShellu

Sintaksa i skupovi parametara

Get-ItemProperty podržava dva glavna načina za određivanje putanje: korištenje Path (podrazumevano) ili LiteralPath, pored filtriranja po nazivu svojstva pomoću Name. Izbor između Path i LiteralPath zavisi od toga da li vam je potrebno da PowerShell interpretira džoker znakove ili ne.

Oblik sa putanjom (zadano):

Get-ItemProperty  <String[]>  <String[]>]  >] >]  

Forma sa LiteralPath (bez interpretacije džoker znakova):

Get-ItemProperty  <String[]>] -LiteralPath <String[]>  >] >]  

Prilikom korištenja LiteralPath-a, PowerShell neće tretirati nijedan znak kao džoker, te se preporučuje da izbjegnute putanje stavite u navodnike kako biste izbjegli neželjena tumačenja.

Sintaksa sa putanjom i doslovnom putanjom

zapisnik PowerShella
Povezani članak:
Kako urediti Windows registar pomoću PowerShella: Praktični vodič i naredbe

Ključni parametri i kako ih pravilno koristiti

Pored Path, LiteralPath i Name, postoji niz korisnih parametara za savladavanje (Include, Exclude, Filter, Credential), kao i uobičajeni PowerShell parametri za kontrolu izlaza i ponašanja cmdleta. Najvažniji su sažeti u nastavku, zajedno s praktičnim detaljima.

  Kompletan vodič za kreiranje USB-a za pokretanje

-Put

Označava putanju elementa ili elemenata i podržava džoker znakove. To je zadani skup parametara, pozicija 0, i prihvata unos putem cijevi i putem naziva svojstva.

  • tip: String []
  • zamjenski znakovi: Da
  • Pozicija: 0
  • Obavezno: Da u cjelini
  • Kanalizacija: Da (po vrijednosti i po nazivu svojstva)

-DoslovniPut

Tačne rute bez interpretiranja džoker znakova. Koristite ga kada vaša putanja sadrži posebne znakove ili želite izbjeći interpretacije. Koristite ga s jednostrukim navodnicima da biste zanemarili escape sekvence.

  • tip: String []
  • zamjenski znakovi: Ne
  • Alias: PSPath, LP
  • Obavezno: Da u cjelini
  • Kanalizacija: Po nazivu nekretnine

-Name

Filtrirajte svojstva koja želite preuzeti po imenu, dozvoljavajući džoker znakove. Korisno je kada vam je potrebno samo jedno ili više specifičnih svojstava.

  • tip: String []
  • zamjenski znakovi: Da
  • Alias: PSProperty
  • Pozicija: 1

-Uključi i -Isključi

Omogućavaju vam da ograničite koje elemente uključiti ili isključiti, što je uglavnom efikasno kada putanja ukazuje na sadržaj kontejnera (na primjer, 'C:\\Windows\\*'). Oba prihvataju džoker znakove i primaju niz obrazaca.

  • -Uključi tip: String[] — zamjenski znakovi: Da - unaprijed određeno: nijedan
  • -Isključi tip: String[] — zamjenski znakovi: Da - unaprijed određeno: nijedan

-Filter

Primijenite filter na nivou dobavljača, što je efikasnije od kasnijeg filtriranja u PowerShellu. Pružatelj FileSystem-a zasnovan je na sintaksi džoker znakova i smanjuje opterećenje dohvaćanjem već filtriranih objekata.

  • tip: niz
  • zamjenski znakovi: Da (u zavisnosti od dobavljača)

-Akreditiv

Omogućava vam da navedete akreditive (PSCredential) kada to podržava dobavljač. Korisno u udaljenim scenarijima ili sa zaštićenim pristupom.

  • tip: PSCredential
  • unaprijed određeno: Trenutni korisnik
  • zamjenski znakovi: Ne
  • Cjevovod prema nazivu svojstva: Da

Uobičajeni parametri

Podržava uobičajene PowerShell prekidače (-Debug, -ErrorAction, -Verbose, -WarningAction, -OutVariable, itd.), veoma korisno za rukovanje greškama, detaljniji prikaz i kanalisanje informacija (pogledajte about_CommonParameters).

Ulazi i izlazi cmdleta

Ulaz: Prihvata stringove (String) sa rutama cjevovoda. Ovo olakšava direktno prosljeđivanje putanja koje generiraju drugi cmdleti u Get-ItemProperty.

Izlaz: Vraća objekt za svako vraćeno svojstvo, čiji tip ovisi o pružatelju (npr. FileInfo ili DirectoryInfo u FileSystem; specifične vrijednosti u Registryju). Tipovi kao što su String, Boolean ili DateTime mogu se također pojaviti ovisno o svojstvu koje upitujete.

Ulazi i izlazi u Get-ItemProperty

Osnovni primjeri sa FileSystem-om

Za početak, tipičan slučaj je konsultovanje svojstava direktorijuma ili datoteke i, ako želite, formatu izlaz da biste ga vidjeli kao listu. Ovo vam daje brz pregled metapodataka i vremenskih oznaka.

Dobijte informacije iz određene mape:

Get-ItemProperty 'C:\\Windows'

Navedite svojstva datoteke i prikažite ih kao listu:

Get-ItemProperty 'C:\\Test\\Weather.xls' | Format-List

Ako želite specifična svojstva iz više dokumenata, kombinujte ih sa Select-Object za kompaktni izlaz. Na primjer, za dokumente od riječ u korisnikovom folderu:

Get-ItemProperty 'C:\\Usuarios\\Administrador\\Documents\\*.docx' | Select-Object Name, LastWriteTime, Length

Za proširene metapodatke (kao što su EXIF detalji o slikama) možete preuzeti COM objekt 'Shell.Application' i čitati napredna svojstva po indeksu. Posebno je korisno za fotografije ili multimedijalne datoteke:

$shell  = New-Object -ComObject 'Shell.Application'
$folder = $shell.Namespace('C:\\Photos')
$file   = $folder.ParseName('Vacation2023.jpg')
# Autor (índice 20, según la vista del shell)
$folder.GetDetailsOf($file, 20)

Rad s Windows registrom

Registar je jedno od najčešćih odredišta za Get-ItemProperty. Od sistemskih informacija do lista softvera, sve vam je na dohvat ruke s pravim putanjama i GP aliasima za brzinu. Za detaljnije informacije o srodnim temama, možete pogledati naš Tutorijal za uređivanje registra pomoću PowerShella.

  Kako preimenovati hipervezu u Wordu i savladati veze u svojim dokumentima

Čitanje vrijednosti iz ključa verzije sistema:

Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'

Uzmite određeno svojstvo (npr. naziv proizvoda):

(Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion').ProductName

Dohvati određenu vrijednost unutar podključa: Putanja označava podključ, a sa -Name birate vrijednost tog unosa.

Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion' -Name 'ProgramFilesDir'

Dohvati sva imena vrijednosti i podatke u PowerShell ključu: Vidjet ćete svojstva kao što su ApplicationBase, ConsoleHostAssemblyName, PowerShellVersion ili RuntimeVersion.

Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\1\\PowerShellEngine'

Lista instaliranog softvera (64-bitna verzija): Ovaj obrazac se široko koristi u inventarizaciji. Ako želite dublje istražiti tehnike revizije u registru, saznajte i Za listanje instaliranih programa u Windowsu pomoću PowerShella.

Get-ItemProperty 'HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*' \
  | Where-Object DisplayName -ne $null \
  | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate \
  | Sort-Object DisplayName

Lista instaliranog softvera (32-bitni na 64-bitnom OS-u): Ne zaboravite provjeriti putanju Wow6432Node za 32-bitne aplikacije.

Get-ItemProperty 'HKLM:\\Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*' \
  | Where-Object DisplayName -ne $null \
  | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate \
  | Sort-Object DisplayName

Još jedna klasična varijanta, sortiranje po datumu instalacije:

Get-ItemProperty 'HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*' \
  | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate \
  | Sort-Object InstallDate

Provjerite verziju Windowsa sa određenim svojstvima (idealno za brze izvještaje):

Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion' \
  | Select-Object ProductName, ReleaseId, CurrentBuild

Historija ažuriranja/nadogradnje sistema Windows (ključevi za podešavanje): koristan upit za reviziju promjena verzija.

Get-ItemProperty -Path 'HKLM:\\SYSTEM\\Setup\\Source OS*' \
  | Select-Object PSChildName, ProductName, ReleaseId, DisplayVersion, CurrentBuild

IIS administracija: Set-ItemProperty, New-ItemProperty, Get-Item

IIS provajder vam omogućava upravljanje web-lokacijama, aplikacijama, virtualnim direktorijima i skupovima aplikacija pomoću ugrađenih cmdleta. Stavke možete kreirati pomoću New-Item, pregledati ih pomoću Get-Item, postaviti svojstva pomoću Set-ItemProperty ili ih dodati u kolekcije pomoću New-ItemProperty. Da biste proširili svoje znanje o naprednom upravljanju, preporučujemo da posjetite .

Pogledajte ključna svojstva web-mjesta pod nazivom 'DemoSite': Izlaz prikazuje status, fizičku putanju i povezivanja, između ostalih ključnih svojstava.

Get-Item 'IIS:\\Sites\\DemoSite'

Detaljno pogledajte kolekciju povezivanja na web-mjestu: Zagrade koristimo prvo za evaluaciju, a zatim za pristup kolekciji.

(Get-ItemProperty 'IIS:\\Sites\\DemoSite' -Name 'bindings').Collection

Pregledajte složena svojstva AppPoola (npr. processModel) i pročitajte vrijeme njegovog pokretanja:

(Get-ItemProperty 'IIS:\\AppPools\\DemoAppPool' -Name 'processModel').startupTimeLimit

Dodajte novo povezivanje na lokaciju pomoću New-ItemProperty: savršeno za kolekcije kao što su 'uvezi'.

New-ItemProperty 'IIS:\\Sites\\DemoSite' -Name 'bindings' -Value @{ protocol = 'http'; bindingInformation = ':8081:' }

Promijenite jednostavno svojstvo web-lokacije pomoću Set-ItemProperty (npr. ime):

Set-ItemProperty 'IIS:\\Sites\\DemoSite' -Name 'name' -Value 'NewDemoSite'

Vraćanje na prvobitno ime je jednostavno kao ponovna primjena Set-ItemProperty s prethodnom vrijednošću:

Set-ItemProperty 'IIS:\\Sites\\NewDemoSite' -Name 'name' -Value 'DemoSite'

Kreirajte lokalnog korisnika s ADSI-jem i pokrenite AppPool pod tim identitetom, nešto uobičajeno u okruženjima koja zahtijevaju namjenske identitete:

$computer = 'WinNT://.'
$user     = $computer.Create('user', 'DemoAppPoolUser')
$user.SetPassword('Secret!!Pw3009')
$user.SetInfo()
Set-ItemProperty 'IIS:\\AppPools\\DemoAppPool' -Name 'processModel' -Value @{ userName = 'DemoAppPoolUser'; password = 'Secret!!Pw3009'; identityType = 3 }

Varijacija sa Get-Item/Set-Item korištenjem automatskog dovršavanja: vrlo praktično ako ćete igrati nekoliko nekretnina zaredom.

$demoPool = Get-Item 'IIS:\\AppPools\\DemoAppPool'
$demoPool.processModel.userName    = 'DemoAppPoolUser'
$demoPool.processModel.password    = 'Secret!!Pw3009'
$demoPool.processModel.identityType = 3
$demoPool | Set-Item

Napredni i udaljeni scenariji

Get-ItemProperty se također ističe pri izvršavanju udaljenih upita, statusa aktivacije ili čak pri praćenju veze USB uređaja. Evo nekoliko praktičnih ideja za stvarna okruženja. Za dublji uvid u zadatke udaljene administracije, možete pogledati naš Tutorijal o dodjeljivanju statičkih IP adresa u Windowsu.

  Kako instalirati izvorne Linux programe na FreeBSD

Udaljeno upitajte Registar pomoću Invoke-Command: korisno za prikupljanje informacija na više servera bez prijavljivanja na svaki od njih.

Invoke-Command -ComputerName 'SERVER01' -ScriptBlock {
  Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion'
}

Provjerite status aktivacije Windowsa na više računara i prevedite kod LicenseStatus u čitljiv tekst:

$computers = 'WORKSTATION01','WORKSTATION02','WORKSTATION03'
foreach ($computer in $computers) {
  try {
    $status = Invoke-Command -ComputerName $computer -ScriptBlock {
      (Get-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SoftwareProtectionPlatform').LicenseStatus
    } -ErrorAction Stop
    $activationStatus = switch ($status) {
      0 {'Unlicensed'}
      1 {'Licensed'}
      2 {'Out-of-Box Grace Period'}
      3 {'Out-of-Tolerance Grace Period'}
      4 {'Non-Genuine Grace Period'}
      5 {'Notification'}
      6 {'Extended Grace'}
      default {'Unknown'}
    }
    @{ Computer = $computer; ActivationStatus = $activationStatus }
  }
  catch { @{ Computer = $computer; ActivationStatus = "Error: $_" } }
}

Za zadatke inventara hardver i softver, možete pogledati i naš Tutorijal o informacijama o sistemu i hardveru pomoću PowerShella.