Ich verwende Windows Server 2008 R2. Ich möchte wissen, welche SMB-Version auf meinem Server aktiviert ist.
Ich habe den folgenden Befehl in PowerShell verwendet, um die installierten SMB-Versionen zu ermitteln:sc.exe qc lanmanworkstation
In der Ausgabe zeigt DEPENDENCIES zwei Versionen von SMB: MRxSmb10
und MRxSmb20
.
Jetzt besteht die Verwirrung darin, welche der beiden installierten Versionen auf meinem Server aktiviert ist. Da Windows Server 2008 R2 get-smbconnection
den Befehl nicht unterstützt, kann ich die spezifische Version nicht ermitteln.
Ich habe auch den Registrierungspfad überprüft HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
und es gibt keinen Eintrag zur SMB-Version.
Kann mir bitte jemand sagen, wie ich feststelle, welche SMB-Version auf dem Server aktiviert ist, wenn es mehr als eine SMB-Version gibt?
Antwort1
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Wenn Sie den Schlüssel für SMB1
mit nicht sehen REG_DWORD: 0
fürdeaktiviert, dann wird es aktiviert, was sich mit der anderen Methode ergänzt, die die lanmanworkstation
vorhandene Abhängigkeit für beide angegeben hat MRxSmb10
, und RxSmb20
.
Wie beschrieben inSo erkennen, aktivieren und deaktivieren Sie SMBv1, SMBv2 und SMBv3für Windows Server 2008 R2 können Sie SMBv1 deaktivieren mit
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Danach sc.exe query lanmanworkstation
sollte nur noch angezeigt werden MRxSmb20
.
Antwort2
echo Verification de l'etat des protocoles SMB : echo --------------------------------------- echo. for %%V in (1 2) do ( for /F %%L in ('sc qc lanmanworkstation ^| find "mrxsmb%%V0"') do ( echo - Le gestionnaire reseau depend du protocole SMB V%%V for /F %%S in ('sc query mrxsmb%%V0 ^| find /C "RUNNING"') do ( IF %%S EQU 1 ( echo OK, le service SMB V%%V est en cour d'execution, poursuite de l'execution du script ) else ( echo. echo ******************************************************************************************************** echo SMB V%%V n'est pas en cours d'execution, arret du script echo Dans une console administrateur, taper les commandes ci-dessous puis redémarrer le poste si nécessaire : echo. echo C:^> sc qc lanmanworkstation ^(pour visualiser les dependances, mrxsmb10 = SMB V1, mrxsmb20 = SMB V2^) echo C:^> sc config lanmanworkstation depend= bowser/mrxsmb20/nsi ^(Pour exclure la dependance du protocole SMB V1^) echo C:^> sc config mrxsmb10 start= disabled ^(Pour désactiver SMB V1^) echo C:^> sc config mrxsmb20 start= auto ^(Pour lancer automatiquement SMB V2^) echo C:^> net stop workstation /YES ^(Pour redémarrer le service^) echo C:^> net start workstation echo ******************************************************************************************************** goto END_SCRIPT ) ) ) )