Wcześniej wykonaliśmy szereg poleceń programu PowerShell z wiersza poleceń.Tu przyjrzymy się, jak wykonywać bardziej złożone polecenia. W poprzednich przykładach widziałeś, że opcja -command może być używana do przekazywania poleceń w wierszu poleceń; jednak wiele opcji programu PowerShell można skrócić. W tym laboratorium zaloguj się ponownie do komputera docelowego w laboratorium, używając protokołu RDP jako użytkownika docelowego. Uruchom powłokę poleceń, używając uprawnień użytkownika „docelowego”. W tym przypadku możemy po prostu użyć opcji -com, jak pokazano tutaj, i zaoszczędzić sobie pisania:
Tutaj mogliśmy wydać proste zapytanie Windows Management Instrumentation (WMI) za pomocą programu PowerShell i bez żadnych dodatkowych cudzysłowów wokół zapytania. W przypadku podstawowych zapytań będzie to działać dobrze; jednak w przypadku bardziej złożonych zapytań możemy napotkać problem. Zobaczmy, co się stanie, gdy spróbujemy uzyskać dodatkowe informacje o nazwie hosta:
Tutaj widać, że nie mogliśmy użyć znaku potoku do przekazywania danych z jednej metody do drugiej, ponieważ jest on interpretowany przez system operacyjny. Najłatwiejszym sposobem obejścia tego jest użycie cudzysłowów, tak jak tutaj:
Zwróć uwagę, że nazwa hosta może być inna. Tym razem znak potoku nie został zinterpretowany przez system operacyjny, więc mogliśmy uzyskać tylko informacje o nazwie hosta z wyjścia zapytania WMI. W przypadku prostych poleceń działa to dobrze, a jeśli wykonujemy tylko kilka z tych poleceń, dość łatwo jest dodać je do skryptu wsadowego i uruchomić je stamtąd.