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-1250181

Ξένη Γήινος's questions

Martin Hope
Ξένη Γήινος
Asked: 2024-02-05 23:21:36 +0800 CST

Como excluir arquivos de fontes abertos sem reiniciar?

  • 4

Existem alguns arquivos de fontes que não consigo excluir. Esses arquivos não estão instalados e estão fora de C:\Windows\Fonts. Eu os visualizei e agora não consigo excluí-los.

Tentar excluí-los mostrará:

Arquivo em uso

Esta ação não pode ser concluída porque o arquivo está aberto no Sistema

Feche o arquivo e tente novamente.

Eu sei que posso excluí-los após a reinicialização, mas isso causará muitos problemas sempre que eu precisar excluir arquivos de fontes.

Abri o procexp64 e encontrei o processo do sistema e o fontdrvhost.exe abriu os arquivos.

É claro que sei que não devo encerrar o processo do sistema e tentei forçar o fechamento das alças e tive acesso negado.

É possível excluir arquivos de fontes abertos sem reiniciar?

windows
  • 1 respostas
  • 39 Views
Martin Hope
Ξένη Γήινος
Asked: 2024-01-22 18:16:42 +0800 CST

Como identificar o arquivo por “Segmento de registro de arquivo”?

  • 6

Como realmente identificar arquivos por endereços de "Segmento de registro de arquivo", conforme relatado por chkdsk?

Houve um blecaute e os sistemas de arquivos das minhas unidades foram corrompidos, o hardware e os arquivos do sistema operacional estão bem, fiz verificações completas, mas fiz uma coisa estúpida ao executar chkdsk /f X:primeiro e ele processou 107.855 arquivos de dados.

Consegui acessar a pasta System Volume Information e encontrar os logs dentro da pasta Chkdsk. O log tem 11,2 MiB e eu o carreguei no Google Drive .

Estou tentando copiar programaticamente o arquivo de log e identificar todos os arquivos afetados por ele. É extremamente fácil para mim escrever o programa, sei o que estou fazendo.

Quero verificar os arquivos afetados e excluir os arquivos corrompidos e, possivelmente, baixá-los novamente. A unidade contém Tebibytes de download de jogos piratas e Tebibytes de dados que criei. Não quero fazer recuperação de dados e tal.

O problema é que a terminologia usada por chkdské inconsistente e confusa:

Checking file system on D:
The type of the file system is NTFS.

Chkdsk cannot run because the volume is in use by another
process.  Chkdsk may run if this volume is dismounted first.
ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID.
Would you like to force a dismount on this volume? (Y/N) Volume dismounted.  All opened handles to this volume are now invalid.
Volume label is Tremillia.

Stage 1: Examining basic file system structure ...
Attribute record of type 0x80 and instance tag 0x4 is cross linked
starting at 0x9383fc2 for possibly 0xfe clusters.
Some clusters occupied by attribute of type 0x80 and instance tag 0x4
in file 0x46c4 is already in use.
                                                                                       
Deleting corrupt attribute record (0x80, "")
from file record segment 0x46C4.
Attribute record of type 0x80 and instance tag 0x4 is cross linked
starting at 0x93840c0 for possibly 0x95 clusters.
Some clusters occupied by attribute of type 0x80 and instance tag 0x4
in file 0x46c5 is already in use.
Deleting corrupt attribute record (0x80, "")
from file record segment 0x46C5.
Attribute record of type 0x80 and instance tag 0x4 is cross linked
starting at 0x9384489 for possibly 0xc5 clusters.
Some clusters occupied by attribute of type 0x80 and instance tag 0x4
in file 0x4706 is already in use.
Deleting corrupt attribute record (0x80, "")
from file record segment 0x4706.
Attribute record of type 0x80 and instance tag 0x4 is cross linked
starting at 0x938454e for possibly 0x90 clusters.
Some clusters occupied by attribute of type 0x80 and instance tag 0x4
in file 0x470b is already in use.
Deleting corrupt attribute record (0x80, "")
from file record segment 0x470B.
Attribute record of type 0x80 and instance tag 0x3 is cross linked
starting at 0x93799ea for possibly 0x40 clusters.
Some clusters occupied by attribute of type 0x80 and instance tag 0x3
in file 0x4f3f is already in use.
...

Existem 3 tipos de endereços hexadecimais, denominados "segmento de registro de arquivo", "arquivo" e "cluster". Imediatamente você pode ver que o endereço do cluster começa muito grande e é muito maior que os endereços de "arquivo" e "segmento de registro de arquivo".

E então você pode ver que os endereços de "arquivo" e "segmento de registro de arquivo" são de intervalo semelhante e os mesmos endereços são chamados de "arquivo" e "segmento de registro de arquivo". Portanto, é evidente que “arquivo” e “segmento de registro de arquivo” são a mesma coisa.

Tentei pesquisar no Google como identificar arquivo por segmento de registro de arquivo e a maioria dos resultados são completamente irrelevantes. Os principais resultados são tutoriais inúteis feitos por empresas de software questionáveis, projetadas para vender seus produtos. Coisas como "como consertar", "o que fazer quando o segmento do registro do arquivo está ilegível"...

O Google é completamente inútil e os resultados não são o que eu quero, quero identificar os arquivos pelo número de "segmento de registro de arquivo".

A única coisa relevante que encontrei foi este post .

Bem, finalmente tive a oportunidade de experimentar alguns utilitários NTFS baseados em Linux. Não tenho certeza se eles são de ntfs-3g, ntfsprogs ou ntfsutils, mas qualquer pessoa que tenha uma distribuição Linux favorita deve ser capaz de iniciá-la e obter as informações necessárias com bastante facilidade. Os números são números de inode e dois comandos foram muito úteis. Este forneceu o que eu precisava:

ntfscluster -I <inode # / segmento de registro de arquivo #>

Incluía o caminho completo para o arquivo em questão e muito poucas outras informações. >Este comando forneceu muitas informações que eu não precisava:

ntfsinfo -i <inode # / segmento de registro de arquivo #>

Ele não forneceu o caminho, mas forneceu o número do inode do diretório pai, para que você pudesse fazer engenharia reversa do caminho usando esse comando repetidamente.

NTFSCluster é um utilitário Linux, a pesquisa ntfscluster windowsmostra resultados sobre o sistema de arquivos NTFS e seu tamanho de cluster, com a mensagem "Você quis dizer: janelas de cluster NTFS". A única coisa relevante é o terceiro resultado: NtfsProgs para Windows - GnuWin32 - SourceForge , esse resultado é um programa antigo de 2004 e está faltando libintl3.dll e libiconv2.dll no download. Depois de colar os .dlls na pasta não funciona:

PS C:\Users\Xeni> C:\Users\Xeni\Downloads\ntfsprogs-1.9.0-bin\bin\ntfscluster.exe -I 154681282 D:
Failed to set locale, using default '(null)'.
win32_io.c(199): ntfs_device_win32_open The handle is invalid.
 ioctl failed
Couldn't mount device 'D:': Invalid argument

O NTFSInfo da SysInternals não parece fornecer a funcionalidade para identificar arquivo por segmento de registro de arquivo .

Depois de procurar um substituto descobri nfi.exeque é ainda mais antigo, é de 1999! Funciona:

PS C:\Users\Xeni> nfi.exe D: 0x937950
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.


***Logical sector 9664848 (0x937950) on drive D is in file number 312188.
\Games\SPACEE~1\data\textures\galaxies\GALAXI~1.PAK
    $DATA (nonresident)
        logical sectors 8738944-10045631 (0x855880-0x9948bf)

Mas leva o número do setor lógico como argumento em vez de FILE RECORD SEGMENT :

PS C:\Users\Xeni> nfi.exe /?
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.

Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.

Usage: D:\CliExec\nfi.exe drive-letter [logical-sector-number]

            Drive-letter can be a single character or a character followed
            by a colon (i.e., C or C: are acceptable).

            Logical-sector-number is a decimal or 0x-prefixed hex
            number, specifying a sector number relative to the volume
            whose drive letter is given by drive-letter. If not
            specified, then information about every file on the volume
            is dumped.

       D:\CliExec\nfi.exe NT-device-path physical-sector-number

            Determines which volume a given physical sector on a drive is
            within, and then which file on the volume it is in.

            NT-device-path is the NT-style path to a physical device.
            It must not include a partition specification.

            Physical-sector-number is a decimal or 0x-prefixed hex
            number, specifying a sector number relative to the physical
            drive whose device path is given by NT-device-path.

        D:\CliExec\nfi.exe full-win32-path

            Dumps information about a particular file. full-win32-path
            must start with a drive letter and a colon.

Achei que o número do setor lógico e o segmento de registro de arquivo eram a mesma coisa, mas parece que não são:

PS C:\Users\Xeni> fsutil fsinfo ntfsInfo D:
NTFS Volume Serial Number :        0xfc2bea5043264555
NTFS Version      :                3.1
LFS Version       :                2.0
Total Sectors     :                7,810,824,157  (  3.6 TB)
Total Clusters    :                  976,353,019  (  3.6 TB)
Free Clusters     :                  275,935,695  (  1.0 TB)
Total Reserved Clusters :                 36,875  (144.0 MB)
Reserved For Storage Reserve :                 0  (  0.0 KB)
Bytes Per Sector  :                512
Bytes Per Physical Sector :        512
Bytes Per Cluster :                4096
Bytes Per FileRecord Segment    :  1024
Clusters Per FileRecord Segment :  0
Mft Valid Data Length :            2.14 GB
Mft Start Lcn  :                   0x0000000000000002
Mft2 Start Lcn :                   0x000000000a31f5fd
MFT Zone Size  :                   200.13 MB
Max Device Trim Extent Count :     0
Max Device Trim Byte Count :       0
Max Volume Trim Extent Count :     62
Resource Manager Identifier :      E548A579-8A28-11EB-BA87-F4B52033630B

Parece que o segmento de registro do arquivo tem 1024 bytes e o número do setor lógico é 512 bytes, então talvez eu precise dobrar o número para obter o arquivo real referenciado. Mas isso pode muito bem estar errado, pois o número de clusters é muito alto.

