2017-08-31 16 views
0

J'ai un client CREDSSP activé sur mon bureau pour autoriser un transfert double-hop vers un certain nombre de serveurs. Certains de ces serveurs ont maintenant été décommandés, alors ma question est de savoir comment supprimer ces délégués spécifiques sans désactiver et réactiver CREDSSP, ce que j'ai fait jusqu'à présent?Suppression d'un ordinateur de délégué pour une utilisation avec CredSSP

Par exemple, pour ajouter un délégué supplémentaire que je peux faire:

Enable-WSManCredSSP -Role Client -DelegateComputer "mynewserver.mydomain.local" 

donc je veux être capable de faire quelque chose comme:

Remove-WSMANCredSSPDelegate -DelegateComputer "mynewserver.mydomain.local" 

mais tout ce que je peux faire est

Disable-WSManCredSSP -Role Client 

Des pensées?

+0

Ce n'est pas vraiment une question de programmation, donc [ServerFault] (https://serverfault.com/) pourrait être un meilleur endroit pour cela. –

+0

@AnsgarWiechers Je suis d'accord que ce n'est pas la programmation traditionnelle, mais il s'agit d'une question sur la façon de faire quelque chose dans un langage de script qu'il y a une étiquette pour SO. La solution sera une solution de code – Carl

Répondre

0

Les paramètres pour les ordinateurs délégués sont conservés dans le Registre sous HKLM: \ SOFTWARE \ Policies \ Microsoft \ Windows \ CredentialsDelegation \ AllowFreshCredentials

J'ai essayé directement modifier ces valeurs, mais trouvé alors qu'ils pourraient être enlevés, il n'a pas effet. Heureusement, en utilisant les valeurs du registre, vous pouvez comparer les valeurs existantes à celles que vous souhaitez conserver, supprimer et désactiver/réactiver.

Voici un exemple, devrait être facile de se convertir à une applet de commande si on le souhaite:

$remove = 'COMPUTER-TO-REMOVE' 

$item = Get-Item 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentials' 

$keep = $item | Select-Object -ExpandProperty 'Property' ` 
    | ForEach-Object { $item.GetValue($_).TrimStart('wsman/') } ` 
    | Where-Object { $_ -ne $remove } 

Disable-WSManCredSSP -Role Client 
if ($keep) { 
    Enable-WSManCredSSP -Role Client -DelegateComputer $keep -Force 1>$null 
}