TL; DR - Tek seçenek başka bir süreci ortaya çıkarmak. (Yeni cmd.exe
.) Komut İstemi durumunda , daha yüksek izinlere sahip bir erişim belirteci ile yeni bir örnek başlatmak , her zaman yeni bir pencerenin oluşturulmasına neden olur.
Halen çalışan bir işleme ek izinler vermek mümkün değildir .
Yönetici haklarına sahip bir kullanıcı, Kullanıcı Hesabı Denetimi (UAC) etkin olan bir Windows makinesinde oturum açtığında, iki ayrı erişim simgesi oluşturulur :
- Tam yönetici erişimine sahip bir ve
- Standart kullanıcı erişimine sahip ikinci bir "filtre uygulanmış jeton"
Bir işlem (örneğin CMD.EXE
) yaratıldığı sırada, bu iki erişim belirteçinden birine atanır . İşlem Yönetici olarak "yükseltilmiş" olarak çalıştırılırsa, filtrelenmemiş erişim belirteci kullanılır. İşlem yönetici haklarına sahip değilse, filtrelenmiş, standart kullanıcı belirteci kullanılır.
Bir işlem oluşturulduktan sonra erişim kartını değiştirmek mümkün değildir . 1 Windows Masaüstü için bu MSDN Application Security iş parçasında , kendisini Windows Çekirdek Ekibinin bir üyesi olarak tanımlayan bir poster:
NT çekirdeği, bir işlem başladığında bir kez token anahtarlamaya izin vermek için tasarlanmamıştır. Bunun nedeni, tutamaçların, vb. Eski bir güvenlik bağlamında açılmış olmasının, uçak içi işlemlerin tutarsız güvenlik bağlamları vb. Kullanabilmeleridir. Ancak, bu Vista kadar zorlanmadı . [vurgu madeni] (Kaynak sayesinde için @Ben N )
Not: Kullanıcı Hesabı Denetimi, Windows Vista'nın piyasaya sürülmesiyle tanıtıldı .
Bu Süper Kullanıcı cevabı , aynı şeyi doğrulayan iki ek kaynağı gösterir:
Bu nedenle, Komut İstemi'ni veya başka bir işlemi yerinde yükseltmek mümkün değildir. Tek seçenek, yeni bir erişim belirteciyle başka bir işlemi başlatmaktır (istenirse orijinal sürecin başka bir örneği olabilir). Komut İstemi durumunda, daha yüksek izinlere sahip bir erişim belirteci ile yeni bir örnek başlatmak her zaman yeni bir pencerenin oluşmasına neden olur ve UAC istemleri sistemde etkinleştirilmişse, bunlar da tetiklenir.
1 Mevcut bir erişim belirtecindeki yetkileri AdjustTokenPrivileges işleviyle, ancak MSDN’ye göre ayarlayabilirsiniz :
AdjustTokenPrivileges işlevi, erişim belirtecine yeni ayrıcalıklar ekleyemez. Yalnızca belirtecin mevcut ayrıcalıklarını etkinleştirebilir veya devre dışı bırakabilir.