none
Script désactivation / activation SMB1 RRS feed

  • Question

  • Hello tout le monde!

    Je rencontre pas mal de soucis sous W10 en ce moment avec le SMB, ce qui fait que je suis obligé de le désactiver, puis de le réactiver dans les services windows.

    Etant un process assez "lourd" (désactiver le service, redémarrer, réactiver le service, redémarrer) j'aimerai en faire un script, pour le lancer quand nécessaire.

    De ce fait, j'ai mes 2 commandes principales qui sont:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

    et 

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

    Mais, il me manque ce qu'il y a potentiellement au milieu, et notamment des lignes de commandes permettant a Powershell de reprendre le script après le premier redémarrage.

    Etant encore un gros noob sur ce genre de programmation, je pense avoir le script dans la tête, mais je n'ai qu'une vague idée de comment le traduire en PowerShell.

    Une ame charitable pour me donner un coup de main ?

    Cordialement.

    mardi 18 février 2020 14:49

Toutes les réponses

  • Bonjour,

    si j'ai bien compristu veux un script qui active le smb au démarrage ?? travailler vous sur un poste nomad ou dans un domaine pour  un ensemble de poste ?

    tu veux que le script se lance tout seul au démarrage du poste ? ouverture de la session ? ou manuellement ? 

    mardi 18 février 2020 17:32
  • tu peux essayer cela ,

    en fait ce que tu as besoin ce n'est pas de desinstaller la fonctionnalité avec ta commande mais de désactiver le service en cas de besoin et de le réactiver pour cela tu peux utiliser la commande suivante : 

    pour desactiver :

    Set-SmbServerConfiguration -EnableSMB1Protocol $false - force

    pour reactiver :

    Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force

    pour verifier que le protocole est bien desactiver entre cette commande :

    Get-SmbServerConfiguration | Select EnableSMB1Protocol

    Cordialement,

    • Modifié M dakhama mardi 18 février 2020 17:44
    mardi 18 février 2020 17:37
  • bonjour AlphaX66

    en se basant sur les cmdlets proposées par M dakhama (merci Monsieur :-) )

    tu peux faire quelques lignes de scripts comme ceci

    # vérifier la configuration SMBv1
    $SMBV1 = Get-SmbServerConfiguration | Select EnableSMB1Protocol
    if ($SMBV1 -eq $false) # SMBV1 est désactivé, l'activer
        { 
        Set-SmbServerConfiguration -EnableSMB1Protocol $true - force
        Write-Host "SMBv1 est maintenant : " -ForegroundColor Green -NoNewline
        Write-Host "activé" -ForegroundColor Yellow
        }
    else # SMB1 est activé, le désactiver
        {
        Set-SmbServerConfiguration -EnableSMB1Protocol $false - force
        Write-Host "SMBv1 est maintenant : " -ForegroundColor Green -NoNewline
        Write-Host "désactivé" -ForegroundColor Yellow
        }

    Tu lances le script, il check et il inverse la situation quelle que soit celle-ci. (Les write-Host, c'est juste pour faire joli, tu peux les supprimer) :-)

    Cordialement

    Olivier


    mercredi 19 février 2020 07:08
  • Bonjour Olivier,

    très bon travail, le script proposé par olivier est très pratique et propre, moi je peux transformer ce script en une appli GUI avec des boutons.

    je pense que j'aurai le plaisir Olivier (Monsieur Script) :) de travailler avec toi sur des solutions, en tout cas ravi, tu fais du bien a ce forum :)

    mercredi 19 février 2020 11:05
  • A voir s'il faut activer la partie client smb ou la partie serveur SMB  ?

     Set-SmbServerConfiguration

    Set-SmbClientConfiguration

    N'importe qu'elle poste peut agir en tant que client ou serveur SMB .

    Enfin le mieux est de faire évoluer son parc afin d'arrêter d'utiliser des protocoles du siècles derniers très vulnérables entre autre au ransomware...

    mercredi 19 février 2020 11:33
  • Bonjour M Dakhama

    Générer des scripts avec des GUI, j'ai du mal avec ça. :-)

    Je sais faire quelques bricoles, comme suite à Read-Host ou on demande à un user de choisir un fichier (en input par ex.), ça lance automatiquement un explorateur sur un répertoire prédéfini et c'est filtré sur un type de fichier prédéfini. Comme ça, il n'a pas à saisir le path dudit fichier et on est certain qu'il existe, mais ça s'arrête là dans le GUI.

    Si ça ti'nteresse, j'ai, dans mon Github, un petit mémo sur ce sujet. Github qui me sert plus comme mémo perso que pour les autres, même si public. 

    Merci pour tes remerciements (drôle comme formulation ça sonne bizarre, :-) ). Ca fait plaisir de temps en temps de savoir qu'on s'est rendu utile. Ca ne flatte pas mon égo (pas d'égo là dessus), mais ça fait plaisir.

    Tu remarqueras que mes réponses ne sont jamais courtes :-), même si je donne seulement un lien, je tiens à expliquer le pourquoi du comment.

    Olivier

    mercredi 19 février 2020 11:45
  • De rien Olivier,

    ce n'est pas pour te flatter, mais tu l'as dit le fait d'expliquer le pourquoi du comment ( comme tu fais et fais d'ailleurs philippe aussi), n'est pas donné à tout le monde, c'est la partie la plus difficile, la plupart d'entre nous se contente de répondre au problème directement y compris moi aussi :) 

    pour la partie GUI, ce n'est pas grave,  je maîtrise bien cette partie, et d’ailleurs je créerai ce soir une petite appli à partir de ton script, qui permet de désactiver, activer et checker le protocole smb1, pour répondre à des nombreuses demande. ( je te l'enverrai ou je mettrai ton nom dessus).

    mercredi 19 février 2020 12:35
  • Hello Olivier!

    Merci pour ce script! 

    Après un test: il semblerait qu'il n'aille pas désactiver le SMB dans les fonctionnalités windows. Il l'affiche toujours désactivé, mais il semble toujours actif.

    J'ai une question concernant ce script:

    A quoi correspond la -eq ?

    Merci d'avance !

    jeudi 20 février 2020 08:29
  • Bonjour,

    Les 2 !

    J'ai du mal à comprendre votre remarque sur le parc en sachant que notre parc informatique est à jour, que ce soit coté software ou hardware.

    jeudi 20 février 2020 08:30
  •  -eq             Equal
     -ne             Not equal
     -ge             Greater than or equal
     -gt             Greater than
     -lt             Less than
     -le             Less than or equal
     -like           Wildcard comparison
     -notlike        Wildcard comparison
     -match          Regular expression comparison
     -notmatch       Regular expression comparison
     -replace        Replace operator
     -contains       Containment operator
     -notcontains    Containment operator
     -in             Like –contains, but with the operands reversed.(PowerShell 3.0)
     -notin          Like –notcontains, but with the operands reversed.(PowerShell 3.0)
    jeudi 20 février 2020 08:36
  • bonjour AlphaX66

    TU peux vérifier rapidement si SMBv1 est toujours actif ainsi Get-SmbServerConfiguration

    dans la sortie affichée tu devrais avoir EnableSMB1Protocol              : False

    Cordialement

    Olivier

    jeudi 20 février 2020 09:06
  • Le SMB1Protocol reste full désactivé, même en lancant le script plusieurs fois (vu qu'il devrait pouvoir changer la valeur dans cette sortie là a chaque lancement du script)

    Même soucis après redémarrage de la machine


    • Proposé comme réponse M dakhama jeudi 20 février 2020 09:49
    • Non proposé comme réponse M dakhama jeudi 20 février 2020 09:49
    jeudi 20 février 2020 09:38
  • Bonjour, 

    Essais d'exécuter le script en mode admin, et donne nous le résultat de la commande get elle aussi doit être exécutée en powershell en mode admin.

    Ton parc n'est pas a jour, car tu utilises un protocole obsolète et plein de failles, tu devrais te débrouiller pour passer a une version supérieure de smb voilà ce que voulait dire 

    jeudi 20 février 2020 09:57
  • J'ai du mal à comprendre votre remarque sur le parc en sachant que notre parc informatique est à jour, que ce soit coté software ou hardware.

    A partir de Windows Vista et Windows server 2008(plus supporté depuis quelques temps) tous les OS Microsoft prennent en charge des protocoles plus récent et plus sécurisé.

    SMB V1 est vieux et très vulnérable ou cryptolocker entre autre. Il permet la compatibilté avec Windows 2003 et XP et antérieur. 

    C'est quoi le problème de départ ?

     *-SmbServerConfiguration => sur le poste qui dispose des partages, que ce soit un OS client ou serveur

    *-SmbClientConfiguration => concerne les clients ceux qui veulent accéder à un partage que ce soit un OD serveur ou client.

    Après un test: il semblerait qu'il n'aille pas désactiver le SMB dans les fonctionnalités windows. Il l'affiche toujours désactivé, mais il semble toujours actif.

    Set-SmbServerConfiguration -EnableSMB1Protocol $false - force

    Cela désactive SMB V1 mais SMB est les versions plus récentes du protocoles restent actifs.


    jeudi 20 février 2020 12:16
  • En gros, mon soucis c'est que je perds, tous les matins mon accès à certains lecteur réseau.

    Windows me dis : "Vous ne pouvez pas vous connecter au partage de fichier, car il n'est pas sécurisé. Ce partage nécessite le protocole SMB1 obsolète qui n'est pas sîr et qui expose votre systèmes aux attaques.

    Votre système nécessite SMB2 ou un protocole plus avancé."

    Et j'avais besoin de désactiver le SMB Direct et le SMBv1.0 client et serveur puis les réactiver pour retrouver l'accès a mes lecteurs.

    Est ce que le SMB3.0 est activé avec le SMB direct? 

    jeudi 20 février 2020 13:54
  • Le partage se trouve sur quoi comme serveur ?

    Si vous utilisez un OS plus récent que Vista ou Windows 2008, c'est étrange. S'il s'agit d'un NAS comme par exemple Synology ou Qnap il est possible d'activer la prise en charge de version plus récente de SMB.

    jeudi 20 février 2020 18:45