正在创建powershell脚本以启用桌面显示+使用主机名重命名



我只是一名初级程序员,刚刚开始编程,因为我的工作要求我创建一些方便的powershell脚本,我想知道你是否可以帮我做一个特定的脚本。

我们有很多拥有大量服务器的客户。当它们是新安装的时候,我会检查它们,然后我们会定期维护。因为每个客户都有几个不同角色的服务器,所以我想在桌面上有"计算机"图标。我可以通过单击开始->右键单击计算机->启用"在桌面上显示"来完成此操作此外,我想将此计算机图标重命名为主机名(因为主机名告诉我它在域中的角色)

现在,我的目标是创建一个powershell脚本,为域中的所有服务器创建带有主机名的计算机图标。

我试着搜索常用的搜索引擎,并想出了这个:

1) 使用regedit [HKEY_CLASSES_ROOTCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}定位,将LocalizedString重命名为LocalizedString.Old2) 现在切换到Regedit32创建一个新的VALUE类型Expand_SZ名称为LocalizedString在XP和Windows 2000上使用SP3将LocalizedString替换为%Username% at %Computername%

这是不合适的,因为我们使用W2K8R2SP1服务器。在那之后,我得到了这个脚本:

$ComputerName = "Localhost"
$Hive = "CurrentUser"
$Key = "SoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsNewStartPanel"
$MyComputer = "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
$UserFiles = "{59031a47-3f72-44a7-89c5-5595fe6b30ee}"
$Kind = [Microsoft.Win32.RegistryValueKind]
$RegHive = [Microsoft.Win32.RegistryHive]$hive
$RegKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($RegHive,$ComputerName)
$MyComputerValue = ($RegKey.OpenSubKey($Key)).GetValue($MyComputer)
$UserFilesValue = ($RegKey.OpenSubKey($Key)).GetValue($UserFiles)
if ($MyComputerValue -eq $null -or $MyComputerValue -eq 0)
{
    $Computer = $regKey.OpenSubKey($RootKey,$true)
    $Computer.SetValue($MyComputer, 1,$Kind::DWord)
}
if ($UserFilesValue -eq $null -or $UserFilesValue -eq 0)
{
    $User = $regKey.OpenSubKey($RootKey,$true)
    $User.SetValue($UserFiles, 1,$Kind::DWord)
}

这似乎根本没有任何作用。

我知道这个注册表项用于桌面上的计算机:

“{20D04FE0-3AEA-1069-A2D8-08002B30309D}”=dword:00000000

继续搜索。。。所以我发现了这个:

To show the ‘My Computer’ icon on the desk"text-decoration:underline;">
[HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsNewStartPanel]
Name = {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Type =REG_DWORD
Value = 0
To change the ‘My Computer’ icon to computer or user name:
[HKCRCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}]
Name = LocalizedString
Type = REG_EXPAND_SZ
Data value = %computername% or any combination you like – eg %username% %computername%

然而,第二部分一直给我一个错误,即使我能让它工作,我也想运行一次脚本,域中的所有服务器都应该有这个更新。

谢谢你帮忙。

致问候,

Nick

更改HKCRCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}LocalizedString仍然适用于Server 2008 R2,但您需要获得密钥的所有权,并首先授予管理员对密钥的完全访问权限。

最新更新