Então, como posso realmente identificar o arquivo por segmento de registro de arquivo?


Atualizar

Usei um pouco do Google-fu e descobri essa atrocidade de uma palavra-chave de pesquisa: "file record segment" -unreadable -fix -corrupte finalmente encontrei algo útil :

segmento de registro de arquivo: um registro na tabela de arquivos mestre que contém atributos para um arquivo específico em um volume NTFS. O segmento de registro de arquivo tem sempre 1.024 bytes (1 kilobyte) de tamanho.

Apenas duas frases contendo informações cruciais. É isso. O resultado é o resultado principal e todos os outros resultados são irrelevantes.

Agora preciso encontrar uma maneira de consultar programaticamente a Master File Table e esperar não corrompê-la acidentalmente, o que equivale a uma pesquisa mais fútil no Google ...

windows
  • 1 respostas
  • 57 Views
Martin Hope
Ξένη Γήινος
Asked: 2024-01-21 22:37:19 +0800 CST

O que significa "$DATA (não residente)"?

  • 8

Houve um apagão em minha casa e os sistemas de arquivos dos discos rígidos do meu computador foram corrompidos.

Verifiquei os arquivos do sistema e o hardware e não encontrei nenhum problema. Mas eu fiz a coisa estúpida de executar chkdsk /f X:primeiro e ele encontrou e excluiu registros de atributos corrompidos de 16.659 arquivos.

Agora acho que todos esses arquivos podem estar corrompidos.

Tomei posse das pastas "System Volume Information" e encontrei os logs completos dentro da pasta Chkdsk.

E eu uso nfi.exe para obter os arquivos afetados dos números do setor. Estou tentando escrever um programa asyncio.create_subprocess_execpara fazer isso.

Mas primeiro quero entender a saída do nfi.exe.

PS C:\Users\Xeni> D:\downloads\nfi\nfi.exe D: 0x9379dc5
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.


***Logical sector 154639813 (0x9379dc5) on drive D is in file number 551312.
\Games\Saints Row 4\packfiles\pc\cache\dlc3.vpp_pc
    $STANDARD_INFORMATION (resident)
    $FILE_NAME (resident)
    $FILE_NAME (resident)
    $DATA (nonresident)
        logical sectors 154625064-154690687 (0x9376428-0x938647f)

O que significa a saída? O que é $DATA (nonresident)? Isso significa que os metadados e o nome do arquivo são mantidos, mas os dados do arquivo desaparecem, o arquivo é um "arquivo fantasma"?

Tentei pesquisar no Google "$DATA (nonresident)"e não encontrei absolutamente nada sobre o seu significado.

windows
  • 1 respostas
  • 290 Views
Martin Hope
Ξένη Γήινος
Asked: 2023-04-07 23:06:24 +0800 CST

Windows 10 relata falsamente sem internet

  • 6

Eu sei que isso foi perguntado muitas vezes, mas não encontrei nada que realmente resolva.

Eu uso VPNs para acessar a internet internacional, a liberdade de informação é um direito humano básico, infelizmente moro na China, então tenho que usar VPNs para exercer esse direito.

E agora o Windows 10 relata falsamente "Sem Internet" enquanto a VPN está conectada, apesar do fato de eu poder visitar qualquer site bloqueado sem problemas (por exemplo, www.google.com ). O Windows relatou corretamente "Acesso à Internet" enquanto a VPN estava ativa no passado, mas de alguma forma agora não.

Você pode pensar que isso não é grande coisa, mas meu ISP tenta constantemente desconectar minha VPN e às vezes eles conseguem, e o Indicador de status de conectividade de rede não consegue me dizer quando estou realmente desconectado.

É claro que pesquisei no Google e alguns resultados sugeriram as seguintes edições de registro e reinicialização do roteador:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet]
"ActiveDnsProbeContent"="8.8.8.8"
"ActiveDnsProbeContentV6"="2001:4860:4860::8844"
"ActiveDnsProbeHost"="dns.google"
"ActiveDnsProbeHostV6"="dns.google"
"ActiveWebProbeContent"="success"
"ActiveWebProbeContentV6"="success"
"ActiveWebProbeHost"="detectportal.firefox.com"
"ActiveWebProbeHostV6"="detectportal.firefox.com"
"ActiveWebProbePath"="success.txt"
"ActiveWebProbePathV6"="success.txt"
"CaptivePortalTimer"=dword:00000000
"CaptivePortalTimerBackOffIncrementsInSeconds"=dword:00000005
"CaptivePortalTimerMaxInSeconds"=dword:0000001e
"EnableActiveProbing"=dword:00000001
"PassivePollPeriod"=dword:0000000f
"StaleThreshold"=dword:0000001e
"WebTimeout"=dword:00000023

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet\ManualProxies]


[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator]
@=""

Eu tentei e não funcionou.

Eu posso pingar os servidores usados ​​no teste muito bem:

PS C:\Users\Xeni> ping detectportal.firefox.com

Pinging prod.detectportal.prod.cloudops.mozgcp.net [34.107.221.82] with 32 bytes of data:
Reply from 34.107.221.82: bytes=32 time=203ms TTL=120
Reply from 34.107.221.82: bytes=32 time=203ms TTL=120
Reply from 34.107.221.82: bytes=32 time=203ms TTL=120
Reply from 34.107.221.82: bytes=32 time=204ms TTL=120

Ping statistics for 34.107.221.82:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 203ms, Maximum = 204ms, Average = 203ms
PS C:\Users\Xeni> ping 8.8.8.8

Pinging 8.8.8.8 with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=203ms TTL=120
Reply from 8.8.8.8: bytes=32 time=203ms TTL=120
Reply from 8.8.8.8: bytes=32 time=203ms TTL=120
Reply from 8.8.8.8: bytes=32 time=200ms TTL=120

Ping statistics for 8.8.8.8:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 200ms, Maximum = 203ms, Average = 202ms

Desativei e reativei o adaptador de rede...

Nada funciona.

No entanto, sei que se eu desconectar a VPN, o NCSI informará imediatamente corretamente que tenho acesso à Internet, reproduzi isso com sucesso muitas vezes sem falhas, mas é claro que essa não é a solução por motivos óbvios.

Minhas configurações -> Rede e Internet -> Status -> Status da rede diz:

Sem acesso à Internet

Seu dispositivo está conectado, mas talvez você não consiga acessar

qualquer coisa na rede. Se você tiver um plano de dados limitado, poderá

torne esta rede uma conexão limitada ou altere outras

propriedades.

Como faço para corrigir esse problema?

PS Esses detalhes são irrelevantes, mas vou adicioná-los aqui caso alguém os mencione:

Meu sistema operacional é o Windows 10 Pro 22H2 x64 e estou usando conexão Ethernet com fio, mas eles não afetam muito o problema; e não, dism /online /cleanup-image /restorehealthabsolutamente sfc scannownão corrige esse problema, portanto, não reinstala o sistema operacional; E eu já atualizei o driver de rede usando o Snappy Driver Installer anteriormente e reiniciei meu computador...

windows
  • 2 respostas
  • 56 Views
Martin Hope
Ξένη Γήινος
Asked: 2022-06-05 23:53:38 +0800 CST

Como transfiro arquivos de 148 GiB de um telefone Android para um computador?

  • 18

Por favor me ajude, preciso transferir 148 GiB de dados do meu telefone Android para um computador.

Meu telefone é Oppo A96 e ficou sem espaço:

insira a descrição da imagem aqui

Está cheio gravando vídeos, e eles ocupam coletivamente 148GiB de espaço, e vou mover os arquivos para meu HDD de 4TB (capacidade de 3725,29 GiB), para liberar espaço e editar e compactar os vídeos antes de publicá-los no meu canal do Youtube.

Claro que tenho um cabo de dados USB, então inseri uma extremidade do cabo no telefone e a outra em uma porta USB 3.0 do computador, para conectar o telefone ao computador, e selecionei "Transferir Arquivos" no prompt, e comecei a copiar os arquivos usando o Windows Explorer:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Está levando eras.

Leva mais de 4,5 horas para concluir a transferência, cancelei a operação, não posso esperar 4,5 horas apenas para que a operação de transferência seja concluída e, mesmo no caso improvável de que eu pudesse, quando a operação for concluída, eu não faria não conseguir acessar o computador, é uma "dificuldade técnica" que eu não entraria aqui.

Então eu abri o Gerenciador de Tarefas e encontrei:

insira a descrição da imagem aqui

O Windows Explorer só move os arquivos a miseráveis ​​37,1 MB/s...

A velocidade de transferência teórica do USB 3.0 é de 4,8 Gbit/s:

4.8 * 1000^3 bit/s
600 * 1000^2 byte/s
600 * 1000^2/1024^2 mebibyte/s
572.20458984375 MiB/s

E o desempenho desse disco rígido em particular:

insira a descrição da imagem aqui

Como faço para acelerar o processo, para torná-lo o mais rápido possível?

Se for um drive normal eu usaria o FastCopy, mas aqui estou acessando um sistema de arquivos emulado através de um cabo USB, então não sei se é a solução mais eficiente.

Caso o conteúdo dos arquivos seja importante, cerca de metade deles são capturas de tela JPEG, todas essas capturas de tela têm menos de 1 MiB de tamanho. Os outros arquivos são gravações de tela MPEG-4 que vêm em todos os tamanhos, mas a maioria deles está entre 0,5 - 5 GiB. E são 95 fotos e 100 vídeos, totalizando 159636475587 bytes (148,67 GiB).


Todas as opções que envolvem Blue-tooth, Wi-Fi e armazenamento em nuvem só podem ser mais lentas que a conexão física, todas têm uma largura de banda mais estreita que o USB 3.0.


Acabei de verificar, a interface USB do telefone é fonte Type-C , não sei se suporta USB 3.0 ou não, mas não é declarado. Quanto ao cabo, não sei, talvez compre um cabo USB 3.0 para o telefone.

