PowerShell Pour réinitialiser le mot de passe du compte administrateur local. 5% échec
Je suis responsable de la modification du mot de passe du compte administrateur local dans mon environnement à partir de 16 000 les serveurs; J'ai écrit un script PowerShell, Mais cela a pris trop de temps, alors j'ai ajouté de multithreading à l'aide de l'espace d'exécution usine PowerShell, Fracasser 16 000 sur des pièces gérées.
Erreurs de fréquence ~ 5% (~ 800 Les serveurs); d'eux 75–100 sont des erreurs explicites qui peuvent être éliminées (Le nom d'utilisateur introuvable, l'accès est interdit, etc.), et 700–725 Obtenez un message d'erreur "Chemin réseau non trouvé".
Cependant, la vérification de la communication avec des serveurs conduit à la réponse et aux ingénieurs du serveur me disent qu'ils travaillent, j'ai accès et quoi PowerShell et WMI Travail et travail.
Je n'ai aucune idée de quoi commencer le dépannage. Voici la logique et le code que j'utilise:
J'utilise des noms de domaine complet, mais dans mes serveurs d'entreprise, en règle générale, sont indiqués dans DNS Différents noms de domaine complet, et ces deux options ne correspondront pas à l'autre. alors servera.production.active.directory ne sera pas transformé en servera.mycompany.com. Cette fonctionnalité détermine le nom de domaine complet autorisé pour connecter et installer un mot de passe, son retour ou un nom de domaine complet valide ou une chaîne vide:
J'essaie de changer le mot de passe à l'aide du code suivant intégré au module et exécuté pour chaque serveur dans la liste que nous traitons (Ceci est une fonction longue due au code d'usine de l'espace d'exécution. PowerShell).
Remarques: Test-Connection Filtres serveurs qui seraient autrement indisponibles; Le délai de sortie de cette fonction par défaut est ~ 180 Secondes (3 Minutes x 1600 Les serveurs = trop long).
Ce code fonctionne sur 95% Serveurs et donne des rapports précis après une année de lancement de ce script. Cependant, les ingénieurs de serveurs se demandent si ce scénario fonctionne, car lorsque j'informerai des problèmes, ils ne voient pas comment et pourquoi je reçois une erreur "Chemin de réseau non trouvé" lorsque tous leurs tests disent que cela fonctionne bien.
Dépannage des étapes pour le moment:
Courir sur un autre ordinateur
Courir au nom d'un autre administrateur
Courir à des moments différents de la journée - Il a été fait pour empêcher le script d'empêcher le script de l'activité possible du serveur. (Correction des applications, redémarrage, etc.)
Pour le dernier 2 mois j'ai éliminé manuellement les problèmes sur chacun des 800 serveurs et lancé un script sur 15 Une fois uniquement sur les serveurs refusés. Le relancement me donne 10-300 Les mots de passe déchargés, mais ne les attrapent pas tous, et c'est très incompatible.
Dans trois cas, les ingénieurs du serveur ont signalé l'absence de problèmes, j'ai relancé le script et il les déposa sans erreurs.
Donc, mes questions: quelle pourrait être la cause de l'erreur et que dois-je faire attention pour déterminer la raison principale? Paramètres sur le serveur? Paramètres sur mon poste de travail?
L'installation est la suivante: Windows XP Pro SP3. Les serveurs - Windows Server 2003 ou Windows Server 2008 R2. Ces erreurs se produisent dans les deux systèmes d'exploitation serveur.
Erreurs de fréquence ~ 5% (~ 800 Les serveurs); d'eux 75–100 sont des erreurs explicites qui peuvent être éliminées (Le nom d'utilisateur introuvable, l'accès est interdit, etc.), et 700–725 Obtenez un message d'erreur "Chemin réseau non trouvé".
Cependant, la vérification de la communication avec des serveurs conduit à la réponse et aux ingénieurs du serveur me disent qu'ils travaillent, j'ai accès et quoi PowerShell et WMI Travail et travail.
Je n'ai aucune idée de quoi commencer le dépannage. Voici la logique et le code que j'utilise:
J'utilise des noms de domaine complet, mais dans mes serveurs d'entreprise, en règle générale, sont indiqués dans DNS Différents noms de domaine complet, et ces deux options ne correspondront pas à l'autre. alors servera.production.active.directory ne sera pas transformé en servera.mycompany.com. Cette fonctionnalité détermine le nom de domaine complet autorisé pour connecter et installer un mot de passe, son retour ou un nom de domaine complet valide ou une chaîne vide:
function get-validfqdn([string]$server, [string]$domain){
$fqdn = $server + "." + (get_FQDN $domain)
$altdn = $server + ".mycompany.com"
if(Test-Connection -count 1 -computer $fqdn -quiet -TimeToLive 80){
$valid = $fqdn
}
elseif{
$valid = $altdn
}else{
$valid = ""
return $valid
}
J'essaie de changer le mot de passe à l'aide du code suivant intégré au module et exécuté pour chaque serveur dans la liste que nous traitons (Ceci est une fonction longue due au code d'usine de l'espace d'exécution. PowerShell).
function Set-ServerPass([string]$filepath){
$servers = Import-CSV $filepath
$results = @()
foreach($server in $servers){
$svr = $server.Server
$password = $server.Password
$domain = $server.domain
$fqdn = get-validfqdn $svr $domain
if ($fqdn -ne ""){
Try{
$admin = [adsi]("WinNT://$fqdn/Administrator, user")
$admin.psbase.invoke("SetPassword", "$password")
$result.Error_Code = "0"
$result.Error_Msg = "The operation was sucessful"
}Catch{
$error_msg = Trim_ExceptionMessage $_.exception.Message
$result.Error_Code = "1"
$result.Error_Msg = $error_msg
$results += $result
}
}else{
$result.Error_Code = "51"
$result.Error_Msg = "The remote computer is not available"
}
}
return $results
}
Remarques: Test-Connection Filtres serveurs qui seraient autrement indisponibles; Le délai de sortie de cette fonction par défaut est ~ 180 Secondes (3 Minutes x 1600 Les serveurs = trop long).
Ce code fonctionne sur 95% Serveurs et donne des rapports précis après une année de lancement de ce script. Cependant, les ingénieurs de serveurs se demandent si ce scénario fonctionne, car lorsque j'informerai des problèmes, ils ne voient pas comment et pourquoi je reçois une erreur "Chemin de réseau non trouvé" lorsque tous leurs tests disent que cela fonctionne bien.
Dépannage des étapes pour le moment:
Courir sur un autre ordinateur
Courir au nom d'un autre administrateur
Courir à des moments différents de la journée - Il a été fait pour empêcher le script d'empêcher le script de l'activité possible du serveur. (Correction des applications, redémarrage, etc.)
Pour le dernier 2 mois j'ai éliminé manuellement les problèmes sur chacun des 800 serveurs et lancé un script sur 15 Une fois uniquement sur les serveurs refusés. Le relancement me donne 10-300 Les mots de passe déchargés, mais ne les attrapent pas tous, et c'est très incompatible.
Dans trois cas, les ingénieurs du serveur ont signalé l'absence de problèmes, j'ai relancé le script et il les déposa sans erreurs.
Donc, mes questions: quelle pourrait être la cause de l'erreur et que dois-je faire attention pour déterminer la raison principale? Paramètres sur le serveur? Paramètres sur mon poste de travail?
L'installation est la suivante: Windows XP Pro SP3. Les serveurs - Windows Server 2003 ou Windows Server 2008 R2. Ces erreurs se produisent dans les deux systèmes d'exploitation serveur.
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
2 réponses
Dominique
Confirmation de:
Giselle
Confirmation de:
Ce sera beaucoup de données, mais en considérant que vous parlez du lancement manuel d'entre eux sur 800 Serveurs, ce ne sera pas beaucoup pire.
Rechercher une permission infructueuse DNS, Regardez la comparaison des serveurs qui fonctionnaient et des serveurs refusés.
WMI Prend en charge la journalisation, les informations d'erreur et les informations de débogage. Cela peut être utile sur le client ou sur certains serveurs refusés:
http://blogs.technet.com/b/ask ... .aspx