2011-11-25 13 views
5

हमारे सभी टेस्टबॉक्स VMs (विंडोज सर्वर 2003/08) पर चलते हैं और परीक्षक केवल दूरस्थ डेस्कटॉप के माध्यम से उन्हें एक्सेस करते हैं।पावरहेल के साथ विंडोज रिमोट-डेस्कटॉप को निष्क्रिय कैसे करें?

कुछ रखरखाव चरणों को सिस्टम से सभी उपयोगकर्ताओं को लात मारने और दूरस्थ डेस्कटॉप के माध्यम से पहुंच को निष्क्रिय करने की आवश्यकता होती है।

मैंने पावरहेल में रखरखाव स्क्रिप्ट लिखना शुरू किया और अस्थायी रूप से दूरस्थ डेस्कटॉप को निष्क्रिय करने का एक तरीका ढूंढ रहा हूं। क्या यह संभव है, इसके लिए कोई सीधा-आगे समाधान?

क्या मैं अब तक की कोशिश की है:

  • एक सहयोगी मोड़ बंद नेटलॉगऑन सेवा की सिफारिश की है, लेकिन मैं अभी भी रिमोट डेस्कटॉप के साथ लॉग ऑन कर सकते हैं।
  • एक अन्य सहयोगी फ़ायरवॉल के साथ
    रिमोट डेस्कटॉप के लिए बंदरगाह अवरुद्ध अक्षम करने की सिफारिश की है, लेकिन किसी भी तरह है कि मुझे (?) क्योंकि मैं एक प्रणाली के एक भाग को बदलने के लिए प्रभावित करने के लिए नहीं करना चाहते करने के लिए सही
    महसूस नहीं करता है दूसरा भाग। क्या मैं भी picky हूँ ...? ;)

किसी भी संकेत की अत्यधिक सराहना की।

चीयर्स, टोबी

उत्तर

1

अब मैं एक समाधान है कि मुझे के लिए एकदम सही काम करता है मिल गया है। विंडोज सर्वर 2008 एक विशेषता "Terminal Services Server Drain Mode"

कहा जाता है ... टीएस सर्वर नाली मोड, सर्वर पर लॉग इन करने, जबकि वर्तमान में उन पर लॉग इन की अनुमति देता है अपने मौजूदा सत्र के लिए पुन: कनेक्ट करने से नए उपयोगकर्ताओं को रोकता है के साथ आता है। मौजूदा उपयोगकर्ताओं को अपना काम सहेजने और लॉग ऑफ करने की प्रतीक्षा करके, व्यवस्थापक उपयोगकर्ता डेटा हानि के बिना रखरखाव के लिए टर्मिनल सर्वर को नीचे ले जा सकता है।

मैं नाली मोड सक्रिय इससे पहले कि मैं यह सुनिश्चित करें कि कोई भी में लॉग ऑन है और उसके बाद मैं सक्रिय निम्न कोड के साथ नाली मोड:

Invoke-Command -ComputerName myServerHostName -ScriptBlock 
{ 
    Set-ItemProperty -Path "HKLM:\SYSTEM\Currentcontrolset\control\Terminal Server" -Name TSServerDrainMode -Value 1 
} 

हालांकि मैं एक रजिस्ट्री कुंजी को बदलने हूँ, मैं नहीं कर रहा हूँ बदलावों के प्रभावी होने के लिए सर्वर को रीबूट करने की आवश्यकता है। यह रीबूट के बिना काम करता है।

जब मैं रखरखाव कार्य कर रहा हूं तो मैं "-वेल्यू 0" के साथ निष्क्रिय नाली मोड और उपयोगकर्ता फिर से लॉग इन करने में सक्षम हैं।

एक आकर्षण की तरह काम करता है!


मेरी मूल जवाब था:

$Terminal = Get-WmiObject Win32_Terminal –Computer “ComputerName” 
$Terminal.Enable($True) 

अन्य संभावित और दिलचस्प कोड के टुकड़े:

मेरे perferred समाधान है कि मैं व्यापक वेब खोज के माध्यम से मिल गया है (यह भी अपरीक्षित) इस प्रकार है , या विषय पर भिन्नताएं, जो मैंने पाया है:

$myWmiObject = Get-WmiObject -namespace “rootCIMV2TerminalServices” -class Win32_Terminal -Computer “ComputerName” -Authentication PacketPrivacy

या

Set-WmiInstance -namespace “rootCIMV2TerminalServices” -class Win32_Terminal -ComputerName “ComputerName” -Authentication PacketPrivacy -Argument @{fEnableTerminal=0}

या

Get-WmiObject -ComputerName “ComputerName” -namespace root/cimv2/terminalservices -class Win32_Terminal -Authentication PacketPrivacy

0

आज सुबह (संयोग) मैं इस देखा कुछ और के लिए खोज रहे: "Checking and enabling Remote Desktop with PowerShell"।

सारांश: रजिस्ट्री मैनिपुलेशन शामिल है।

+0

हाय रिचर्ड, बहुत बहुत शुक्रिया पर डिफ़ॉल्ट रूप से अक्षम हैं। हां, यह काम करता है, लेकिन दुर्भाग्य से मेरी स्थिति में जहां मुझे सिस्टम को रीबूट नहीं करना चाहिए। – Tobias

1

आप दूरस्थ डेस्कटॉप निष्क्रिय करने के लिए डिफ़ॉल्ट रूप से 1 के लिए

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 

मूल्य निर्धारित करने की आवश्यकता है, लेकिन रिबूट की जरूरत है।

एक और तरीका है कि रिबूट की जरूरत नहीं लगते (नहीं परीक्षण):

$ts=get-WMIObject Win32_TerminalServiceSetting -computername remotemachinename 

$ts.SetAllowTSConnections(0) 
+0

हाय क्रिश्चियन, बहुत बहुत धन्यवाद। यही वह समाधान है जिसे मैं ढूंढ रहा था। दुर्भाग्य से मैं कई समाधान नीतियों और अधिकार मुद्दों के कारण हमारे पर्यावरण में इस समाधान का उपयोग नहीं कर सकता। – Tobias

0

मैं अक्सर इस gWmi कोड का उपयोग करें:

#Remote change logon /disable 
$TS_Connector = gwmi Win32_TerminalServiceSetting -N "root/cimv2/terminalservices" -computername $ServerName -Authentication PacketPrivacy 
$TS_Connector.Logons=1 
$TS_Connector.Put() 

और लॉग ऑन को सक्षम करने के लिए

#Remote change logon /enable 
$TS_Connector = gwmi Win32_TerminalServiceSetting -N "root/cimv2/terminalservices" -computername $ServerName -Authentication PacketPrivacy 
$TS_Connector.Logons=0 
$TS_Connector.Put() 

बजाय आह्वान कमान() क्योंकि nead आरसीपी openned, और RPC कनेक्शन खिड़कियों

संबंधित मुद्दे