hard-drive usb
  • 9 respostas
  • 7385 Views
Martin Hope
Ξένη Γήινος
Asked: 2022-05-14 19:30:35 +0800 CST

A taxa de quadros é inversamente proporcional à qualidade da imagem do vídeo?

  • 6

Eu gravei vários vídeos no meu telefone Android, eles ocupam mais de 128GiB de espaço, então decidi reduzir o tamanho dos arquivos dos vídeos usando o ffmpeg.

Pretendo minimizar o tamanho do arquivo mantendo uma qualidade visual razoável percebida.

Existem quatro características importantes dos vídeos: taxa de bits, taxa de quadros, resolução e duração.

Framerate informa quantos quadros são exibidos por segundo, bitrate informa quantos bits são necessários para armazenar um segundo do vídeo, resolução é a largura e altura do quadro em pixels.

Eu não sei muito sobre vídeos, mas se minha matemática for boa, o tamanho do arquivo deve ser igual à taxa de bits vezes o comprimento.

A qualidade da imagem é difícil de medir, mas em resolução fixa, como regra geral, quanto mais bytes um pixel individual leva, melhor a qualidade da imagem, portanto, tamanho de arquivo maior equivale a melhor qualidade em resolução fixa.

Agora suponha que a resolução seja fixa, o tamanho de cada quadro pode ser calculado pela taxa de bits dividida pela taxa de quadros, então o tamanho do arquivo do quadro é diretamente proporcional à taxa de bits e inversamente proporcional à taxa de quadros, suponha que o tamanho do arquivo seja proporcional à qualidade visual, isso significa que a taxa de quadros é inversamente proporcional à qualidade visual.

Então, com taxa de bits fixa e resolução fixa, aumentar a taxa de quadros realmente diminui a qualidade da imagem? Meu raciocínio está certo? Tentei pesquisar o tópico no Google, mas poucos resultados são relevantes como de costume, e os relevantes fornecem respostas conflitantes.

video
  • 1 respostas
  • 49 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-03-29 01:54:51 +0800 CST

Para onde os arquivos de instalação do Unity e do Unreal Engine 4 são baixados?

  • 5

Perdoe-me se esta pergunta parece trivial, mas tentei o Google muitas vezes e não retornou nenhum resultado relevante.

A coisa é muito simples, instalei o Unity (via Unity Hub) e o Unreal Engine 4 (via Epic Games Launcher), as instalações foram bem sucedidas e não encontrei nenhum problema e não quero desinstalá-los, mas eles baixei dezenas de arquivos de instalação de gigabytes que são obviamente inúteis após a instalação, mas ainda ocupam espaço precioso na unidade do sistema, então quero remover os arquivos de instalação e economizar espaço.

Mas não consigo encontrar onde estão os arquivos, tentei o Google, e o Google provou mais uma vez sua inutilidade;

Então procurei as pastas usando o PowerShell:

$env:Programdata,$env:Userprofile | %{get-childitem -path $_ -force -directory -recurse -depth 5 | where {$_.name -match 'unity|epic|unreal'} | %{$_.fullname}}

E após remover resultados irrelevantes e os diretórios de instalação dos programas, o resultado é este:

C:\ProgramData\Epic
C:\ProgramData\Unity
C:\Users\Estranger\AppData\Local\EpicGamesLauncher
C:\Users\Estranger\AppData\Local\Unity
C:\Users\Estranger\AppData\Local\unityhub-updater
C:\Users\Estranger\AppData\Local\UnrealEngine
C:\Users\Estranger\AppData\Local\UnrealEngineLauncher
C:\Users\Estranger\AppData\LocalLow\Unity
C:\Users\Estranger\AppData\Roaming\Unity
C:\Users\Estranger\AppData\Roaming\Unity Hub
C:\Users\Estranger\AppData\Roaming\UnityHub

Mas eles ocupam apenas menos de 2GiB de espaço:

$size=@()
$folders=@(
'C:\ProgramData\Epic'
'C:\ProgramData\Unity'
'C:\Users\Estranger\AppData\Local\EpicGamesLauncher'
'C:\Users\Estranger\AppData\Local\Unity'
'C:\Users\Estranger\AppData\Local\unityhub-updater'
'C:\Users\Estranger\AppData\Local\UnrealEngine'
'C:\Users\Estranger\AppData\Local\UnrealEngineLauncher'
'C:\Users\Estranger\AppData\LocalLow\Unity'
'C:\Users\Estranger\AppData\Roaming\Unity'
'C:\Users\Estranger\AppData\Roaming\Unity Hub'
'C:\Users\Estranger\AppData\Roaming\UnityHub'
)
$folders | %{$size+=(Get-ChildItem -Path $_ -Force -Recurse | Measure-Object -Sum Length).Sum / 1048576}
($size | Measure-Object -Sum).Sum

A linha final retorna 1067.47400283813, o que significa que eles ocupam coletivamente apenas 1067.47400283813MiB, mas os instaladores online baixaram dezenas de gibibytes de arquivos, então onde estão os arquivos baixados para que eu possa removê-los?

installation unity3d
  • 1 respostas
  • 164 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-03-14 00:19:08 +0800 CST

Velocidade máxima de leitura/gravação de um HDD SATA 3.0 avaliado em 6,0 Gb/s?

  • 9

Qual é a velocidade máxima real de leitura/gravação para uma unidade de disco rígido SATA III 6.0Gb/s realisticamente?

Eu sei o que significa 6,0 gb/s, significa seis gigabits por segundo, o prefixo giga- usa a definição decimal SI, que significa 1.000.000.000, e é 1.000 vezes um mega- e 1.000.000 vezes um kilo-, mas os computadores usam binário e usam Byte como unidade base, 1 Byte = 8 bit, com cada unidade 1.024 vezes a anterior, então 1 KB é 1.024 Byte e 8.192 bit, 1 MB é 1.048.576 Byte e 8.388.608 bit, e 1 GB é 1.073.741.824 Byte e 8.589.934.592 bit, então 6,0 gb/s em decimal seria 732.421,875 KB/s ou 715,2557373046875 MB/s em binário.

Mas, na realidade, meu HDD é Seagate BarraCuda ST1000DM010 1TB 7200 RPM 64MB SATA III 6.0gb/s e conectado a uma porta SATA III 6.0gb/s na minha placa-mãe:

insira a descrição da imagem aqui

No entanto, nunca observei velocidade de leitura/gravação de disco deste HDD superior a 160MiB/s em taskmgr.exe, usando FastCopy com um tamanho de buffer de 256MiB para copiar arquivos do mesmo HDD fornece uma taxa de transferência de 128MiB/s no máximo, e normalmente em torno de 108MiB/s na maioria das vezes, curiosamente Get-FileHashpode aumentar a velocidade de E/S do HDD em até 144MiB/s.

Então, qual é a velocidade máxima de leitura/gravação de um HDD SATA III a 7200 rpm com interface SATA 6.0gb/s?

Faço esta pergunta porque pretendo comprar Seagate Exos 7E8 4TB 512n SATA 128MB Cache 3.5-Inch Enterprise Hard Drive (ST4000NM0035) , ele tem 128MB de cache em vez dos meus 64MB, então qual velocidade de leitura/gravação devo esperar? Seria cerca de 256MiB/s, porque tem cache duas vezes maior que o meu, ou algo maior?


Então SATA usa codificação 8b/10b então teoricamente a taxa de dados máxima é de 4.8gb/s que equivale a 600MB/s ou 572.20458984375MiB/s, porém essa velocidade é muito maior do que eu realmente posso obter...

hard-drive sata
  • 1 respostas
  • 7899 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-02-21 21:05:54 +0800 CST

Disco GPT não reconhecido pelo firmware

  • 5

Minha placa-mãe é BIOSTAR H81MHv3, seu BIOS/UEFI/Firmware/Whatever is Aptio Setup Utility Versão 2.15.1231 Copyright (C) 2012 American Megatrends, Inc.

Eu tenho quatro discos, todos Seagate Hard Disk Drives:

Size    Model               Real Size
0.5TB   ST500DM002-1ER14    466GiB
1TB     ST1000DM010-2EP1    932GiB
2TB     ST2000LM007-1R81    1863GiB
4TB     ST4000VX005-2LY1    3726GiB

O último disco é recém-comprado há 2 dias, testei e não encontrei problemas, comprei um HDD por capacidade de armazenamento e não por velocidade, pois pretendo baixar muitos jogos e SSDs de tamanho semelhante são muito caros;

Como o tamanho do disco é superior a 2048GiB, ele só pode usar a tabela de partições GPT, o disco não tinha partições e já usava GPT quando comprado, então eu mesmo criei as partições usando o DiskGenius. Criei uma partição ESP de 300 MiB e uma partição MSR de 128 MiB primeiro, depois criei uma partição NTFS de 1 TiB e uma partição NTFS de 2 TiB, deixando 653,6 GB livres.

insira a descrição da imagem aqui

Pretendo instalar o Windows 10 Pro for Workstations v20H2 na partição 1TiB e instalar os jogos na partição 2TiB e instalar o Fedora 33 for Workstations no espaço livre.

Mas encontrei um problema: embora as partições sejam reconhecidas corretamente por todos os softwares do Windows, o próprio disco não é reconhecido pelo firmware, o que significa que não consigo inicializar a partir do disco.

Esta é a configuração padrão :

insira a descrição da imagem aqui

Usando a configuração padrão, o HDD não é reconhecido :

insira a descrição da imagem aqui

Tentei desabilitar o CSM e ainda assim o disco não é reconhecido :

insira a descrição da imagem aqui

Pesquisei no Google uma solução e encontrei uma pergunta semelhante que não é útil: GPT Partitioned Disk not Recognized by BIOS

Consigo instalar o Windows no disco usando dismsem problemas, mas não consigo inicializar a partir dele.

O que mais devo tentar para tornar o HDD inicializável?

hard-drive boot
  • 1 respostas
  • 236 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-02-19 03:40:07 +0800 CST

O Windows 10 se tornará não inicializável se eu adicionar uma GPU dedicada?

  • 5

