Articles of PowerShell

PSTerminalServices不返回有关会话的详细信息

我连接到使用RDP的机器,但是当我通过PowerShell调用以下(使用PSTerminalServices)时: get-tssession -computername thecomputer 我得到: Exception calling "GetSessions" with "0" argument(s): "No more data is available" …而不是我的会话的细节。 它适用于虚拟机。 它被configuration为允许远程协助。 请问我错过了什么?

PowerShell HTTPS不能正常工作

我有点困惑如何为我的本地主机configuration证书。 我的情况是这样的: 我们有两个Windows 2012服务器(未join域),我需要从一台机器远程执行PowerShell脚本。 这必须使用另一台机器的IP来完成。 我试了一下,最终可能知道该协议应该是HTTPS使用IP时,它需要一个服务器证书。 阅读这么多的博客和post使我困惑,并在我已经安装使用PowerShell创build的自签名证书的服务器中使用PowerShell。 证书被命名为computername.workgroup,位于本地计算机证书存储区中的个人。 但是,当我尝试winrm qc -transport:https无法在HTTPS上创build一个WinRM侦听器,因为这台机器没有适当的证书。 有人能帮我最早吗? 我如何通过创build所需的证书来解决这个错误? 任何帮助将真的非常感激。

如果NIC 1断开连接,则调用WebRequest超时

我有一个三个networking接口的Windows PC。 一个是UMTS调制解调器,另外两个是lokalnetworking,一个networking连接到互联网。 Invoke-WebRequest http://192.168.1.118/File1.xml 只要我有互联网连接,无论是通过umts或通过第二个networking,Invoke-WebRequest的作品。 但是,如果我只有连接到一个本地networking,我得到一个超时,虽然ping的地址仍然工作。 哪里可能是这个问题? 或者是否有可能定义webrequest应该尝试获取数据的networking接口?

任务计划的PowerShell脚本不closures机器

我有一个任务在Hyper-V服务器上运行,如下所示: schtasks /CREATE /TN AutoShutdown /RU "SYSTEM" /TR "Powershell \"C:\AutoShutdown.ps1\"" /SC ONSTART 它运行正常(据我所知),但脚本有一行closures计算机,它永远不会。 start-sleep 120 while (1) {$vm = get-vm; if ($vm.state -ne "Running") {stop-computer} else {"Running…"; start-sleep 10}} 如果我在用户空间运行任务: schtasks /CREATE /TN AutoShutdown /TR "Powershell \"C:\AutoShutdown.ps1\"" /SC ONLOGIN 它运行完美。

Powershell到非域的机器

我写了一个小脚本,需要在一个点上连接到一个不是域成员的机器。 脚本运行的机器将始终是域成员。 我发现使用以下工作 cd WSMan:\localhost\Client Set-Item .\TrustedHosts -Value "*" -Force 但我正在寻找替代scheme,因为使用上述命令,powershell必须“以pipe理员身份运行”,并且只在该PS会话期间有效。

自动执行Windowspipe理任务

我正在深入PowerShell(绝不是专家),并且正在构buildGUI来自动化Windowspipe理任务,包括桌面和服务器端。 我知道有第三方工具和免费下载,但我不感兴趣的,因为我的主要目标是通过做。 我真的想build立我自己的graphics用户界面,而不是下载或购买另一种工具,所以我可以创build一些东西,包括我所需要的大部分项目,而不需要额外的绒毛。 对于这个问题,值得一提的是: 我正在看这个项目的产品(Sapien PowerShell Studio是一个)。 对于那些有经验的人,你觉得这是值得的钱和时间/努力?

Powershell脚本从远程PC获取.NET Framework版本

我有以下脚本。 Get-Content comps.csv | Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | Get-ItemProperty -name Version,Release -EA 0 | Where { $_.PSChildName -match '^(?!S)\p{L}'} | Select PSChildName, Version, Release 我的comps.csv内容 Name,Type,Description, ALYTAUS-PC,Computer,, AUGUSTE-PC,Computer,, AUSRA-PC,Computer,, BIRZU-PC,Computer,, VYTAUTO-PC1,Computer,,我得到了csv中的每个对象的消息: Get-ChildItem : The input object cannot be bound to any parameters for the command either because the command does n ot take […]

如何转换为ArrayList,在param块中预置数据,并返回ArrayList?

因为我需要能够添加和删除数组中的项目,我需要把它转换为ArrayList ,而不是更常见的选项( [string[]] , [Array] , $Var=@() )。 我也需要用数据预设它,但function的调用者需要能够根据需要更改预设。 Param()块中的预设是必需的,因为另一个实体正在查找预设数据。 我已经尝试了几个变化,但是这是最有意义的: Function Test-Me{ Param ( $Properties = [System.Collection.ArrayList]@( "red", "blue", "green") ) $Properties.GetType() $Properties.Add("orange") } 除了只要有人调用Test-Me -Properties "Purple","Yellow","Black" , $Propertiesvariables就成为一个标准的Arraytypes(其中add和remove方法不起作用),上面的内容就非常棒了。 我试着改变我如何声明预设值的方法。 看来,预填充的行为是将types转换为常规数组。 我想这是因为我用@()与预设,所以我试过()以及。 这也不起作用: Param ( [System.Collection.ArrayList] $Properties = @("red", "blue", "green") ) 我有一个解决scheme转换Param块外的types,它看起来像这样: Function Test-Me{ Param ( [String[]] $Properties = @("red", "blue", "green") ) […]

Get-VMHost不显示服务器Networkinfo和进程数量

我运行下面的Powercli 5.5命令,获取有关主机VM的信息: – Get-VMHost |Export-Csv -Path c:\VM.csv -NoTypeInformation –UseCulture 我得到了这些信息: – State ConnectionState PowerState VMSwapfileDatastoreId VMSwapfilePolicy ParentId IsStandalone Manufacturer Model NumCpu CpuTotalMhz CpuUsageMhz LicenseKey MemoryTotalMB MemoryTotalGB MemoryUsageMB MemoryUsageGB ProcessorType HyperthreadingActive TimeZone Version Build Parent VMSwapfileDatastore StorageInfo NetworkInfo DiagnosticPartition FirewallDefaultPolicy ApiVersion Name CustomFields ExtensionData Id Uid Connected Connected PoweredOn WithVM Folder-ha-folder-host TRUE HP ProLiant DL365 G5 […]

修改“政策”,无组策略:最佳实践?

我需要解决一些不在域上的机器的一些策略设置。 具体来说,我们正在和一个技术会议实验室打交道,这个实验室是由各个供应商提供的租赁机器build立起来的,我想locking一些像桌面背景这样的UI,以保持一定的一致性。 我创build了自己的用户帐户,与会者不是本地pipe理员(供应商向我们发送没有密码的pipe理员帐户的机器),无论如何,这通常是组策略的事情,所以预期HKCU的策略部分是禁止的给一个标准的用户。 但是由于我还没有一个组策略的基础设施,我有一个困惑。 我的想法是在创build我的用户之前使用PowerShell来修改默认用户的问题,这样他们就inheritance了这些设置。 但是,我怀疑这是pipe理员用户没有密码时不起作用的事情之一。 我也考虑过改变默认用户的权限,但是这暴露了部分策略的暴露,这并不理想。 两者都感觉像一个杂凑,但我不能想到一个“正确”的方式来处理这个工作组设置。 我知道这是一个主观的问题,但希望它不会被拒绝投票,不会被closures,有人有一些洞察力,要么是一个真正的好方法,要么是至less暗示默认的用户方法不是这个想法太糟糕了。 ;)