简单的问题:在PowerShell或appcmd中有没有办法通过导出IIS 7.5中的共享configuration来创buildConfigEncryptedKey.key? 现在,解释我为什么要这样做… 我们正尝试使用Windows Server 2008 R2 Core上的IIS 7.5的共享configurationfunction。 问题是,这项技术的每个指南都指的是通过IISpipe理器进行pipe理。 在Core上,只能远程执行此操作(而不是在服务器本身)。 此function(共享configuration)在远程pipe理时似乎不可用。 尽pipe如此,我们已经成功地手动设置了它(例如,我们自己设置c:\ windows \ System32 \ inetsrv \ config \ redirection.config)。 当我们尝试在特定帐户(用户名和密码)下运行应用程序池时,唯一的问题就出现了。 密码的存在提示IIS在共享applicationHost.config中encryption此值。 这在设置应用程序池的服务器上没有问题。 但是,当共享对中的其他服务器尝试启动应用程序池时,无法解密applicationHost中的密码。 事件日志中的错误消息读取(系统/ WAS /事件ID 5021): 应用程序池mysitename的身份无效。 为身份指定的用户名或密码可能不正确,或者用户可能没有批处理login权限。 如果身份未被更正,应用程序池将在应用程序池收到第一个请求时被禁用。 如果批处理login权限导致该问题,则Windows进程激活服务(WAS)可以重试login之前,必须在授予权限后更改IISconfiguration存储中的标识。 如果在处理应用程序池的第一个请求之后身份保持无效,应用程序池将被禁用。 数据字段包含错误编号。 另请注意,尝试通过IISpipe理器UI在第二台服务器上设置标识会导致此错误对话框: 执行此操作时发生错误。 细节: 坏数据。 (从HRESULTexception:0x80090005) 通常(通过IISpipe理器UI完成时,我们不能在Core上使用),创build一个文件调用ConfigEncryptedKey.key。 这似乎与applicationHost.config中解密应用程序池用户密码所需的密钥通信到第二台服务器。 因为我们不能使用UI来做到这一点,有没有办法做到这一点编程?
我有一个需要\Device\Harddisk2\Partition1风格的分区名称的软件,如WinObj中所示。 我想从分区底层的iSCSI连接的详细信息中获取这个分区名称。 麻烦的是,磁盘顺序不固定 – 取决于什么设备连接和按什么顺序初始化,它可以四处移动。 因此,假设我有门户名称(iSCSI目标的DNS),目标IQN等。我想以某种方式自动地发现系统中哪些卷与之相关。 我可以编写一些PowerShell WMI查询,它们有点接近所需的信息: PS> get-wmiobject -class Win32_DiskPartition NumberOfBlocks : 204800 BootPartition : True Name : Disk #0, Partition #0 PrimaryPartition : True Size : 104857600 Index : 0 … 从这里的Name ,我想我可以通过加1分区编号来制造相应的名称: \Device\Harddisk0\Partition1 – Partition0似乎是一个虚拟的分区映射到整个磁盘。 但是上面没有足够的信息来映射到底层的物理设备,除非我根据精确的尺寸匹配进行猜测。 我可以在SCSI设备上获得一些信息,但是这对于join东西没有帮助(iSCSI目标是Nexenta / Solaris COMSTAR): PS> get-wmiobject -class Win32_SCSIControllerDevice __GENUS : 2 __CLASS : Win32_SCSIControllerDevice … […]
我遇到的问题列出了使用Powershell的计算机上的所有打印机。 我们有一个批处理脚本,使用PrintUI添加/删除/列出“每台计算机”打印机。 我可以使用PrintUI列出打印机。 rundll32 printui.dll,PrintUIEntry /ge /c"%UNC-NAME%" 这将列出每个电脑打印机,而… Get-WMIObject -Class Win32_Printer -ComputerName $ComputerName 将列出WMI中的所有打印机。 在上面的例子中,我有一个有3台打印机的系统,当用户login的时候,WMI看到其中的2个,PrintUI看到的是1。 我很惊讶我怎么能列出他们! 这样我可以脚本审计/添加/删除“每台计算机”和“本地”打印机
我正在寻找一种可靠的方法来确定是否可以在没有数据丢失或损坏的情况下停止服务,或者如果可以通过PowerShell终止服务,常规停止将会起作用。 我想要观看服务的文件句柄,看看服务是否正在写或从那里读取工作目录。 有什么我可以通过PowerShell查询,看看服务是否仍在处理数据。
我正在寻找一种方法来将angular色/functionconfiguration导出到脚本文件,如powershell。 假设你已经安装了DHCPangular色。 你configuration范围,保留和所有你需要的东西。 在完成configuration后,我想把所有这些导出到一个脚本文件中,所以我可以运行这个脚本,如果我下次运行它,它会自动执行所有的configuration。 (安装angular色+范围+保留+你设置的所有其他设置..)..这是可能的吗? 如果是,那么可以为服务器上安装的所有angular色/function执行此操作吗? 我知道如果添加一个新的angular色/function,您可以select这个选项,但也可以在此之后完成,还有其他的更改和设置? 这可能是一个帮助build立一个新的(干净的)服务器。
我尝试使用此命令从Hyper-V(Hyper-V 2012)节点获取IP地址: Get-VM | select -ExpandProperty networkadapters | select vmname, ipaddress 问题是我只将输出的私有IP地址作为输出,而不是某些虚拟机的公有IP地址。 任何想法,为什么我有这个问题? 还有什么办法可以在我的虚拟机设置中获得相同的输出和Vlan ID? 为了从特定的虚拟机获得Vlan,我可以这样做 Get-VM 'Name of the VM' | Get-VMNetworkAdapterVlan | select AccessVlanId 所有这些东西都在Hyper-V 2012上,我还希望为Hyper-V 2008 R2做这个工作。 因此可能需要对命令进行一些更改。
我知道我可以通过使用以下脚本块来确保特定registry值的presens: Registry ConfigureRegistry { Ensure = "Present" Key = "HKEY_LOCAL_MACHINE\SOFTWARE\SomeKey\" ValueName = "MachineType" ValueData = "Hyper-V" } 但是我怎样才能删除registry项SomeKey ? 如果我只更改关键字Ensure = "Present"以Ensure = "Absent"它将离开键SomeKey …
我的目标是通过PowerShell将Windows中的networking驱动器映射到WebDAV服务器。 我有一个脚本,可以自动创build一个安装了IIS并configuration了WebDAV的Azure虚拟机。 我可以通过Windows资源pipe理器手动将networking驱动器映射到WebDAV服务器(使用选项使用不同的凭据)。 这证实了WebDAV服务器configuration正确。 我也可以读写文件。 通过PowerShell我试图使用命令New-PSDrive并获取错误,如你所见。 New-PSDrive –Name $networkDrive –PSProvider FileSystem –Root "http://$serviceName.cloudapp.net/" –Persist New-PSDrive : When you use the Persist parameter, the root must be a file system location on a remote computer. At line:1 char:1 + New-PSDrive –Name $networkDrive –PSProvider FileSystem –Root "http:// … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (Z:PSDriveInfo) [New-PSDrive], NotSupportedException […]
我有一套Azure资源pipe理器和DSC脚本,用于将新虚拟机部署到Azure,然后使其成为新域的域控制器,这些工作很好,但现在它已经失败了DSC部分。 我相信这个问题是分配给虚拟机networking接口的别名。 我的DSC脚本具有以下部分来更改虚拟机指向它自己的DNS: xDnsServerAddress DnsServerAddress { Address = '127.0.0.1' InterfaceAlias = 'Ethernet' AddressFamily = 'IPv4' } 这个问题似乎是因为虚拟机networking接口实际上是用“以太网2”或“以太网3”的别名创build的,而别名需要匹配。 虚拟机中没有其他网卡,我没有添加任何网卡。 更奇怪的是,如果我尝试将此networking接口重命名为“以太网”,则告诉我已经有一个具有该名称的networking接口,尽pipe我找不到这个名称。 因此,为了使这项工作能够正常工作,我需要找出界面不仅仅是被命名为“以太网”的原因,还是编写DSC脚本的方法,以便它可以为机器上唯一的networking接口设置DNS。 有任何想法吗。 编辑: 这似乎与设备pipe理器将NIC标记为networking适配器#2有关,但是没有适配器#1,我也不能看到在部署过程中为什么会添加任何原因。 这似乎发生在此部署中的所有虚拟机(但它只打破了DC)。 我已经包括了我用来创build下面这个的ARM脚本,从MS Github模板中直接获取它。 { "apiVersion": "2015-05-01-preview", "type": "Microsoft.Network/networkInterfaces", "name": "dc-nif", "location": "[resourceGroup().location]", "dependsOn": [ "Microsoft.Network/virtualNetworks/vnet" ], "properties": { "ipConfigurations": [ { "name": "ipconfig", "properties": { "privateIPAllocationMethod": "Static", "privateIPAddress": "[variables('dnsServerPrivateIp')]", "subnet": { "id": […]
您首先要做哪些事情来避免服务中断? 还是不重要? 是吗: Suspend-ClusterNode -Drain Get-ClusterNode $env:COMPUTERNAME | Get-ClusterGroup | Move-ClusterGroup 要么: Get-ClusterNode $env:COMPUTERNAME | Get-ClusterGroup | Move-ClusterGroup Suspend-ClusterNode -Drain Move-ClusterGroup的微软文档说: “移动资源组是模拟故障转移的一种方式,也是准备节点日常维护的适当步骤。” 这让我觉得你在暂停之前就行动了。 那么你首先发布哪个cmdlet?