Especificações do meu computador:

CPU:        Intel Core i5-4430 @ 3.00GHz
GPU:        Intel HD Graphics 4600
Mainboard:  BIOSTAR H81MHV3
RAM:        DDR3 1600MHz 4GB + 8GB
HDD:        Seagate SATA HDD 500GB + 1TB + 2TB

Estou planejando comprar uma placa gráfica dedicada NVIDIA com 2 GB de VRAM, mas não sei se a instalação atual do Windows 10 não será inicializável, exigindo uma instalação limpa.

  • Pergunto porque depois de substituir a placa-mãe e a CPU após a morte da placa-mãe anterior, reinstalei o Windows quando ele não inicializava e retornava o erro BSOD:
    A required device isn't connected or can't be accessed.
    

Preciso realizar uma instalação limpa após a alteração do hardware?

windows-10 boot
  • 1 respostas
  • 45 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-29 04:26:26 +0800 CST

Windows 10 - As unidades de registro do PowerShell não estão funcionando corretamente

  • 6

Estou usando o Windows 10 20H2, recriei com êxito esse problema várias vezes sem falha, no PowerShell Desktop 5.1.19041.610 e no PowerShell Core 7.1.1.

O problema: Test-Path funciona apenas com duas unidades de registro do PowerShell (nomes de hive de registro abreviados):

HKCU:eHKLM:

São abreviaturas de HKEY_CURRENT_USERe HKEY_LOCAL_MACHINErespectivamente.

No PowerShell os nomes completos deles são:

Registry::HKEY_CURRENT_USERe Registry::HKEY_LOCAL_MACHINErespectivamente.

No entanto, existem cinco colmeias de registro, sendo as outras três:

HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIGeHKEY_USERS

Seus apelidos:

HKCR:, HKCC:eHKU:

Test-Pathnão consegue encontrar as unidades, mas Test-Pathpode encontrá-las se os nomes completos forem fornecidos:

TEST-PATH HKCR:
TEST-PATH HKCU:
TEST-PATH HKLM:
TEST-PATH HKU:
TEST-PATH HKCC:
TEST-PATH REGISTRY::HKEY_CLASSES_ROOT
TEST-PATH REGISTRY::HKEY_CURRENT_CONFIG
TEST-PATH REGISTRY::HKEY_USERS
$PSVersionTable

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Estou curioso e quero saber por que ele se comporta assim.

Alguém pode dar uma explicação?

Confirmei que as outras três unidades também não funcionam com outros cmdlets, como posso usar as três unidades de registro?

windows-10 powershell
  • 2 respostas
  • 1677 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-26 22:33:18 +0800 CST

Como usar o PowerShell e/ou Python para reiniciar o roteador?

  • 10

Como usar o PowerShell para reiniciar o roteador?

Meu computador está conectado ao roteador usando um cabo de rede, o roteador funciona como um modem, ele se conecta ao ISP através de PPPoE, meu computador está atrás do NAT.

O modelo do meu roteador: Huawei HS8545M, endereço LAN: 192.168.1.1, login do administrador da página da Web: CMCAdmin, senha do administrador da página da Web: aDm8H%MdA.

Eu tenho que fazer o seguinte para reiniciar o roteador (7 cliques no total, o navegador lembra o login e a senha):

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Passos demais.

Eu tentei usar este método:

$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Navigate "https://192.168.1.1"

Mas depois de um tempo a conexão é perdida, .Documentfica vazia, tentar atualizar resulta neste erro:

OperationStopped: The RPC server is unavailable. (0x800706BA)

Estou usando o Windows 10 20H2 e desabilitei a Área de Trabalho Remota, Assistência Remota, Registro Remoto, Gerenciamento Remoto do Windows e muitas outras coisas, desabilitei coisas remotas porque representam ameaças à segurança, acho que são relevantes para isso; A propósito, o RPCserviço está em execução.

Alguém pode me ajudar?


Código fonte da primeira página: page1.html

Código fonte da segunda página: page2.html

Isso deve ser simples de fazer, faça login em 192.168.1.1, crie um cookie e use o cookie para entrar em 192.168.1.1/index.asp, envie Restart_button, job done, porém não estou muito familiarizado com comandos que lidam com redes ...


Atualmente estou procurando o caminho do Python, estou usando o Python 3.9.1 amd64, coloquei no PATH há muito tempo, instalei o Selenium e o Twill via pip. e baixei e extraí o GeckoDriver.exe para a pasta de instalação do Python;

Conheço selênio, sarja, urllib, urllib2, cookielib e webbot, todos são capazes de fazer isso, atualmente estou tentando descobrir como fazê-lo da melhor maneira.


Consegui fazer login no roteador em Python via sarja, porém não sei o que fazer a seguir:

from twill.commands import *
go('http://192.168.1.1')
showforms()
fv("1","txt_Username","CMCCAdmin")
fv("1","txt_Password","aDm8H%MdA")
showforms()
submit('btnSubmit')
go("http://192.168.1.1/index.asp")

insira a descrição da imagem aqui

O botão:

<input type="button" name="Restart_button" id="Restart_button" class="submit" style="width:98px" onclick="Reboot()" value="重启">

Está localizado em:

html.body.#container.#center.#content.table.tbody.tr.td.#frameContent.html.body.div.#Restart_button

