पॉवरशेल फ़ॉन्ट फ़ॉन्ट और आकार को अनुकूलित करना


10

हम निम्न कमांड का उपयोग करते हुए डिफ़ॉल्ट शेल के रूप में पॉवरशेल सेटअप के साथ विंडोज़ 2012 सर्वर कोर सिस्टम की एक संख्या है:

$RegPath = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon"
Set-ItemProperty -Confirm  -Path $RegPath -Name Shell -Value 'cmd.exe /C start /max PowerShell.exe -noExit'

मुझे पता चला है कि हम c: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ profile.ps1 पर एक विशेष पॉवरशेल स्क्रिप्ट के साथ पॉवरशेल फ़ॉन्ट रंग को अनुकूलित कर सकते हैं। यह स्क्रिप्ट सभी उपयोगकर्ताओं द्वारा उपयोग की जाती है।

हालाँकि अब मैं फ़ॉन्ट चेहरे और फ़ॉन्ट आकार (सभी उपयोगकर्ताओं के लिए फिर से) को अनुकूलित करना चाहता हूं जो लगातार है। IE अगर मैं सर्वर से लॉग आउट करता हूं और वापस लॉग इन करता हूं तो मैं चाहता हूं कि सेटिंग्स बरकरार रहें। इसी तरह अगर मैं व्यवस्थापक के रूप में लॉगिन करता हूं, या मेरे स्वयं के खाता अधिकार को समान दिखना चाहिए - समान फ़ॉन्ट रंग, फ़ॉन्ट चेहरा और फ़ॉन्ट आकार का उपयोग करें।

पॉवर्सशेल ISE ​​के साथ यह संभव है कि फॉन्ट फेस और फॉन्ट साइज़ को सेट किया जाए:

$psISE.Options.FontName = 'Lucida Sans Console' 
$psISE.Options.FontSize = 14

व्हाट्सएप पावर के लिए बराबर है, हालांकि?

जवाबों:


4

पॉवर्सशेल (ISE नहीं) "कंसोल होस्ट" का लाभ उठाता है, जो प्राचीन MS-DOS कमांड प्रॉम्प्ट से थोड़ा अधिक आधुनिक अपडेट है । कंसोल होस्ट विंडोज के आधुनिक संस्करणों के साथ कमांड प्रॉम्प्ट को संगत रखने का माइक्रोसॉफ्ट का तरीका था, लेकिन पुराने कंसोल ऐप के साथ अभी भी संगत है।

जब आप Powershell.exe लॉन्च करते हैं, तो csrss..exe एक बच्चे की प्रक्रिया को जन्म देता है जिसे conhost.exe कहा जाता है। जब आप Cmd.exe लॉन्च करते हैं तो यह व्यवहार समान होता है।

लेकिन चूंकि उन्हें पुराने कंसोल ऐप के साथ संगतता बनाए रखना था, इसलिए वे लुक को बदल नहीं सकते थे और न ही बहुत अधिक महसूस कर सकते थे, और न ही वे आंतरिक इंटरफेस के एक गुच्छा को बदलते और तोड़ सकते थे।

मैं यह नहीं कहने जा रहा हूं कि यह असंभव है, लेकिन यह जितना मुश्किल होगा उतना मुश्किल होगा।

अंदर कुछ नहीं है (Get-Host).UI.RawUISystem.Console.NET क्लास में कुछ भी नहीं है ।

आप कुछ ऐसा करके रजिस्ट्री में फ़ॉन्ट चेहरा और आकार बदल सकते हैं:

(संपादित करें: अंडरस्कोर नहीं स्लैश)

Set-Location HKCU:\Console
New-Item '.\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe'
Set-Location '.\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe'

New-ItemProperty . FaceName -type STRING -value "Lucida Console"
New-ItemProperty . FontFamily -type DWORD -value 0x00000036
New-ItemProperty . FontSize -type DWORD -value 0x000c0000
New-ItemProperty . FontWeight -type DWORD -value 0x00000190

कर्नेल में निर्यात का एक गुच्छा भी है। सभी फ़ॉन्ट बदलते हैं:

typedef struct _CONSOLE_FONT {

   DWORD index;

   COORD dim;

} CONSOLE_FONT; 

BOOL WINAPI SetConsoleFont(HANDLE hOutput, DWORD fontIndex);
BOOL WINAPI GetConsoleFontInfo(HANDLE hOutput, BOOL bMaximize, DWORD numFonts, CONSOLE_FONT* info);
DWORD WINAPI GetNumberOfConsoleFonts();
BOOL WINAPI SetConsoleIcon(HICON hIcon);

मैंने रजिस्ट्री के माध्यम से फ़ॉन्ट बदलने के लिए ऊपर दिए गए कोड का उपयोग करने की कोशिश की (लेकिन ऐसा लगता है कि कुछ भी नहीं किया गया है)। क्या प्रभावी होने के लिए सेटिंग के लिए कुछ आवश्यक है?
ब्रैड

सही रजिस्ट्री कुंजियों की तरह लगता है (कम से कम विंडोज़ सर्वर 2012 के लिए) अलग-अलग सेट-लोकेशन हैं। ' ऐसा लगता है कि कोड निष्पादित हो रहा है, लेकिन मेरा फ़ॉन्ट पावरस्ले कंसोल को परिवर्तित नहीं करता है।
ब्रैड

इस मॉड्यूल का उपयोग करना: Gallery.technet.microsoft.com/scriptcenter/… मैं फोंट को बदलने में सक्षम था, लेकिन ऐसा लगता है कि विकल्प बहुत सीमित हैं। वास्तविकता में मेरे लिए उपलब्ध फोंट या तो विकृत हो गए हैं, बहुत बड़े या बहुत छोटे। मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं विभिन्न फ़ॉन्ट आकारों का चयन कैसे कर सकता हूं।
ब्रैड

1
हां, जिस व्यक्ति ने लिखा है कि कर्नेल 32.dll से उन निर्यातों को रोक रहा है जिनके बारे में मैं बात कर रहा था। और हाँ विकल्प काफी सीमित हैं। इसीलिए जब आप GUI के माध्यम से किसी भी कंसोल ऐप के लिए फ़ॉन्ट बदलते हैं, तो आपके पास केवल 3 फ़ॉन्ट विकल्प होते हैं। Powershell सहित आप अपने कंसोल ऐप में कॉमिक सैंस नहीं कर सकते। उस आदमी की स्क्रिप्ट में, वह फ़ॉन्ट को सेट कर रहा है Set-ConsoleFont 28। प्रत्येक फ़ॉन्ट संख्या में एक पूर्व निर्धारित ऊंचाई और चौड़ाई होती है। जैसे जब आप इसे GUI में बदलते हैं।
रयान रेज़

ऐसा लगता है कि फ़ॉन्ट चेहरे और आकार को बदलने के रूप में सरल रूप में कुछ (जो एक मान लेना एक अल्पविकसित परिवर्तन होगा) लगभग असंभव है (या कम से कम अत्यंत कठिन / बहुत सीमित विकल्पों के साथ)। इसलिए मुझे लगता है कि हम एक फ़ॉन्ट आकार के साथ फंस गए हैं जो मुझे स्क्विंटिंग से अंधा होने का कारण होगा - धन्यवाद माइक्रोसॉफ्ट।
ब्रैड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.