Untitled
unknown
powershell
2 years ago
2.4 kB
4
Indexable
# Wyrażenie regularne dla wzoru numeru SSID # Wyszukuje numery SSID wszystkich użytkowników windowsa z kwantyfikatorami liczbowymi więcej niż jeden dla # końcowego ciągu znaków użytego symbolem $ $PatternSID = 'S-1-5-21-\d+-\d+\-\d+\-\d+$' # Pobiera nazwę usera, SID i lokację pliku ntuser.dat dla wszystkich userów # ntuser.dat zawiera m.in to co jest w regedicie. # Stała nie zmieniamy # Ładuje nazwy profili $ProfileList = gp 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\*' | Where-Object {$_.PSChildName -match $PatternSID} | Select @{name="SID";expression={$_.PSChildName}}, @{name="UserHive";expression={"$($_.ProfileImagePath)\ntuser.dat"}}, @{name="Username";expression={$_.ProfileImagePath -replace '^(.*[\\\/])', ''}} # Pobiera wszystkich użytkowników i SID'y w kluczu HKEY_USERS (pobiera wszystkich z pliku ntuser, którzy są obecnie zalogowani do systemu $LoadedHives = gci Registry::HKEY_USERS | ? {$_.PSChildname -match $PatternSID} | Select @{name="SID";expression={$_.PSChildName}} # Pobiera wszystkich userów tylko teraz tych, którzy nie są zalogowani $UnloadedHives = Compare-Object $ProfileList.SID $LoadedHives.SID | Select @{name="SID";expression={$_.InputObject}}, UserHive, Username # Montuje 'dysk' dla HKEY_USERS. Tylko on musi być montowany przed uruchomienie, inne np HKCU, HKM i inne nie potrzebuje tego New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS # Tworzy pętle foreach które przechodzi przez każdego usera Foreach ($item in $ProfileList) { # Ładuje Ntuser.dat IF ($item.SID -in $UnloadedHives.SID) { reg load HKU\$($Item.SID) $($Item.UserHive) | Out-Null } # Tu modyfikujemy klucz rejestru w zaleznosci co chcemy zrobic ##################################################################### New-ItemProperty -Path "HKU:\$($Item.SID)\Control Panel\Desktop" -Name "MouseWheelRouting" -PropertyType DWord -Value 0 -Force | Write-Output ##################################################################### # Odmontowywuje ntuser.dat IF ($item.SID -in $UnloadedHives.SID) { ### Garbage collection and closing of ntuser.dat ### [gc]::Collect() reg unload HKU\$($Item.SID) | Out-Null } }
Editor is loading...