Co oznacza c$ i dla czego bezwzględna ścieżka nie działa?

0

Cześć.
Bawię się Powershellem. Przekopiowałem plik pomiędzy komputerami używając polecenia z internetu:

Copy-Item -Path '\\komp1\c$\Users\Ja\Downloads\picture.jpg' -Destination C:\Users\Ja\Videos\picture.jpg

Zadziałało.
Nie rozumiem tylko dwóch rzeczy:
Dla czego wpisanie zwykłej ścieżki C:... w tym wypadku nie działa?
co oznacza c$? Zwyczajne zmienne zapisuje się przecież inaczej.

2

\\komp1\c$\Users\Ja\Downloads\picture.jpg

To jest po prostu ścieżka UNC do zasobu udostępnionego na innym komputerze. Tak się składa, że Windows automatycznie udostępnia wszystkie dyski, jednak są to ukryte zasoby. Są to zasoby administracyjne (więc potrzeba odpowiednich uprawnień aby odczytać taki zasób). Dodatkowo jeśli na końcu nazwy jaką dasz dla zasobu (będzie ona widoczna w otoczeniu sieciowym, podczas mapowania dysków sieciowych) znak $ to taki zasób nie będzie widoczny. Żeby skorzystać z niego, po prostu trzeba wiedzieć jaka jest jego nazwa.

0

Czyli używam C: jeśli zasób nie jest ukryty i C$ jeśli jest ukryty?

1

Nie, jeśli chcesz dostać się do zasobu będącego na innym komputerze zawsze musisz użyć nazwy zasobu i ewentualnie ścieżki względnej.

Trochę to może byc mylące, ale ścieżki UNC dla udostępnionych zasobów definiujesz tak:

\\nazwa_komputera\nazwa_zasobu\ewentualna_sciezka_wzgledna

Tak się składa, że zasób c$ odnosi się do dysku C:\ Jeśli np. wyłączysz jawnie udostępnianie zasobu c$ wyłączysz, to nie dostaniesz się do pliku c:\Users\Ja\Downloads\picture.jpg w żaden sposób.

0

Rozumiem już jak to działa. Wielkie dzięki. A jak to się ma w przypadku komputera z Linuxem z zainstalowanym PowerShell'em? Czy jestem w stanie odczytać coś z katalogu home w taki sposób?

0

Niestety w przypadku Liniuxów nie mam pojęcia co i jak. Wiem tylko, że aby udostępnić coś dla Windows'a musisz użyć samby. Nie wiem jak to się obsługuje. Jednak taka możliwość jest. Zasady tworzenia ścieżek są analogiczne. Jak udostępnisz jakiś katalog jako zasób odwołujesz się w ten sam sposób by dostać się do pliku siedzącego głębiej.

0

Właśnie udało mi się przeglądać w Eksploratorze plików, pliki i foldery na tym drugim komputerze za pomocą ścieżki UNC. Ciekawa funkcja. Tylko że ja nie udostępniam nic za pomocą SMB. Na drugim komputerze mam tylko włączony remoting. Jak to możliwe?

0

Niestety, zupełnie nie mam doświadczenia z Linuxem. Niech ktoś mądrzejszy coś podpowie.

0

Nie nie. Ten drugi komputer ma Windowsa. Myślałem że jak włączę remoting na drugim komputerze i dodam do zaufanych na pierwszym to działa to na potrzeby Powershella. Czy manager plików odpala pod spodem PowerShella?

0

Cóż, nie korzystałem z tego remotingu nigdy, więc w zasadzie nie wiem co to jest. Zawsze wolę mieć kontrolę nad tym co i komu udostępniam ;)

A to jeszcze pewnie zależy jaki menadżer plików. Zapewne większość menadżerów korzysta z udostępnianych przez Windows funkcji systemowych do takich celów. Nie mniej jednak dróg na dostęp do jakiegoś zasobu zdalnego, jak i lokalnego można by zrobić kilka.

2

Pytałeś dla linucha UNC jest bardzo podobny

https://askubuntu.com/questions/1093066/what-is-the-unc-network-path-to-a-folder-shared-via-samba

Samby też nie trzeba się bać, ba - w windowsie też są usługi sambowe SMB do plików, ścieżek, drukarek.
Tak działa np. udostępnienie drukarki w sieci LAN.

Jeśli chodzi o menadżer plików to prędzej korzysta on z SMB niż PowerShella.
Chociaż oczywiście możesz napisać skrypty w PS.

Prosty przykład - chcesz zawsze w każdy poniedziałek o 15 godzinie kopiować z pulpitu folder: DANE do ścieżki \\komp1\c$\Users\Uzyszkodnik\Desktop\

Realizujesz to w prosty sposób, zwykłe kopiowanie w PS i skrypt podpinasz pod harmonogram zadań. A możesz polecieć w ciekawszy sposób i zrobić to np. w C#:

https://docs.microsoft.com/en-us/dotnet/api/system.io.directoryinfo?redirectedfrom=MSDN&view=net-6.0

I mieć do tego jakieś GUI i inne takie.

Na tej zasadzie działają te programiki.
Jedyny mankament, jest taki, że linux ma nieco inne wiązania plików niż windows.

Jednak od czego są gotowe funkcje, biblioteki, które rozwiązują te problemy? :)
Jeśli jednak bardzo chcesz wiedzieć jak to działa to sporo nauki przed Tobą. Bo musisz poznać trochę zagadnień sieciowych, programistycznych a potem architektury systemów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1