我正在使用重命名计算机编写PowerShell脚本,而且我遇到了一个奇怪的问题:
PS C:\ Users \ Administrator> Rename-Computer -NewName 395_s2
重命名 - 计算机:跳过计算机' ztest'用新名称' 395_s2'因为新名称无效。输入的新计算机名称格式不正确。标准名称可能包含字母(a-z,A-Z),数字(0-9)和连字符( - ),但不包含空格或句点(。)。该名称可能不完全由数字组成,并且不得超过63个字符。
我真的更喜欢能够在机器名中使用下划线,并且-Force标志不会改变输出。
当我在Computer-> System Properties-> Computer Name / Domain Changes中手动输入相同的名称时,它会询问:
您要使用此计算机名吗?
名称" 395_s2"包含非标准字符。这可能会导致某些应用程序或网络硬件出现问题。
我可以选择是并覆盖非标准字符。有没有办法直接在PowerShell中执行此操作?
答案 0 :(得分:3)
使用WMI似乎没有这个限制。我刚在自己的电脑上测试过它
(Get-WmiObject Win32_ComputerSystem).Rename("te_st")
这不是重命名计算机,但它看起来很有效。也将重新发表我对Mad的帖子的评论。有一个关于计算机名称和下划线的非常好的帖子。 The use of the underscore in host names
引用其中一个答案并同意Mad Scientist
虽然它有效使用强调它不是推荐的做法。
答案 1 :(得分:0)
作为答案,我不会向您展示如何使用下划线重命名您的计算机,而是强烈建议您不要在计算机名称中使用它们。
我想向您推荐RFC 1178,其目的仅仅是为了帮助人们在命名计算机时做出正确的决策。您可以在以下网址找到它:
http://tools.ietf.org/html/rfc1178
至于为什么你不应该这样做,如果你的主机名中有一个下划线,有许多应用程序和系统将无法运行,包括标准的Internet Explorer。
诸如DomainKeys和服务记录之类的系统使用下划线来确保其特殊字符不会与主机名混淆(参考:Wikipedia)。