powershell – wywołanie funkcji
piszę za karę – wczoraj rzucałem klątwy więc dziś na tablicę “zapamiętam jak się wywołuje funkcje w PS”… ograniczę się jednego razu.
trywialna funkcja:
function fun {
param ($a, $b)
$a + $b
}
fun(1,2)
spodziewałem się na ekranie “3” a tymczasem dostałem 1<CRLF>2. $a okazało się być zwracane jako obiekt jakiś dziwny… a to dla tego że funkcje wywołuje się:
fun 1 2
jakoś tak nieintuicyjnie. de facto jest to to samo co fun (2) (3) więc podając fun(1,2) jest to wywołanie z pierwszym parametrem “1,2” i drugim null.
i pomimo,że podobne funkcje widziałem na wielu stronach nie mogło to do mnie dotrzeć. to jak w tym doświadczeniu, w którym trzeba policzyć ile było podań piłki, ew. w historii o Inkach, którzy nie widzieli zbliżających się łodzi…
eN.
migawki, VSS, shadow copy, previous versions i inne takie
czyli tak na prawdę wszystko to samo z trochę innego punktu widzenia. w razie gdyby ktoś nie przeglądał bloga GT (wątpliwe ale…) to ten art ma status ‘must see’.
a ponieważ ja mam tendencje do wyjaśniania rzeczy jasnych dodam od siebie trochę podstaw/podsumowania:
to tak dla jasności, żeby nie pogubić się w skrótach.
dodatkowo jeszcze ciekawostka: na kontrolerach domeny jest jeszcze jedno narzędzie, które pozwala utworzyć snapshot: ntdsutil. czym to się różni od zwykłego? snapshot ntdsutil jest typu “ApplicationRollback” co wiąże się z atrybutami “Persistent, No auto release, Differential, Auto recovered” natomiast zwykły snapshot, wykonany za pomocą komponentu Previous Versions ma atrybuty: “Persistent, Client-Accessible, No auto release, No writers, Differential”. Atrybut client-accessible powoduje, że kiedy z interfejsu się sprawdza dostępne migawki – widać ich listę. poza tym różnic specjalnych nie ma – działa mklink, w snapshocie są wszystkie pliki całego dysq [a nie, jak by można się spodziewać tylko pliki bazy NTDS], itd.
przy okazji jeszcze jedna ciekawostka: pomimo, że powershell ma być zastępstwem dla cmd, to komeny mklink nie implementuje. obejściem może być albo użycie [LOL] :
albo użycie fsutil create hardlink.
zrobienie snapshotu dostępnego przez sieć bez programowania nie udało mi się znaleźć. miło byłoby móc zrobić snapshot i zdalnie dostawać się do kopii plików..
eN.