Além disso, o inputfieldsda primeira página ( http://192.168.1.1 ):

PS C:\Windows\System32> $html.inputfields

outerHTML : <input name="txt_Username" type="text" id="txt_Username" style="float:left;padding:0;width:218px;height:38px;line-height:38px;text-indent:0.5em;border:0 solid green;background-color:transparent;" maxlength="31"/>
tagName   : INPUT
name      : txt_Username
type      : text
id        : txt_Username
style     : float:left;padding:0;width:218px;height:38px;line-height:38px;text-indent:0.5em;border:0 solid green;background-color:transparent;
maxlength : 31

outerHTML : <input name="txt_Password" type="password" id="txt_Password" maxlength="127" style="float:left;padding:0;width:218px;height:38px;line-height:38px;text-indent:0.5em;border:0 solid green;background-color:transparent;"
            maxlength="31"/>
tagName   : INPUT
name      : txt_Password
type      : password
id        : txt_Password
maxlength : 31
style     : float:left;padding:0;width:218px;height:38px;line-height:38px;text-indent:0.5em;border:0 solid green;background-color:transparent;

outerHTML : <input type="button" id="btnSubmit" name="btnSubmit" value="确定" onclick="SubmitForm();" class="button_css"/>
tagName   : INPUT
type      : button
id        : btnSubmit
name      : btnSubmit
value     : 确定
onclick   : SubmitForm();
class     : button_css

outerHTML : <input type="reset" name="Submit2" value="取消" onclick="canceltext();" class="button_css"/>
tagName   : INPUT
type      : reset
name      : Submit2
value     : 取消
onclick   : canceltext();
class     : button_css

Eu tenho o código-fonte da página de redefinição:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<link rel="stylesheet"  href='../../../../Cuscss/frame.css?2020070716413845-1425773353' type='text/css'>
<script language="JavaScript" src="../../../resource/common/util.js?2020070716413845-1425773353"></script>
<script language="JavaScript" type="text/javascript">

function LoadFrame()
{
}


function Reboot()
{
if(ConfirmEx("确定要重启设备吗?"))
{
setDisable('Restart_button',   1);
setDisable('Restore_button',    1);
setDisable('btnRestoreDftCfg', 1);
var Form = new webSubmitForm();

Form.setAction('set.cgi?x=' + 'InternetGatewayDevice.X_HW_DEBUG.SMP.DM.ResetBoard'
 + '&RequestFile=html/ssmp/devmanage/cmccdevicereset.asp');
Form.addParameter('x.X_HW_Token', getValue('onttoken'));
Form.submit();
}
}

</script>
</head>
<body class="mainbody" onLoad="LoadFrame();">

<div class="func_spread"></div>
<div class="title_with_desc">
<label id="Title_reboot_lable">设备重启</label>
</div>
<div class="title_01" style="padding-left:10px;" width="100%">
<label id="Title_reboot_tips_lable">点击如下按钮重启路由器。</label>
</div>
<div class="button_spread"></div>
<div align="right">
<input type="hidden" name="onttoken" id="hwonttoken" value="de0f5f98c4d4a77239ccb981cd5c4bf3">
<input type='button' name="Restart_button" id="Restart_button" class="submit" style="width:98px" onClick='Reboot()' value="重启">
</div>
</body>
</html>

Está localizado no endereço:

http://192.168.1.1/html/ssmp/devmanage/cmccdevicereset.asp

Também não sei se Submit('btnSubmit')me loguei ou não, não tenho certeza...

E embora isso funcione, o Firefox inicializa muito lentamente.


Eu finalmente descobri como fazer isso da maneira telnet:

telnet 192.168.1.1
root
adminHW
reset

Como posso torná-lo um script que insere comandos automaticamente?

windows-10 networking
  • 4 respostas
  • 1673 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-24 19:28:38 +0800 CST

Como iniciar o PowerShell para executar um comando e passar uma variável para o novo processo?

  • 5

Atualmente, estou trabalhando em um script que faz todos os meus hacks no meu sistema operacional Windows 10 20H2 em uma execução.

Estou usando o PowerShell 7.0.4 x64, quero executar o script em Admin pwsh, encontrei algumas chaves de registro que exigem que os privilégios do TrustedInstaller sejam alterados, encontrei uma solução: usando psexec -Spara iniciar um pwshprocesso para executar os comandos com TrustedInstallerprivilégios, infelizmente eu não sei como passar variáveis ​​para novos processos e fazer com que ele saia automaticamente psexecpara continuar a execução do script.

Vou usar isso como exemplo:

$TiSvc=@(
"PrintWorkflowUserSvc"
"RmSvc"
"SCardSvr"
"SecurityHealthService"
"Sense"
"SgrmBroker"
"wscsvc"
)
$TiSvc | %{Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$_" -Name Start -Type DWord -Value 4}

Sem TrustedInstallerprivilégio, o comando falhará com erro de acesso negado.

Agora, para resolver isso, use psexecpara executar o comando (coloquei a SysInternalspasta em path):

$PwSh=(Get-Process -Id $pid).path
PsExec -S $PwSh ???

Quero definir a [array]variável $TiSvcna sessão atual, não sei como passar $TiSvcpara a nova pwshsessão e executar este comando:

$TiSvc | %{Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$_" -Name Start -Type DWord -Value 4}

E depois que o comando for executado, saia da nova pwshsessão e saia psexecpara continuar a execução do script;

Como eu posso fazer isso? Qualquer ajuda é apreciada.

windows-10 command-line
  • 1 respostas
  • 1329 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-23 04:43:37 +0800 CST

Como visualizar o histórico de operações do explorador de arquivos?

  • 7

O explorador de arquivos mantém um registro de uma lista de operações (copiar, excluir, mover, novo, renomear) realizadas no processo atual do explorador, para que, se você mudar de ideia, possa desfazer as alterações ( Ctrl+ Z) ou refazer as alterações ( Ctrl+ Y).

Estou usando o Windows 10 20H2, fixei desfazer e outros na Barra de Ferramentas de Acesso Rápido. E o botão de edição no menu está acinzentado.

insira a descrição da imagem aqui

Os botões desfazer e refazer ficarão cinzas se não houver nada a ser desfeito/refeito, e ficarão azuis se houver operações que possam ser desfeitas/refeitas. Quando os botões desfazer/refazer estiverem ativos, passar o cursor sobre eles irá mostrar uma mensagem que mostrará a ação específica que pode ser desfeita/refeita, e mostrará o nome do arquivo no qual a operação é executada(Desfazer Mover o Arquivo .TXT). Ele não mostrará o nome do arquivo se vários arquivos estiverem envolvidos (Undo Move).

O histórico de desfazer/refazer será apagado se explorer.exefor reiniciado, parece indicar que o histórico está armazenado na RAM; O histórico também será apagado se uma das três ações a seguir for executada:

1, Exclusão permanente de um arquivo (não movendo para $RECYCLE.BIN); 2, Criando um atalho e tentando desfazer a criação do atalho após o atalho ser salvo; 3, Executando uma operação de arquivo que requer privilégios administrativos.

As operações de arquivo realizadas por outros programas (ou seja, cmd, pwsh) não serão registradas no histórico do explorer.

Descrição: Como posso visualizar este histórico de operações do explorador de arquivos?

Eu tinha visto duas perguntas semelhantes aqui: Visualizando o histórico completo de desfazer do Windows Explorer e Obter histórico de operações de arquivo no Windows?

No entanto, nenhum deles resolve meu problema, pois

  1. Não estou tentando monitorar as operações de arquivo executadas em uma pasta específica, mas sim todas as operações executadas no processo atual do explorer;

  2. O Process Monitor só mostrará as operações realizadas após o seu lançamento, não antes, e o número de eventos registrados aumenta muito rápido, milhares de novos eventos por segundo, a maioria deles são pelo explorer.exe, e isso é quando não estou realizando nenhuma operação, mesmo se eu filtrar por ID do processo e visualizar o resumo do arquivo, uma pasta será gravada mesmo que a pasta seja apenas consultada e não modificada...

windows-10 windows-explorer
  • 1 respostas
  • 2058 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-23 00:28:12 +0800 CST

Como alterar as opções de energia pelo registro ou pela linha de comando?

  • 7

Quero alterar powercfg.cpl"Opções de energia" diretamente pelo registro.

Especificamente, eu quero mudar isso:

insira a descrição da imagem aqui

Para essas configurações:

insira a descrição da imagem aqui

Estou usando um computador desktop em corrente alternada, portanto a economia de energia é desnecessária e prejudica o desempenho; Desativei a inicialização rápida no BIOS.

Eu abri esta chave de registro em regedit.exe:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power

E as únicas coisas que consigo ver dentro da chave são:

HiberFileSizePercent REG_DWORD 0
HibernateEnabled REG_DWORD 0
HibernateEnabledDefault REG_DWORD 1

Eu tentei usar powercfg.exee isso é o que eu tenho:

C:\Windows\system32>powercfg /l

Existing Power Schemes (* Active)
-----------------------------------
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e  (Balanced)
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (High performance) *
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (Power saver)

C:\Windows\system32>powercfg /q
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (High performance)
  GUID Alias: SCHEME_MIN
  Subgroup GUID: 0012ee47-9041-4b5d-9b77-535fba8b1442  (Hard disk)
    GUID Alias: SUB_DISK
    Power Setting GUID: 6738e2c4-e8a5-4a42-b16a-e040e769756e  (Turn off hard disk after)
      GUID Alias: DISKIDLE
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0xffffffff
      Possible Settings increment: 0x00000001
      Possible Settings units: Seconds
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x000004b0

  Subgroup GUID: 02f815b5-a5cf-4c84-bf20-649d1f75d3d8  (Internet Explorer)
    Power Setting GUID: 4c793e7d-a264-42e1-87d3-7a0d2f523ccd  (JavaScript Timer Frequency)
      Possible Setting Index: 000
      Possible Setting Friendly Name: Maximum Power Savings
      Possible Setting Index: 001
      Possible Setting Friendly Name: Maximum Performance
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

  Subgroup GUID: 0d7dbae2-4294-402a-ba8e-26777e8488cd  (Desktop background settings)
    Power Setting GUID: 309dce9b-bef4-4119-9921-a851fb12f0f4  (Slide show)
      Possible Setting Index: 000
      Possible Setting Friendly Name: Available
      Possible Setting Index: 001
      Possible Setting Friendly Name: Paused
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

  Subgroup GUID: 19cbb8fa-5279-450e-9fac-8a3d5fedd0c1  (Wireless Adapter Settings)
    Power Setting GUID: 12bbebe6-58d6-4636-95bb-3217ef867c1a  (Power Saving Mode)
      Possible Setting Index: 000
      Possible Setting Friendly Name: Maximum Performance
      Possible Setting Index: 001
      Possible Setting Friendly Name: Low Power Saving
      Possible Setting Index: 002
      Possible Setting Friendly Name: Medium Power Saving
      Possible Setting Index: 003
      Possible Setting Friendly Name: Maximum Power Saving
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

  Subgroup GUID: 238c9fa8-0aad-41ed-83f4-97be242c8f20  (Sleep)
    GUID Alias: SUB_SLEEP
    Power Setting GUID: 29f6c1db-86da-48c5-9fdb-f2b67b1f44da  (Sleep after)
      GUID Alias: STANDBYIDLE
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0xffffffff
      Possible Settings increment: 0x00000001
      Possible Settings units: Seconds
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

    Power Setting GUID: 94ac6d29-73ce-41a6-809f-6363ba21b47e  (Allow hybrid sleep)
      GUID Alias: HYBRIDSLEEP
      Possible Setting Index: 000
      Possible Setting Friendly Name: Off
      Possible Setting Index: 001
      Possible Setting Friendly Name: On
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

    Power Setting GUID: 9d7815a6-7ee4-497e-8888-515a05f02364  (Hibernate after)
      GUID Alias: HIBERNATEIDLE
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0xffffffff
      Possible Settings increment: 0x00000001
      Possible Settings units: Seconds
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

    Power Setting GUID: bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d  (Allow wake timers)
      GUID Alias: RTCWAKE
      Possible Setting Index: 000
      Possible Setting Friendly Name: Disable
      Possible Setting Index: 001
      Possible Setting Friendly Name: Enable
      Possible Setting Index: 002
      Possible Setting Friendly Name: Important Wake Timers Only
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

  Subgroup GUID: 2a737441-1930-4402-8d77-b2bebba308a3  (USB settings)
    Power Setting GUID: 48e6b7a6-50f5-4782-a5d4-53bb8f07e226  (USB selective suspend setting)
      Possible Setting Index: 000
      Possible Setting Friendly Name: Disabled
      Possible Setting Index: 001
      Possible Setting Friendly Name: Enabled
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

  Subgroup GUID: 4f971e89-eebd-4455-a8de-9e59040e7347  (Power buttons and lid)
    GUID Alias: SUB_BUTTONS
    Power Setting GUID: a7066653-8d6c-40a8-910e-a1f54b84c7e5  (Start menu power button)
      GUID Alias: UIBUTTON_ACTION
      Possible Setting Index: 000
      Possible Setting Friendly Name: Sleep
      Possible Setting Index: 001
      Possible Setting Friendly Name: Hibernate
      Possible Setting Index: 002
      Possible Setting Friendly Name: Shut down
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

  Subgroup GUID: 501a4d13-42af-4429-9fd1-a8218c268e20  (PCI Express)
    GUID Alias: SUB_PCIEXPRESS
    Power Setting GUID: ee12f906-d277-404b-b6da-e5fa1a576df5  (Link State Power Management)
      GUID Alias: ASPM
      Possible Setting Index: 000
      Possible Setting Friendly Name: Off
      Possible Setting Index: 001
      Possible Setting Friendly Name: Moderate power savings
      Possible Setting Index: 002
      Possible Setting Friendly Name: Maximum power savings
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

  Subgroup GUID: 54533251-82be-4824-96c1-47b60b740d00  (Processor power management)
    GUID Alias: SUB_PROCESSOR
    Power Setting GUID: 893dee8e-2bef-41e0-89c6-b55d0929964c  (Minimum processor state)
      GUID Alias: PROCTHROTTLEMIN
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000064
    Current DC Power Setting Index: 0x00000005

    Power Setting GUID: 94d3a615-a899-4ac5-ae2b-e4d8f634367f  (System cooling policy)
      GUID Alias: SYSCOOLPOL
      Possible Setting Index: 000
      Possible Setting Friendly Name: Passive
      Possible Setting Index: 001
      Possible Setting Friendly Name: Active
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

    Power Setting GUID: bc5038f7-23e0-4960-96da-33abaf5935ec  (Maximum processor state)
      GUID Alias: PROCTHROTTLEMAX
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000064
    Current DC Power Setting Index: 0x00000064

  Subgroup GUID: 7516b95f-f776-4464-8c53-06167f40cc99  (Display)
    GUID Alias: SUB_VIDEO
    Power Setting GUID: 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e  (Turn off display after)
      GUID Alias: VIDEOIDLE
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0xffffffff
      Possible Settings increment: 0x00000001
      Possible Settings units: Seconds
    Current AC Power Setting Index: 0x00000708
    Current DC Power Setting Index: 0x00000258

    Power Setting GUID: aded5e82-b909-4619-9949-f5d71dac0bcb  (Display brightness)
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000064
    Current DC Power Setting Index: 0x00000064

    Power Setting GUID: f1fbfde2-a960-4165-9f88-50667911ce96  (Dimmed display brightness)
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000032
    Current DC Power Setting Index: 0x00000032

    Power Setting GUID: fbd9aa66-9553-4097-ba44-ed6e9d65eab8  (Enable adaptive brightness)
      GUID Alias: ADAPTBRIGHT
      Possible Setting Index: 000
      Possible Setting Friendly Name: Off
      Possible Setting Index: 001
      Possible Setting Friendly Name: On
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

  Subgroup GUID: e73a048d-bf27-4f12-9731-8b2076e8891f  (Battery)
    GUID Alias: SUB_BATTERY
    Power Setting GUID: 5dbb7c9f-38e9-40d2-9749-4f8a0e9f640f  (Critical battery notification)
      GUID Alias: BATFLAGSCRIT
      Possible Setting Index: 000
      Possible Setting Friendly Name: Off
      Possible Setting Index: 001
      Possible Setting Friendly Name: On
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

    Power Setting GUID: 637ea02f-bbcb-4015-8e2c-a1c7b9c0b546  (Critical battery action)
      GUID Alias: BATACTIONCRIT
      Possible Setting Index: 000
      Possible Setting Friendly Name: Do nothing
      Possible Setting Index: 001
      Possible Setting Friendly Name: Sleep
      Possible Setting Index: 002
      Possible Setting Friendly Name: Hibernate
      Possible Setting Index: 003
      Possible Setting Friendly Name: Shut down
    Current AC Power Setting Index: 0x00000002
    Current DC Power Setting Index: 0x00000002

    Power Setting GUID: 8183ba9a-e910-48da-8769-14ae6dc1170a  (Low battery level)
      GUID Alias: BATLEVELLOW
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x0000000a
    Current DC Power Setting Index: 0x0000000a

    Power Setting GUID: 9a66d8d7-4ff7-4ef9-b5a2-5a326ca2a469  (Critical battery level)
      GUID Alias: BATLEVELCRIT
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000005
    Current DC Power Setting Index: 0x00000005

    Power Setting GUID: bcded951-187b-4d05-bccc-f7e51960c258  (Low battery notification)
      GUID Alias: BATFLAGSLOW
      Possible Setting Index: 000
      Possible Setting Friendly Name: Off
      Possible Setting Index: 001
      Possible Setting Friendly Name: On
    Current AC Power Setting Index: 0x00000001
    Current DC Power Setting Index: 0x00000001

    Power Setting GUID: d8742dcb-3e6a-4b3c-b3fe-374623cdcf06  (Low battery action)
      GUID Alias: BATACTIONLOW
      Possible Setting Index: 000
      Possible Setting Friendly Name: Do nothing
      Possible Setting Index: 001
      Possible Setting Friendly Name: Sleep
      Possible Setting Index: 002
      Possible Setting Friendly Name: Hibernate
      Possible Setting Index: 003
      Possible Setting Friendly Name: Shut down
    Current AC Power Setting Index: 0x00000000
    Current DC Power Setting Index: 0x00000000

    Power Setting GUID: f3c5027d-cd16-4930-aa6b-90db844a8f00  (Reserve battery level)
      Minimum Possible Setting: 0x00000000
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000007
    Current DC Power Setting Index: 0x00000007

Eu realmente não entendo nada disso...

Como posso usar um script para alterar automaticamente as opções de energia para as configurações postadas acima, pois não quero fazer isso manualmente?

windows-10 command-line
  • 2 respostas
  • 20524 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-14 01:06:53 +0800 CST

Como fixar arquivos .lnk na barra de tarefas no PowerShell?

  • 10

Eu vi muitas perguntas semelhantes postadas no stackoverflow.com, mas isso é diferente e, antes que você se pergunte, por que não postar a pergunta no stackoverflow.com? Porque no momento estou proibido de fazer perguntas lá e atualmente não tenho tempo suficiente para editar todas essas perguntas.

Uma breve descrição do que quero fazer: quero fixar cmd elevado, powershell, pwsh, python etc. na barra de tarefas programaticamente e, claro, sei como criar atalhos usando explorer.exe e fixá-los, mas considero a GUI método ser cansativo e tedioso, ter que clicar muitas vezes para fazer um trabalho simples, e eu quero fixar muitos programas...

Eu encontrei isso:

Como criar um atalho Executar como administrador usando o Powershell

Um exemplo:

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\PowerShell.lnk")
$Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe"
$Shortcut.Save()
$bytes = [System.IO.File]::ReadAllBytes("$Home\Desktop\PowerShell.lnk")
$bytes[0x15] = $bytes[0x15] -bor 0x20
[System.IO.File]::WriteAllBytes("$Home\Desktop\PowerShell.lnk", $bytes)

O exemplo criará um atalho para o PowerShell padrão chamado "PowerShell" na área de trabalho com direitos de administrador.

Agora, para envolvê-lo em uma função:

function admin-shortcut {
  PARAM (
    [Parameter(ValueFromPipeline=$true, Mandatory=$true, Position=0)] [system.string] $path,
    [Parameter(ValueFromPipeline=$true, Mandatory=$true, Position=1)] [system.string] $name
    )
    $WshShell = New-Object -comObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("$Home\Desktop\$name.lnk")
    $Shortcut.TargetPath = $path
    $Shortcut.Save()
    $bytes = [System.IO.File]::ReadAllBytes("$Home\Desktop\$name.lnk")
    $bytes[0x15] = $bytes[0x15] -bor 0x20
    [System.IO.File]::WriteAllBytes("$Home\Desktop\$name.lnk", $bytes)
}

Eu vi muitos posts no stackoverflow.com sobre métodos para fixar programas diretamente na barra de tarefas, mas nenhum deles resolve meu problema, pois quero dar privilégios de administrador aos atalhos fixados, nenhum dos métodos que vi faz isso.

Então pesquisei no Google como criar um atalho de administrador usando o PowerShell e encontrei o método mencionado acima, agora só preciso descobrir como fixar os arquivos .lnk na barra de tarefas, infelizmente todos os resultados de pesquisa do Google de "como fixar atalhos na barra de tarefas" fala sobre fixar o programa diretamente, nenhum deles envolve arquivos .lnk, e eu já expliquei porque eles não funcionarão neste caso.

Então você tem alguma ideia? Qualquer ajuda será apreciada.


Métodos desatualizados que não funcionam mais no Windows 10:

Método 1

$shell = new-object -com "Shell.Application"  
$folder = $shell.Namespace((Join-Path $env:SystemRoot System32\WindowsPowerShell\v1.0))
$item = $folder.Parsename('powershell_ise.exe')
$item.invokeverb('taskbarpin');

Método #2

$shell = new-object -com "Shell.Application"  
$folder = $shell.Namespace('C:\Windows')    
$item = $folder.Parsename('notepad.exe')
$verb = $item.Verbs() | ? {$_.Name -eq 'Pin to Tas&kbar'}
if ($verb) {$verb.DoIt()}

Método #3

$sa = new-object -c shell.application
$pn = $sa.namespace($env:windir).parsename('notepad.exe')
$pn.invokeverb('taskbarpin')

Colei todos esses códigos no PowerShell, nenhuma mensagem de erro apareceu, mas esses comandos literalmente não fazem nada, eu até reiniciei o explorer.exe, ainda nenhuma alteração observada ...


Mas não, espere! Nem tudo está perdido, posso arrastar o atalho resultante para a barra de tarefas para fixá-lo na barra de tarefas, e posso clicar com o botão direito e fixar para iniciar, mas imagine arrastar 2 dúzias deles ... Se eu puder descobrir exatamente o que essas ações fazem, Eu posso replicá-los com comandos ...


Eu abri%Appdata%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

Folder e encontrei alguns ícones de aplicativos (não UWP) que fixei estão realmente lá,

e encontrei alguns ícones de aplicativos que adicionei ao menu iniciar aqui:

%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu

No entanto, confirmei que simplesmente copiar os atalhos não funcionaria.

Encontrei isto: https://docs.microsoft.com/en-us/windows/configuration/configure-windows-10-taskbar , é útil.


Eu encontrei um método para fazer isso, pois tudo que eu quero é adicionar linhas ao arquivo xml, posso usar isso:

[string[]]$xmlconfig=get-content $template | % {
    $_
    if ($_ -match $pattern) {$line}
}

Eu sei que isso é estúpido, é por isso que eu não postei como resposta, mas faz o trabalho, não ria de mim porque ainda estou aprendendo, atualmente estou pesquisando como manipular corretamente arquivos .xml. ..

Eu tentei:

[xml]$template=Get-Content $templatefile
$template.SelectNodes("//DesktopApp")

Mas não funciona, também não funciona em objetos xml convertidos de arquivos .admx, porém .ChildNodes funciona, e não é mostrado por Get-Member... Acho que tratá-lo como um arquivo de texto simples é o melhor método agora, caso contrário eu tenho que usar algo assim:

$template.LayoutModificationTemplate.CustomTaskbarLayoutCollection.TaskbarLayout.TaskbarPinList.DesktopApp.DesktopApplicationLinkPath

Eu já resolvi, vou postar como resposta agora, não busquei a chave de registro e não quero mais fixar programas no menu iniciar, pois normalmente não o uso ...

windows-10 powershell
  • 2 respostas
  • 8218 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-11 01:14:39 +0800 CST

Como usar o registro para desabilitar $Recycle.Bin para todos os usuários em todas as unidades e exibir a caixa de confirmação de exclusão por padrão no Windows 10 20H2?

  • 9

Resumo rápido: eu sou um funileiro e odeio clicar na GUI, não preciso $Recycle.Bin, então quero desativá-lo usando Set-ItemPropertypara modificar o registro.

Como no título, quero usar regedit.exe (eu sei reg adde tal, mas não uso reg, em vez disso, uso Set-ItemPropertye seus coortes para fazer o trabalho e gostaria de colocar todos os comandos em um arquivo) e gpedit.msc ( novamente registro, pois as configurações da Diretiva de Grupo são armazenadas no registro) para desabilitar $Recycle.Binpara todas as unidades e exibir a caixa de confirmação de exclusão por padrão, isso significa modificar HKEY_LOCAL_MACHINEe HKEY_CURRENT_USER.

Resumindo, o efeito desejado é, quando qualquer usuário (todas as contas de usuário são contas de administrador de minha propriedade, pois sou o único usuário, porque as contas de usuário podem ficar ruins e seria difícil consertar as contas uma vez que estão ruins, e eles são muito propensos a ficarem ruins se ocorrer um blecaute enquanto o computador estiver em execução...) clica para excluir um arquivo/arquivos em qualquer unidade, uma caixa de confirmação de exclusão aparece; Após a confirmação, o(s) arquivo(s) é(ão) deletado(s) diretamente SEM passar por $Recycle.Bin . E não há essa pasta $Recycle.Bin não-deletável presente em nenhum diretório raiz das unidades.

Claro que eu sei disso:

insira a descrição da imagem aqui

E é exatamente isso que estou tentando evitar. Porque eu tenho que clicar manualmente na Don't move files to the Recycle Bin...caixa de seleção para cada unidade. Também não consigo me livrar dessa $Recycle.Binpasta, se eu a excluir, ela simplesmente reaparece magicamente depois F5...

Encontrei esta chave de registro e valor depois de pesquisar no Google:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket]
"NukeOnDelete"=dword:00000001

Mas a fonte diz que se aplica ao Windows 7, nunca usei o Windows 7, esse valor impede a recriação de $Recycle.Bin? Ainda funciona no Windows 10?

Também encontrei isso:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoRecycleFiles"=dword:00000001

Mas quando tentei abrir esse caminho no regedit, um som de erro é reproduzido e a localização atual não é alterada, então o caminho não existe ...

E isto:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"ConfirmFileDelete"=dword:00000001

Isso parece habilitar a "caixa de diálogo de confirmação de exclusão", o que eu não sei é, essa configuração afeta todas as unidades? E ele mostra a caixa de diálogo e, em seguida, basta mover o arquivo para $Recycle.Bin após a confirmação se o $Recycle.Bin não estiver desabilitado?

Como desabilitar $Recycle.Bin para todos os usuários e todas as unidades por padrão? E como evitar que $Recycle.Bin retorne? Qualquer ajuda é apreciada.


Atualizar

É estranho, eu habilitei Do not move deleted files to the Recycle Bina política, ainda consigo acessar HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer no regedit... Basta pressionar F5e encontrar a tecla...


Atualização1

Com todas as configurações mencionadas acima ativadas, tentei excluir as pastas $Recycle.Bin com o Explorer, resultado: elas reaparecem após pressionarF5

Usado rd X:\$Recycle.Bin /s /qe eles não se repetiram após várias F5prensas até agora, mas não sei por que, pensei que teria o mesmo efeito que excluí-lo no explorer.exe ...


Mas o que Don't move file to the Recycle Bin. Remove files immediately when deleted.faz? Qual chave de registro e valor ele grava? Alguém pode me dizer?


As pastas $Recycle.Bin reapareceram... Confirmei, clicando na pasta "Lixeira" irá recriar as pastas $Recycle.Bin...


Eu usei procmon e obtive isso: insira a descrição da imagem aqui

Parece que Don't move...define nukeondelete como ativado na unidade atual.


Eu escrevi um script do PowerShell para desabilitar automaticamente a Lixeira em todas as unidades, usando Get-Volume e Set-ItemProperty;

Este é o script que mencionei, posto aqui caso mais alguém queira fazer:

$volumes=Get-Volume | where {$_.FileSystem -eq "NTFS"}
$Drives=foreach ($volume in $volumes) {
    $DriveLetter=$Volume.DriveLetter
    [string]$ObjectId=($Volume.ObjectId | Select-String -Pattern "Volume{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}\\").Matches.Value.SubString(6,38)
    Remove-Item -Path $('{0}:\$Recycle.Bin' -f $DriveLetter) -Force -Recurse -ErrorAction SilentlyContinue
    New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume\$ObjectId" -ErrorAction SilentlyContinue | Out-Null
    Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume\$ObjectId" -Name NukeOnDelete -Type DWord -Value 1
    Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\Volume\$ObjectId" -Name MaxCapacity -Type DWord -Value 0
}
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket" -Name NukeOnDelete -Type DWord -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket" -Name MaxCapacity -Type DWord -Value 0

Agora estou procurando maneiras de impedir a criação de $Recycle.Bin, estou pensando em políticas de grupo e opções de segurança.

Eu encontrei isso: **GPO - Como bloquear a criação de pastas e arquivos no diretório raiz no Windows 10

Não sei se funcionará (estou apenas tentando bloquear a lixeira) e como fazê-lo com as opções de segurança?

windows-10 windows-registry
  • 1 respostas
  • 2905 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-09 02:55:03 +0800 CST

Como instalar diretamente o Fedora 33 no HDD sem usar a unidade flash USB na máquina Windows 10?

  • 6

Depois que a placa-mãe anterior foi "aposentada", meu computador é atualizado. Meu computador agora é Intel Core i5-4430 no BIOSTAR Group H81MHV3 (sei que são antigos), com 12 GB de RAM (8 GB + 4 GB DDR3).

Agora tenho três HDDs internos, todos Seagate. Um de 500 GB que é o original; Um 2 TB com 10319 setores realocados, eu sei o que você está pensando, mas o disco tem 5103 setores sobressalentes, o tamanho do setor emulado é de 512 bytes enquanto o tamanho do setor físico é de 4096 bytes, então apenas 0,25276797961983147168332353517539 setores sobressalentes foram usados ​​e os setores defeituosos foram usados não aumentou em número em muitos dias. O outro é um recém-comprado de 1 TB, sem setores defeituosos.

Eu baixei o Fedora-Workstation-Live-x86_64-33-1.2.iso, usei o PowerShell para verificar seu hash e confirmei que é bom. Estou usando o Windows 10 20H2, tenho um cartão micro SD de 16 GB que é muito lento, conectado a um leitor de cartão, uso-o especificamente como mídia de resgate do Ambiente de Pré-instalação do Windows e não pretendo gravar o livecd nele.

Eu sou capaz de usar diskparte DiskGenius, eu posso limpar o Windows sem problemas usando apenas diskpart, disme bcdboot, mas os métodos que eu uso não me permitem instalar distribuições Linux no meu HDD. Existe alguma maneira de instalar diretamente o Fedora 33 no meu disco rígido e torná-lo inicializável sem usar o liveUSB em um ambiente Windows?


Atualizar

OK, eu sei que posso conseguir isso simplesmente formatando o drive USB, gravando o liveCD nele, inicializando no liveUSB, instalando no disco rígido, EasyBCD e finalmente refazendo o WinPE, mas essas coisas são estúpidas, por que eu deveria tomar todas as etapas extras quando posso reparticionar discos e tenho HDDs vazios disponíveis agora?

windows-10 linux
  • 1 respostas
  • 3016 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-09 01:35:54 +0800 CST

Exatamente quais dados na RAM são perdidos e quais dados permanecem quando o computador é desligado?

  • 6

Como dito no título, quais dados na RAM são perdidos e quais não são ao desligar?

Eu só estou curioso. Eu sei que RAM significa Random Access Memory, é volátil (precisa de energia para armazenar dados) e tem velocidades de leitura/gravação mais altas do que a memória não volátil (ou seja, HDD, SSD).

Eu sei que se não houver muita RAM disponível que possa ser gravada, posso esvaziar o espaço da RAM reiniciando, depois de reiniciar tudo na RAM parece estar perdido, o espaço que ocupam é liberado, então o espaço torna-se utilizável novamente.

No entanto, definitivamente não é verdade que todos os dados são perdidos; Até onde eu sei, o relógio do computador não será reiniciado com a reinicialização, ele ainda exibirá a hora correta, mesmo após eu desligar completamente e remover o cabo de alimentação.

E o fato de ainda ser inicializável após o desligamento significa que o código de inicialização usado para inicializar o sistema operacional ainda está na RAM, caso contrário, ele simplesmente não inicializa.

Então, quais dados são perdidos e quais dados permanecem na memória primária quando você desliga o computador?

memory
  • 1 respostas
  • 589 Views
Martin Hope
Ξένη Γήινος
Asked: 2021-01-04 02:37:59 +0800 CST

Como converter arquivos .reg para comandos set-itemproperty do PowerShell automaticamente?

  • 10

Eu sou um funileiro que faz muitos hacks de registro e odeio ter que clicar em muitos .regarquivos um por um; como faço para converter .regarquivos em Set-ItemPropertycomandos do PowerShell automaticamente?

  • Encontrei um site que faz isso [ Registry to PowerShell Converter ], porém a saída não está no formato que eu queria; Eu quero que ele tenha exatamente a mesma sintaxe abaixo usando Set-ItemProperty// Remove-Iteme New-Itemnada mais:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\PushNotifications]
    "NoToastApplicationNotification"=dword:00000001
    
    • cmd:
      Reg Add "HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\PushNotifications" /v "NoToastApplicationNotification" /t REG_DWORD /d 1
      
    • powershell:
      Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "NoToastApplicationNotification" -Type DWord -Value 1
      

  • O comando para produzir o resultado pretendido deve ser:
    "Set-ItemProperty -Path " + $path + "-Name " + $name + "-Value " + $value
    
    • Criei uma tabela ASCII com informações encontradas aqui e carreguei aqui , gerenciando esta [ saída ]:
      $ASCII=import-csv ".\desktop\ascii.csv"
      [array]$AsciiTable=0..255 | foreach-object{
        $Decimal=$ASCII[$_].DEC
        $Hexadecimal=$ASCII[$_].HEX
        $Binary=$ASCII[$_].BIN
        $Octonary=$ASCII[$_].OCT
        $Symbol=$ASCII[$_].Symbol
        $Value=[char]$_
        $Description=$ASCII[$_].Description
        $HTMLName=$ASCII[$_].HTMLName
        $HTMLNumber=$ASCII[$_].HTMLNumber
        [pscustomobject]@{Decimal=$Decimal;Hexadecimal=$Hexadecimal;Binary=$Binary;Octonary=$Octonary;Symbol=$Symbol;Value=$Value;Description=$Description;HTMLName=$HTMLName;HTMLNumber=$HTMLNumber}
      }
      $AsciiTable | Export-csv ".\Desktop\AsciiTable.csv"
      


Atualmente, consegui isso, que está incompleto, mas a ideia é percorrer o arquivo por index, atribuindo valores às variáveis ​​por meio de correspondência de regex, alterando o tipo e o nome do hive para os usados ​​no PowerShell:

$registry=get-content $regfile

for ($i=0;$i -lt $registry.count;$i++){
  $line=$registry | select-object -index $i
  if ($line -match '\[' -and '\]') {
    $path=$line -replace '\[|\]'
    switch ($path)
    {
      {$path -match "HKEY_CLASSES_ROOT"}    {$path=$path -replace "HKEY_CLASSES_ROOT","HKCR:"}
      {$path -match "HKEY_CURRENT_USER"}    {$path=$path -replace "HKEY_CURRENT_USER","HKCU:"}
      {$path -match "HKEY_LOCAL_MACHINE"}   {$path=$path -replace "HKEY_LOCAL_MACHINE","HKLM:"}
      {$path -match "HKEY_USERS"}           {$path=$path -replace "HKEY_USERS","HKU:"}
      {$path -match "HKEY_CURRENT_CONFIG"}  {$path=$path -replace "HKEY_CURRENT_CONFIG","HKCC:"}
    }
  }
  else {
    $name=($line | select-string -pattern "`"([^`"=]+)`"").matches.value | select-object -first 1
    switch ($line)
  {
  {$line -match}
}


Existem seis tipos de valor de registro [ REG_SZ, REG_BINARY, REG_DWORD, REG_QWORD, REG_MULTI_SZ, REG_EXPAND_SZ] e vi apenas um DWORDtipo de valor em .regarquivos, embora tenha conseguido criar uma chave de registro contendo todos os tipos:

  • RegEdit:
    insira a descrição da imagem aqui
  • .reg:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AarSvc]
    "DependOnService"=hex(7):41,00,75,00,64,00,69,00,6f,00,73,00,72,00,76,00,00,00,\
      00,00
    "Description"="@%SystemRoot%\\system32\\AarSvc.dll,-101"
    "DisplayName"="@%SystemRoot%\\system32\\AarSvc.dll,-100"
    "ErrorControl"=dword:00000001
    "FailureActions"=hex:80,51,01,00,00,00,00,00,00,00,00,00,04,00,00,00,14,00,00,\
      00,01,00,00,00,10,27,00,00,01,00,00,00,10,27,00,00,01,00,00,00,10,27,00,00,\
      00,00,00,00,00,00,00,00
    "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
      74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
      00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,\
      6b,00,20,00,41,00,61,00,72,00,53,00,76,00,63,00,47,00,72,00,6f,00,75,00,70,\
      00,20,00,2d,00,70,00,00,00
    "ObjectName"="NT Authority\\LocalService"
    "RequiredPrivileges"=hex(7):53,00,65,00,49,00,6d,00,70,00,65,00,72,00,73,00,6f,\
      00,6e,00,61,00,74,00,65,00,50,00,72,00,69,00,76,00,69,00,6c,00,65,00,67,00,\
      65,00,00,00,00,00
    "ServiceSidType"=dword:00000001
    "Start"=dword:00000003
    "Type"=dword:00000060
    "UserServiceFlags"=dword:00000003
    "New Value #1"=hex(b):00,00,00,00,00,00,00,00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AarSvc\Parameters]
    "ServiceDll"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
      00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
      41,00,61,00,72,00,53,00,76,00,63,00,2e,00,64,00,6c,00,6c,00,00,00
    "ServiceDllUnloadOnStop"=dword:00000001
    "ServiceMain"="ServiceMain"
    


Como os tipos de registro são determinados em um .reg, já que o resultado final pretendido é um arquivo de texto/matriz de string/script do PowerShell que contém os comandos convertidos?

  • Em um .reg, eu sei que os valores para o tipo REG_DWORDsão escritos como dword, REG_SZcomo texto simples entre aspas, REG_QWORDcomo qword(mostrado aqui ), e já mapeei os tipos de registro para suas propriedades correspondentes do PowerShell:
    REG_SZ        → String
    REG_EXPAND_SZ → ExpandString
    REG_MULTI_SZ  → MultiString
    REG_BINARY    → Binary
    REG_DWORD     → DWord
    REG_QWORD     → QWord
    
    Com as relações inferidas acima:
    switch ($line)
    {
      {$line -match '"="'}      {$type="string"}
      {$line -match "dword"}    {$type="dword"}
      {$line -match "qword"}    {$type="qword"}
      {$line -match "hex\(2\)"} {$type="expandstring";break}
      {$line -match "hex\(7\)"} {$type="multistring";break}
      {$line -match "hex\(b\)"} {$type="qword";break}
      {$line -match "hex"}      {$type="binary"}
    }
    


Como posso detectar e decodificar os balbucios hexadecimais do registro e existem outras maneiras de escrever REG_EXPAND_SZ, REG_MULTI_SZe REG_BINARYtipos em a .reg(ou seja ExpandString, como MultiStringe Binaryrespectivamente)?

  • Script para analisar valores de string expansíveis do registro para texto simples:
    function parse-expandstring {
      PARAM (
        [Parameter(ValueFromPipeline=$true, Mandatory=$true)] [System.String]$expandstring
      )
    
      $AsciiTable=import-csv ".\desktop\AsciiTable.csv"
      [array]$hex=$expandstring -split'[\,\\]' | where {-not ([string]::IsNullOrWhiteSpace($_))} | %{$_.trimstart()}
      $hexadecimal=0..($hex.count-1) | where {$_ % 2 -ne 1} | foreach-object {$hex[$_]}
      $text=@()
      foreach ($hexadecima in $hexadecimal) {
        for ($i=0;$i -le 255;$i++) {
          if ($AsciiTable[$i].hexadecimal -eq $hexadecima) {
            $text+=$AsciiTable[$i].value
          }
        }
      }
      $text=$text -join ""
      $text
    }
    
  • Functionpara analisar REG_QWORD:
    function parse-qword {
      PARAM (
        [Parameter(ValueFromPipeline=$true, Mandatory=$true)] [System.String]$qword
      )
      [array]$qword=$qword -split','
      $qword=for ($i=$qword.count-1;$i -ge 0;$i--) {$qword[$i]}
      $hexvalue=$qword -join ""
      $hexvalue=$hexvalue.trimstart("0")
      $hexvalue
    }
    
  • Functionpara analisar REG_BINARY:
    function parse-binary {
      PARAM (
        [Parameter(ValueFromPipeline=$true, Mandatory=$true)] [System.String]$binary
      )
      [array]$hex=$binary -split'[,\\]' | where {-not ([string]::IsNullOrWhiteSpace($_))} | %{$_.trimstart()}
      $hex=$hex -join ""
        $hex
    }
    
  • Functionpara analisar REG_MULTI_SZ:
    function parse-multistring {
      PARAM (
        [Parameter(ValueFromPipeline=$true, Mandatory=$true)] [System.String]$multistring
        )
    
      $AsciiTable=import-csv ".\desktop\AsciiTable.csv"
      [array]$hex=$multistring -split'[\,\\]' | where {-not ([string]::IsNullOrWhiteSpace($_))} | %{$_.trimstart()}
      $hexadecimal=0..($hex.count-1) | where {$_ % 2 -ne 1} | foreach-object {$hex[$_]}
      $text=@()
      foreach ($hexadecima in $hexadecimal) {
        for ($i=0;$i -le 255;$i++) {
          if ($AsciiTable[$i].hexadecimal -eq $hexadecima) {
            if ($i -ne 0) {$text+=$AsciiTable[$i].value}
            else {$text+="\0"}
          }
        }
      }
      $text=$text -join ""
      $text
    }
    


O script está quase completo, já tendo criado Remove-Item, New-Iteme Remove-ItemPropertycondições de alternância; agora, a peça final do quebra-cabeça é escrever uma regex que corresponda aos valores. Quando isso for feito, postarei como resposta aqui.

  • Pseudo-código:
    if $line match [ and ]->$line match [-HKEY -> Remove-Item
    else $registry[$i+1] eq ""->New-Item
    elseif $line match "=-" -> Remove-ItemProperty
    
  • Criei uma tabela de hash ASCII para usar como dicionário:
    $asciihex=@{}
    0..255 | % {
      $number=$_
      [string]$hex=$number.tostring('x')
      if ($hex.length -eq 1) {$hex='{1}{0}' -f $hex,'0'}
      $char=[char]$number
      $asciihex.add($hex,$char)
      }
    
    • Para procurar um caractere em um determinado codepoint:
      # Change:
        $asciihex.'00'
      
      # to:
        $asciihex.'ff'
      
    • Para procurar um caractere em qualquer codepoint:
      # Don't use $asciihex to print it
        $asciihex.$codepoint
      

Para grep valores de linhas, use -replace $name+$typepara obter o valor.

powershell command-line
  • 2 respostas
  • 3413 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