1

私はジュニア プログラマーで、プログラミングを始めたばかりで、仕事で便利な PowerShell スクリプトを作成するように求められているため、特定のスクリプトを手伝ってもらえないかと思っていました。

多くのサーバーを使用する多くの顧客がいます。新設の際は点検を行い、その後は定期的なメンテナンスを行っています。各顧客は異なる役割を持つ複数のサーバーを持っているため、デスクトップに「コンピューター」アイコンを配置したいと考えています。スタートをクリックしてそれを行うことができます->コンピューターを右クリック->「デスクトップに表示」を有効にしますさらに、このコンピューターアイコンの名前をホスト名に変更したい(ホスト名はドメインでの役割を示しているため)

今の私の目標は、ドメイン内のすべてのサーバーのホスト名を持つこのコンピューター アイコンを作成する powershell スクリプトを作成することです。

私は通常の検索エンジンへの道を検索しようとしましたが、これを思いつきました:

1) regedit で検索[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}LocalizedString を LocalizedString.Old に名前変更します 2) Regedit32 に切り替えます 新しい VALUE タイプを作成します Expand_SZ という名前を付けます XP および Windows 2000 SP3 では、LocalizedString を次のように置き換えます%Username% at %Computername%

W2K8R2SP1 サーバーを使用しているため、これは適切ではありません。その後、私はこのスクリプトになりました:

$ComputerName = "Localhost"
$Hive = "CurrentUser"
$Key = "Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel"
$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;">
[HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
Name = {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Type =REG_DWORD
Value = 0
To change the ‘My Computer’ icon to computer or user name:
[HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}]
Name = LocalizedString
Type = REG_EXPAND_SZ
Data value = %computername% or any combination you like – eg %username% %computername%

ただし、2番目の部分でエラーが発生し続けます。たとえそれが機能したとしても、スクリプトを1回実行したいので、ドメイン内のすべてのサーバーにこの更新が必要です。

助けてくれてありがとう。

よろしくお願いします、

ニック

4

1 に答える 1

0

変更HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\LocalizedStringは Server 2008 R2 でも適切ですが、最初にキーの所有権を取得し、管理者に完全なアクセス権を付与する必要があります。

于 2013-06-24T12:16:14.213 に答える