Add-Type -t 'public class User32 {[System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool LockWorkStation();}'; [User32]::LockWorkStation() - zablokuj ekran PowerShellem
tty1 · powershell
PS> Add-Type -t 'public class User32 {[System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool LockWorkStation();}'; [User32]::LockWorkStation()
#Powershell#ProzaŻycia#Windows
Podobnie jak w protipie /pl/0081 wykorzystujemy funkcję LockWorkStation windowsowej biblioteki user32.dll. Tym razem jednak nie wykorzystujemy aplikacji rundll32.exe lecz importujemy bibliotekę do aktualnej sesji PowerShella.
Wersja bardziej czytelna, ale już nie jako oneliner, mogłaby wyglądać następująco:
Add-Type -TypeDefinition @'
public class User32 {
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool LockWorkStation();}
'@
[User32]::LockWorkStation()
Jak już zapewne wiecie, w tle uruchomi się kompilator csc.exe, zgodnie z tym co omawialiśmy przy okazji protipa /pl/007f.
Przydatne linki
▸
learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/add-type
dokumentacja cmdletu Add-Type
web ↗
#
aptm.in/protip/0081
rundll32 user32,LockWorkStation - zablokuj ekran z wiersza poleceń
protip ↗
#
aptm.in/protip/007f
Add-Type -t 'public class Foo { public static void Main(){ System.Console.WriteLine("Ciekawe te protipy!");}}';[Foo]::Main() - uruchom kod C# prosto z PowerShella
protip ↗