AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1000226

webby68's questions

Martin Hope
webby68
Asked: 2024-11-05 03:55:02 +0800 CST

Usando PSSession para iterar por uma lista de máquinas virtuais e redimensionar o disco rígido para o espaço em disco recém-alocado

  • 5

Não sou novato no PowerShell, mas também não sou fluente nele, então postei meu problema aqui para possível assistência.

Estou logado no Windows PowerShell ISE como administrador, tenho o módulo PowerCLI instalado e estou logado no servidor Hyper V que hospeda nossas máquinas virtuais. Tenho um script PS que itera por várias VMs e expande o espaço em disco nelas para atingir 30 GB de espaço livre. No entanto, tenho tido que redimensionar essas unidades para o espaço recém-alocado, uma máquina de cada vez, usando o PSSession. Tenho procurado uma maneira de usar o script PS para iterar por uma lista de arquivos de texto dessas máquinas e redimensioná-las, assim como o outro script faz para expandir as unidades. Depois de alguma pesquisa, percebi que poderia usar o PSSession para fazer exatamente isso. Criei um script para fazer isso e ele funciona bem até chegar à parte de redimensionamento do script abaixo.

Resize-Partition -DriveLetter $drive_letter -Size $size.SizeMax

Recebo a mensagem de erro "Resize-Partition: Size Not Supported Extended information: The partition is already the requested size." Verifico as máquinas de teste e o volume estendido está corretamente estendido, mas a partição não foi redimensionada para fazer a quantidade recém-fornecida de espaço livre em disco. O script está postado abaixo. A mensagem de erro completa que recebo será postada abaixo do script.

Não sei o que estou perdendo aqui e toda a ajuda fornecida é bem-vinda.

Roteiro:

$vmcomputers = Get-Content -Path C:\Temp\computers.txt
$drive_letter = "C"

# iterate through list
$result = foreach ($vmcomputer in $vmcomputers) {
  # create PSsession
  #$session = New-PSSession -ConnectionUri $vmcomputer.hostname
  $session = Get-Content C:\Temp\computers.txt | New-PSSession -ThrottleLimit 50
  
  # resize disk
  $size = (Get-PartitionSupportedSize -DriveLetter $drive_letter)
  Resize-Partition -DriveLetter $drive_letter -Size $size.SizeMax

  # cleanup
  Remove-PSSession -PSSession $session
}

Mensagem de erro:

Resize-Partition : Size Not Supported
 
Extended information:
The partition is already the requested size.
 
Activity ID: {69684292-964a-4637-92bd-1ddf1ccb773f}
At C:\Temp\ResizeVMdiskPsession\AICodeResizeVmHardDisk.ps1:12 char:3
+   Resize-Partition -DriveLetter $drive_letter -Size $size.SizeMax
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (StorageWMI:ROOT/Microsoft/.../MSF 
   T_Partition) [Resize-Partition], CimException
    + FullyQualifiedErrorId : StorageWMI 4097,Resize-Partition
 
Remove-PSSession : A parameter cannot be found that matches parameter name 
'PSSession'.
At C:\Temp\ResizeVMdiskPsession\AICodeResizeVmHardDisk.ps1:15 char:20
+   Remove-PSSession -PSSession $session
+                    ~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-PSSession], Paramet 
   erBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm 
   ands.RemovePSSessionCommand
hard-drive
  • 1 respostas
  • 82 Views
Martin Hope
webby68
Asked: 2023-12-29 01:50:42 +0800 CST

Como excluir uma partição usando uma instrução foreach no PowerShell

  • 6

Preciso excluir uma partição de um disco rígido específico em um computador virtual. Posso fazer isso manualmente, um computador por vez, sem problemas. No entanto, preciso ser capaz de executar um script do PowerShell que leia um arquivo de texto contendo uma lista de computadores e faça com que o script percorra cada computador e remova essa partição específica.

Eu sei qual é o número do disco e o número da partição de cada máquina, portanto não há necessidade de uma instrução "if". Também sei que as máquinas possuem essa partição específica para ser removida.

O script que estou tentando usar está abaixo. Quando executo no depurador, todo o script é lido, exceto a linha "Get-Partition". O script percorre a lista de computadores, mas não seleciona as partições e, portanto, não seleciona aquela que preciso excluir.

