Windows 7: Mengarahkan folder dari PowerShell?

0

Apakah ada cara untuk mengarahkan ulang folder menggunakan PowerShell pada Windows 7? Poin bonus karena dapat melakukannya sebagai admin ke akun lain.

Untuk menjadi sangat jelas, apa yang ingin saya lakukan adalah ini . Saya TIDAK ingin mengubah direktori kerja PS, memindahkan folder ke suatu tempat atau membuat shortcut / junction / symlink / hardlink (mis. Semua hal yang bisa saya temukan solusinya di SU / SE) Hanya untuk mencegah kesalahpahaman; Saya tahu ini adalah fitur yang cukup tidak jelas. :)

Terima kasih!

Silanea
sumber

Jawaban:

0

Pengaturan ini dikendalikan oleh Folder Shell / Folder Pengguna Shell kunci:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Entri dalam subkunci ini dapat muncul di kedua subkunci Folder Shell   dan Folder Shell Pengguna dan di HKEY_LOCAL_MACHINE dan   HKEY_CURRENT_USER. Entri yang muncul di Folder Shell Pengguna pengguna   lebih diutamakan daripada yang ada di Folder Shell. Entri yang muncul   di HKEY_CURRENT_USER diutamakan daripada yang ada di HKEY_LOCAL_MACHINE.

Untuk memodifikasi kunci-kunci itu untuk akun lain, Anda harus melakukannya memuat kumpulan registri target pengguna :

PowerShell secara default akan mengekspos sarang HKLM dan HKCU melalui drive   yang bekerja karena Registry PSProvider.

get-psdrive

get-psprovider

Karena kita melihat bahwa itu adalah penyedia yang memungkinkan kita untuk memetakan sarang ini   kita bisa melangkah lebih jauh dan memetakan sarang dari file (perbarui pengguna   gatal-gatal pada sistem jarak jauh). Masalahnya dengan ini adalah Registry   PSProvider tidak mencakup file. Namun ini tidak menghentikan kami.

reg load 'HKLM\TempUser' $ntuserlocation

cd hklm:\TempUser

gci

New-PSDrive -Name HKMyUser -PSProvider Registry -Root HKLM\TempUser

cd HKMyUser:\

gci

cd c:

Remove-PSDrive HKMyUser

reg unload hklm\TempUser

Ini semua berfungsi dengan baik sampai kami mencoba membongkar file sarang atau masuk   beberapa kasus pembongkaran berfungsi dengan baik tetapi kami masih memiliki pegangan ke sarang   file (Anda dapat menggunakan sysinternals Handle.exe untuk melihat ini)

Mengapa demikian jika kita menghapus drive dan meminta Reg.exe untuk membongkar   sarang lebah? Masalahnya adalah bahwa sistem belum merilis memori yang mana   masih memiliki pointer ke file itu, mencegah kami membongkar   sarang atau menghentikan kita dari melakukan hal-hal lain.

Jadi, apa trik yang Anda minta?

Mintalah sistem untuk membersihkan referensi-referensi yang tidak lagi digunakan.

[gc]::collect()

Ini menggunakan metode statis Kumpulkan dari kelas GC di .NET yang   digunakan untuk memaksa pemulung untuk menjalankan dan menghapusnya   referensi yang tidak digunakan.

Referensi:

beatcracker
sumber