Pesquisei no Google várias palavras-chave relevantes para obter as informações de que preciso, mas não consigo encontrar nada que resolva esse problema especificamente. Qualquer sugestão ou assistência com isso é muito apreciada.

Eu me conecto ao servidor que hospeda as máquinas por meio de um comando de código PowerCLI. O código está abaixo:

$computers = Get-Content -Path C:\Temp\computers.txt

foreach ($computer in $computers)
{
   Get-Disk
   Get-Partition
   Remove-Partition -DiskNumber 0 -PartitionNumber 3
}
windows
  • 1 respostas
  • 23 Views
Martin Hope
webby68
Asked: 2020-10-06 13:42:27 +0800 CST

Como reduzir a saída do PowerShell no arquivo .csv para gravar apenas a ID de versão de um sistema operacional Windows 10?

  • 8

Este script funciona, mas a saída para o .csv no campo id da versão é tudo associado à chave do registro. Tudo o que quero no campo é o número de identificação do lançamento (1909, 1809, 1709). Como editar este script apenas para gravar apenas essas informações no arquivo de saída? Abaixo está uma amostra da saída que recebo agora. Abaixo disso está o script que estou usando.

A saída que recebo agora.

@{ReleaseId=1909; PSPath=Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion; PSParentPath=Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT; PSChildName=CurrentVersion; PS

O script que estou usando está abaixo.

$Computers = get-content "C:\Temp\computers.txt"

$( foreach ($Computer in $Computers) 
  {
        $result = Invoke-Command -ComputerName $Computer -scriptBlock { Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' -Name ReleaseId } 
            
        [PSCustomObject]@{
            ComputerName = $Computer
            ReleaseID = $Result
        }
        
    } ) | Export-Csv "C:\Temp\GetReleaseID.csv" -NoType

Invoke-Item "C:\Temp\GetReleaseID.csv"
microsoft-excel windows-10
  • 1 respostas
  • 266 Views
Martin Hope
webby68
Asked: 2020-03-25 13:51:40 +0800 CST

Não é possível vincular o argumento ao parâmetro 'InputObject' porque é nulo

  • 5

Estou usando SCCM 2016, Windows Server 2012. Estou usando o código abaixo para mover uma coleção para outra pasta. Eu recebo a mensagem de erroMove-CMObject : Cannot bind argument to parameter 'InputObject' because it is null.

Pesquisei o erro no Google, mas ainda não consigo entender como 'InputObject' é nulo. Eu vi outro script PS formatado da mesma maneira e é um script funcional. Gostaria de saber como corrigir isso e mover a coleção para outra pasta.

$sitecode = "123"
$colltomove = "JJJ00287"
$destcollfolder = '$($sitecode):\DeviceCollection\Test Operational' 

$collID = Get-CMCollection -Name $colltomove
Move-CMObject -InputObject $collID -FolderPath $destcollfolder
powershell windows-server-2012
  • 1 respostas
  • 2594 Views
Martin Hope
webby68
Asked: 2019-12-17 15:07:15 +0800 CST

Powershell - Como exibir uma mensagem e salvar a entrada do usuário no arquivo de log

  • 5

Passei a maior parte do dia pesquisando a melhor e mais simples maneira de fazer isso e não parece haver uma. Encontrei pedaços, mas não consegui fazê-los funcionar com sucesso. Eu simplesmente quero exibir uma mensagem pop-up para o usuário executando um script Powershell. Eu gostaria que o script fizesse o seguinte:

1. The popup would give an action for input by the user, 
2. The message will tell them their computer will be restarted to complete a Windows 1809 upgrade, 
3. The user will click ok and the input, along with the username and machine name will be sent to a log file. 
4. The script would have a timer on it that will restart the computer within 30 minutes whether the input is given or not. 

O código abaixo faz o que eu quero, menos o timer, mas não traz uma mensagem pop-up para o usuário. Apenas dá a mensagem em um console do Powershell. Como posso fazer a mesma coisa, mas em uma mensagem pop-up?

$HostName = $env:COMPUTERNAME
$PatchLocation = "c:\Temp\"
$LogFile = "responses.log"
$LogPath = $PatchLocation + $LogFile
$date = Get-Date

$response = Invoke-Command -ComputerName $HostName -ScriptBlock{ Read-Host "Your computer will be restarted in 30 minutes. Please save your work. Type 'Agree' If you have saved your work"}

"Response for $HostName is $response - $date"|Out-File -FilePath $LogPath -Append
windows-10 powershell
  • 2 respostas
  • 897 Views
Martin Hope
webby68
Asked: 2019-11-27 10:53:23 +0800 CST

Script Powershell - Enviar e-mail somente quando o espaço na unidade estiver abaixo do limite mínimo

  • 6

Estou usando o Windows 10 Enterprise 1709 e o PowerShell versão 5.0. Eu tenho este script do PowerShell abaixo que encontrei online. Funciona, mas não entendo o que uma linha de código está fazendo, então posso decidir como editá-la para o que preciso fazer. Além disso, ele envia um e-mail mesmo que a unidade não esteja abaixo do limite mínimo. Gostaria de entender esta linha do código e corrigi-la para enviar apenas alerta por e-mail quando atingir abaixo do limite mínimo. $freeSpaceGB = [Math]::Round([float]$disk.FreeSpace / 1073741824);e esta linha$computer = $computer.toupper();

O código inteiro está abaixo:

$minGbThreshold = 50GB

$computers = $env:COMPUTERNAME
$smtpAddress = "smtp.anydomain.com"
$toAddress = "[email protected]"
$fromAddress = "[email protected]"

foreach($computer in $computers)
{    
    $disks = Get-WmiObject -ComputerName $computer -Class Win32_LogicalDisk -Filter "DriveType = 3";
    $computer = $computer.toupper();
    $deviceID = $disk.DeviceID;
    foreach($disk in $disks)
    {
        $freeSpaceGB = [Math]::Round([float]$disk.FreeSpace / 1073741824);
        if($freeSpaceGB -lt $minGbThreshold)
        {
            $smtp = New-Object Net.Mail.SmtpClient($smtpAddress)
            $msg = New-Object Net.Mail.MailMessage
            $msg.To.Add($toAddress)
            $msg.From = $fromAddress
            $msg.Subject = “Diskspace below threshold ” + $computer + "\" + $disk.DeviceId
            $msg.Body = $computer + "\" + $disk.DeviceId + " " + $freeSpaceGB + "GB Remaining";
            $smtp.Send($msg)
        }
    }
}
windows-10 windows
  • 1 respostas
  • 1628 Views
Martin Hope
webby68
Asked: 2019-03-30 10:30:08 +0800 CST

Não é possível ativar o Microsoft Print to PDF depois de desativado

  • 1

Usei o seguinte comando para encontrar o nome do recurso e o segundo (Powershell) para desativar o Microsoft Print to PDF e o terceiro para reativá-lo.

DISM /online /get-features /format:table | find "Disabled"

Disable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Printing-PrintToPDFServices-Package"

Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Printing-PrintToPDFServices-Package"

O comando disable funciona perfeitamente, porém, recebo a seguinte mensagem ao tentar habilitá-lo.

"enable-windowsoptionalfeature: Um dos vários recursos pai está desabilitado, então o recurso atual não pode ser habilitado." (Veja a captura de tela)

erro enable-windowsoptionalfeature

Em segundo lugar, tento ativar o recurso por meio de "Ativar ou desativar recursos do Windows", mas não consigo encontrá-lo. (Veja a captura de tela)

Liga ou desliga características das janelas

Pesquisei isso por várias horas e a única informação que posso encontrar é como adicionar a impressora de volta por meio de Programas e Recursos. Eu apreciaria toda a ajuda para resolver este problema.

windows-10 powershell command-line
  • 1 respostas
  • 1744 Views
Martin Hope
webby68
Asked: 2019-03-29 12:34:05 +0800 CST

Como desabilitar várias impressoras PDF usando o SCCM

  • 1

Estou usando o SCCM versão 1802, versão do console 5.1, versão do site 5.0.8. Desejo poder desativar a impressora Litera EPO PDF, a impressão da Microsoft em pdf, o Microsoft XPS Document Writer e o fax. A razão pela qual quero fazer isso é que quero evitar que sejam usados, mas não quero removê-los do usuário ou da imagem SCCM, apenas no caso de algo quebrar e precisar ser restaurado. No momento, estou usando um comando powershell para removê-lo, mas não consegui encontrar um script para adicionar essas impressoras de volta. Existe tal opção disponível? Se sim, como é usado? O comando que estou usando está abaixo.

Remove-Printer -Name "Microsoft Print to PDF"
print-to-pdf sccm
  • 1 respostas
  • 397 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve